internal override void InternalAbort(System.Activities.ActivityInstance instance, ActivityExecutor executor, Exception terminationReason) { using (NativeActivityAbortContext context = new NativeActivityAbortContext(instance, executor, terminationReason)) { this.Abort(context); } }
internal bool TryPopulateValue(LocationEnvironment targetEnvironment, System.Activities.ActivityInstance targetActivityInstance, ActivityContext resolutionContext, object argumentValueOverride, Location resultLocation, bool skipFastPath) { if (argumentValueOverride != null) { Location location = this.boundArgument.CreateDefaultLocation(); targetEnvironment.Declare(this, location, targetActivityInstance); location.Value = argumentValueOverride; return(true); } if (!this.boundArgument.IsEmpty) { if (skipFastPath) { this.BoundArgument.Declare(targetEnvironment, targetActivityInstance); return(false); } resolutionContext.Activity = this.boundArgument.Expression; return(this.boundArgument.TryPopulateValue(targetEnvironment, targetActivityInstance, resolutionContext)); } if ((resultLocation != null) && this.IsResult) { targetEnvironment.Declare(this, resultLocation, targetActivityInstance); return(true); } Location location2 = this.boundArgument.CreateDefaultLocation(); targetEnvironment.Declare(this, location2, targetActivityInstance); return(true); }
internal void FixupInstance(System.Activities.ActivityInstance parent, ActivityInstanceMap instanceMap, ActivityExecutor executor) { if (!this.IsCompleted) { if (this.Activity == null) { throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.ActivityInstanceFixupFailed)); } this.parent = parent; this.instanceMap = instanceMap; if (this.PropertyManager != null) { this.PropertyManager.OnDeserialized(this, parent, this.Activity.MemberOf, executor); } else if (this.parent != null) { this.PropertyManager = this.parent.PropertyManager; } else { this.PropertyManager = executor.RootPropertyManager; } if (!this.noSymbols) { this.environment.OnDeserialized(executor, this); } } }
internal override void InternalExecute(System.Activities.ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { if (this.runtimeImplementation != null) { executor.ScheduleActivity(this.runtimeImplementation, instance, null, null, null); } }
internal sealed override void InternalExecute(System.Activities.ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { AsyncOperationContext asyncContext = executor.SetupAsyncOperationBlock(instance); instance.IncrementBusyCount(); AsyncCodeActivityContext context = new AsyncCodeActivityContext(asyncContext, instance, executor); bool flag = false; try { IAsyncResult result = this.BeginExecute(context, AsyncCodeActivity.OnExecuteComplete, asyncContext); if (result == null) { throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.BeginExecuteMustNotReturnANullAsyncResult)); } if (!object.ReferenceEquals(result.AsyncState, asyncContext)) { throw FxTrace.Exception.AsError(new InvalidOperationException(System.Activities.SR.BeginExecuteMustUseProvidedStateAsAsyncResultState)); } if (result.CompletedSynchronously) { ((IAsyncCodeActivity)this).FinishExecution(context, result); asyncContext.CompleteOperation(); } flag = true; } finally { context.Dispose(); if (!flag) { asyncContext.CancelOperation(); } } }
internal void Dispose() { this.isDisposed = true; this.instance = null; this.executor = null; this.Activity = null; }
internal void Reinitialize(System.Activities.ActivityInstance instance, ActivityExecutor executor) { this.isDisposed = false; this.instance = instance; this.executor = executor; this.Activity = this.instance.Activity; }
public static Collection <System.Activities.ActivityInstance> getchildList2(this System.Activities.ActivityInstance root) // System.Activities.ActivityInstance.ChildList { var result = new Collection <System.Activities.ActivityInstance>(); var childList = root.GetType().GetField("childList", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(root); if (childList == null) { return(result); } var count = (int)childList.GetType().GetField("Count", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(childList); if (count == 0) { return(result); } if (count == 1) { var multipleItems = (List <System.Activities.ActivityInstance>)childList.GetType().GetField("multipleItems", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(childList); foreach (var item in multipleItems) { result.Add(item); } } else { var singleItem = (System.Activities.ActivityInstance)childList.GetType().GetField("singleItem", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(childList); result.Add(singleItem); } return(result); }
public static FaultBookmark CreateFaultBookmark(FaultCallback onFaulted, System.Activities.ActivityInstance owningInstance) { if (onFaulted != null) { return(new FaultBookmark(new FaultCallbackWrapper(onFaulted, owningInstance))); } return(null); }
internal void AddChild(System.Activities.ActivityInstance item) { if (this.childList == null) { this.childList = new ChildList(); } this.childList.Add(item); this.childCache = null; }
private bool GenerateInstanceMapCallback(System.Activities.ActivityInstance instance, ActivityExecutor executor) { this.instanceMap.AddEntry(instance); instance.instanceMap = this.instanceMap; if (instance.HasActivityReferences) { instance.extendedData.FillInstanceMap(instance.instanceMap); } return(true); }
internal ExecutionProperties(ActivityContext currentContext, System.Activities.ActivityInstance scope, ExecutionPropertyManager properties) { this.context = currentContext; this.scope = scope; this.properties = properties; if (this.context != null) { this.currentIdSpace = this.context.Activity.MemberOf; } }
public static bool IsInScope(System.Activities.ActivityInstance potentialChild, System.Activities.ActivityInstance scope) { if (scope == null) { return(true); } System.Activities.ActivityInstance parent = potentialChild; while ((parent != null) && (parent != scope)) { parent = parent.Parent; } return(parent != null); }
internal sealed override void InternalCancel(System.Activities.ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { AsyncOperationContext context; if (executor.TryGetPendingOperation(instance, out context)) { using (AsyncCodeActivityContext context2 = new AsyncCodeActivityContext(context, instance, executor)) { context.HasCalledAsyncCodeActivityCancel = true; this.Cancel(context2); } } }
public static Collection <System.Activities.ActivityInstance> GetChildren(this System.Activities.ActivityInstance root) { //if (!root.HasChildren2()) //{ // return new Collection<System.Activities.ActivityInstance>(); //} var childCache = root.getchildList2() as Collection <System.Activities.ActivityInstance>; if (childCache == null) { return(new Collection <System.Activities.ActivityInstance>()); } return(childCache); }
internal override void InternalExecute(System.Activities.ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { NativeActivityContext context = executor.NativeActivityContextPool.Acquire(); try { context.Initialize(instance, executor, bookmarkManager); this.Execute(context); } finally { context.Dispose(); executor.NativeActivityContextPool.Release(context); } }
internal sealed override void InternalExecute(System.Activities.ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager) { CodeActivityContext context = executor.CodeActivityContextPool.Acquire(); try { context.Initialize(instance, executor); TResult local = this.Execute(context); base.Result.Set(context, local); } finally { context.Dispose(); executor.CodeActivityContextPool.Release(context); } }
internal bool Initialize(System.Activities.ActivityInstance parent, ActivityInstanceMap instanceMap, LocationEnvironment parentEnvironment, long instanceId, ActivityExecutor executor, int delegateParameterCount) { this.parent = parent; this.instanceMap = instanceMap; this.id = instanceId; if (this.instanceMap != null) { this.instanceMap.AddEntry(this); } if (this.parent != null) { if (this.parent.PropertyManager != null) { this.PropertyManager = this.parent.PropertyManager; } if (parentEnvironment == null) { parentEnvironment = this.parent.Environment; } } int capacity = this.Activity.SymbolCount + delegateParameterCount; if (capacity == 0) { if (parentEnvironment == null) { this.environment = new LocationEnvironment(executor, this.Activity); } else { this.noSymbols = true; this.environment = parentEnvironment; } return(false); } this.environment = new LocationEnvironment(executor, this.Activity, parentEnvironment, capacity); this.substate = Substate.ResolvingArguments; return(true); }
public void Add(System.Activities.ActivityInstance item) { if (this.multipleItems != null) { if (this.addRequiresNewList) { this.multipleItems = new List <System.Activities.ActivityInstance>(this.multipleItems); this.addRequiresNewList = false; } this.multipleItems.Add(item); } else if (this.singleItem != null) { this.multipleItems = new List <System.Activities.ActivityInstance>(2); this.multipleItems.Add(this.singleItem); this.multipleItems.Add(item); this.singleItem = null; } else { this.singleItem = item; } }
internal sealed override void InternalAbort(System.Activities.ActivityInstance instance, ActivityExecutor executor, Exception terminationReason) { AsyncOperationContext context; if (executor.TryGetPendingOperation(instance, out context)) { try { if (!context.HasCalledAsyncCodeActivityCancel) { context.IsAborting = true; this.InternalCancel(instance, executor, null); } } finally { if (context.IsStillActive) { context.CancelOperation(); } } } }
internal void Abort(ActivityExecutor executor, BookmarkManager bookmarkManager, Exception terminationReason, bool isTerminate) { AbortEnumerator enumerator = new AbortEnumerator(this); while (enumerator.MoveNext()) { System.Activities.ActivityInstance current = enumerator.Current; if (!current.HasNotExecuted) { current.Activity.InternalAbort(current, executor, terminationReason); executor.DebugActivityCompleted(this); } if (current.PropertyManager != null) { current.PropertyManager.UnregisterProperties(current, current.Activity.MemberOf, true); } executor.TerminateSpecialExecutionBlocks(current, terminationReason); executor.CancelPendingOperation(current); executor.HandleRootCompletion(current); current.MarkAsComplete(executor.RawBookmarkScopeManager, bookmarkManager); current.state = ActivityInstanceState.Faulted; current.FinalizeState(executor, false, !isTerminate); } }
public static void ProcessActivityInstanceTree(System.Activities.ActivityInstance rootInstance, ActivityExecutor executor, Func <System.Activities.ActivityInstance, ActivityExecutor, bool> callback) { Queue <IList <System.Activities.ActivityInstance> > instancesRemaining = null; TreeProcessingList otherList = new TreeProcessingList(); otherList.Add(rootInstance); TreeProcessingList nextInstanceList = null; if (rootInstance.HasChildren) { nextInstanceList = new TreeProcessingList(); } while (((instancesRemaining != null) && (instancesRemaining.Count > 0)) || (otherList.Count != 0)) { if (otherList.Count == 0) { otherList.Set(instancesRemaining.Dequeue()); } for (int i = 0; i < otherList.Count; i++) { System.Activities.ActivityInstance instance = otherList[i]; if (callback(instance, executor) && instance.HasChildren) { instance.AppendChildren(nextInstanceList, ref instancesRemaining); } } if ((nextInstanceList != null) && (nextInstanceList.Count > 0)) { nextInstanceList.TransferTo(otherList); } else { otherList.Reset(); } } }
internal HandleInitializationContext(ActivityExecutor executor, System.Activities.ActivityInstance scope) { this.executor = executor; this.scope = scope; }
internal NativeActivityTransactionContext(System.Activities.ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarks, RuntimeTransactionHandle handle) : base(instance, executor, bookmarks) { this.executor = executor; this.transactionHandle = handle; }
protected override void OnInitialize(HandleInitializationContext context) { this.owningInstance = context.OwningActivityInstance; this.executor = context.Executor; this.PerformDefaultRegistration(); }
internal abstract void Declare(LocationEnvironment targetEnvironment, System.Activities.ActivityInstance activityInstance);
internal abstract bool TryPopulateValue(LocationEnvironment targetEnvironment, System.Activities.ActivityInstance targetActivityInstance, ActivityContext resolutionContext);
internal AsyncCodeActivityContext(AsyncOperationContext asyncContext, System.Activities.ActivityInstance instance, ActivityExecutor executor) : base(instance, executor) { this.asyncContext = asyncContext; }
internal void Reinitialize(System.Activities.ActivityInstance owner) { this.owner = owner; }
internal NativeActivityFaultContext(System.Activities.ActivityInstance executingActivityInstance, ActivityExecutor executor, BookmarkManager bookmarkManager, Exception exception, ActivityInstanceReference source) : base(executingActivityInstance, executor, bookmarkManager) { this.exception = exception; this.source = source; }
internal AsyncOperationContext(ActivityExecutor executor, System.Activities.ActivityInstance owningActivityInstance) { this.executor = executor; this.owningActivityInstance = owningActivityInstance; }
internal void Initialize(HandleInitializationContext context) { this.owner = context.OwningActivityInstance; this.isUninitialized = false; this.OnInitialize(context); }
internal override bool TryPopulateValue(LocationEnvironment targetEnvironment, System.Activities.ActivityInstance activityInstance, ActivityContext resolutionContext) { T local; Location <T> location = Argument.CreateLocation <T>(); targetEnvironment.Declare(base.RuntimeArgument, location, activityInstance); if (this.Expression.TryGetValue(resolutionContext, out local)) { location.Value = local; return(true); } return(false); }
internal override void Declare(LocationEnvironment targetEnvironment, System.Activities.ActivityInstance targetActivityInstance) { targetEnvironment.Declare(base.RuntimeArgument, this.CreateDefaultLocation(), targetActivityInstance); }
internal WorkflowDataContext(ActivityExecutor executor, System.Activities.ActivityInstance activityInstance) { this.executor = executor; this.activityInstance = activityInstance; this.properties = this.CreateProperties(); }