예제 #1
0
        void UninitializeHandles(ActivityInstance scope, IList <Variable> variables, ref HandleInitializationContext context)
        {
            for (int i = 0; i < variables.Count; i++)
            {
                Variable variable = variables[i];
                Fx.Assert(variable.Owner == this.Definition, "We should only be targeting the vairables at this scope.");

                if (variable.IsHandle)
                {
                    Location location = GetSpecificLocation(variable.Id);

                    if (location != null)
                    {
                        Handle handle = (Handle)location.Value;

                        if (handle != null)
                        {
                            if (context == null)
                            {
                                context = new HandleInitializationContext(this.executor, scope);
                            }

                            handle.Uninitialize(context);
                        }

                        location.Value = null;
                    }
                }
            }
        }
예제 #2
0
        internal void Initialize(HandleInitializationContext context)
        {
            this.owner = context.OwningActivityInstance;
            this.isUninitialized = false;

            OnInitialize(context);
        }
예제 #3
0
        protected override void OnUninitialize(HandleInitializationContext context)
        {
            FolderWatcherExtension extension = context.GetExtension <FolderWatcherExtension>();

            this.ReleaseSubscription(extension);
            base.OnUninitialize(context);
        }
 internal void UninitializeHandles(System.Activities.ActivityInstance scope)
 {
     if (this.hasHandles)
     {
         using (HandleInitializationContext context = null)
         {
             this.UninitializeHandles(scope, this.Definition.RuntimeVariables, ref context);
             this.UninitializeHandles(scope, this.Definition.ImplementationVariables, ref context);
             this.hasHandles = false;
         }
     }
 }
예제 #5
0
        protected override void OnUninitialize(HandleInitializationContext context)
        {
            SendReceiveExtension sendReceiveExtension = context.GetExtension <SendReceiveExtension>();

            if (sendReceiveExtension != null)
            {
                if (this.InstanceKey != null)
                {
                    sendReceiveExtension.OnUninitializeCorrelation(this.InstanceKey);
                }
                if (this.TransientInstanceKey != null)
                {
                    sendReceiveExtension.OnUninitializeCorrelation(this.TransientInstanceKey);
                }
            }

            context.UninitializeHandle(this.noPersistHandle);
            context.UninitializeHandle(this.bookmarkScopeHandle);
        }
예제 #6
0
        internal void UninitializeHandles(ActivityInstance scope)
        {
            if (this.hasHandles)
            {
                HandleInitializationContext context = null;

                try
                {
                    UninitializeHandles(scope, this.Definition.RuntimeVariables, ref context);
                    UninitializeHandles(scope, this.Definition.ImplementationVariables, ref context);

                    this.hasHandles = false;
                }
                finally
                {
                    if (context != null)
                    {
                        context.Dispose();
                    }
                }
            }
        }
 private void UninitializeHandles(System.Activities.ActivityInstance scope, IList <Variable> variables, ref HandleInitializationContext context)
 {
     for (int i = 0; i < variables.Count; i++)
     {
         Variable variable = variables[i];
         if (variable.IsHandle)
         {
             Location specificLocation = this.GetSpecificLocation(variable.Id);
             if (specificLocation != null)
             {
                 Handle handle = (Handle)specificLocation.Value;
                 if (handle != null)
                 {
                     if (context == null)
                     {
                         context = new HandleInitializationContext(this.executor, scope);
                     }
                     handle.Uninitialize(context);
                 }
                 specificLocation.Value = null;
             }
         }
     }
 }
예제 #8
0
        protected override void OnInitialize(HandleInitializationContext context)
        {
            this.executor = context.Executor;
            this.isHandleInitialized = true;

            if (this.rootTransaction != null)
            {
                Fx.Assert(this.Owner == null, "this.rootTransaction should only be set at the root");
                this.executor.SetTransaction(this, this.rootTransaction, null, null);
            }

            base.OnInitialize(context);
        }
예제 #9
0
		protected override void OnInitialize (HandleInitializationContext context)
		{
			throw new NotImplementedException ();
		}
        protected override void OnUninitialize(HandleInitializationContext context)
        {
            SendReceiveExtension sendReceiveExtension = context.GetExtension<SendReceiveExtension>();
            if (sendReceiveExtension != null)
            {
                if (this.InstanceKey != null)
                {
                    sendReceiveExtension.OnUninitializeCorrelation(this.InstanceKey);
                }
                if (this.TransientInstanceKey != null)
                {
                    sendReceiveExtension.OnUninitializeCorrelation(this.TransientInstanceKey);
                }
            }

            context.UninitializeHandle(this.noPersistHandle);
            context.UninitializeHandle(this.bookmarkScopeHandle);
        }
 protected override void OnUninitialize(HandleInitializationContext context)
 {
     if (this.bookmarkScope != null)
     {
         int scopeRefCount = this.bookmarkScope.DecrementHandleReferenceCount();
         DisassociateInstanceKeysExtension extension = context.GetExtension<DisassociateInstanceKeysExtension>();
         // We only unregister the BookmarkScope if the extension exists and is enabled and if we had the last reference to it.
         if ((extension != null) && extension.AutomaticDisassociationEnabled && (scopeRefCount == 0))
         {
             context.UnregisterBookmarkScope(this.bookmarkScope);
         }
     }
     base.OnUninitialize(context);
 }
 protected override void OnInitialize(HandleInitializationContext context)
 {
     this.noPersistHandle     = context.CreateAndInitializeHandle <NoPersistHandle>();
     this.bookmarkScopeHandle = context.CreateAndInitializeHandle <BookmarkScopeHandle>();
 }
 protected virtual void OnUninitialize(HandleInitializationContext context)
 {
 }
예제 #14
0
파일: Handle.cs 프로젝트: nickchal/pash
		protected virtual void OnUninitialize (HandleInitializationContext context)
		{
			throw new NotImplementedException ();
		}
예제 #15
0
        protected override void OnUninitialize(HandleInitializationContext context)
        {
            if (this.rootTransaction != null)
            {
                // If we have a host transaction we're responsible for exiting no persist
                this.executor.ExitNoPersist();
            }

            this.isHandleInitialized = false;
            base.OnUninitialize(context);
        }
 protected override void OnUninitialize(HandleInitializationContext context)
 {
     FolderWatcherExtension extension = context.GetExtension<FolderWatcherExtension>();
     this.ReleaseSubscription(extension);
     base.OnUninitialize(context);
 }
 internal void Uninitialize(HandleInitializationContext context)
 {
     this.OnUninitialize(context);
     this.isUninitialized = true;
 }
 protected override void OnUninitialize(HandleInitializationContext context)
 {
     context.UninitializeHandle(this.noPersistHandle);
     context.UninitializeHandle(this.bookmarkScopeHandle);
 }
 protected override void OnUninitialize(HandleInitializationContext context)
 {
     context.UninitializeHandle(this.noPersistHandle);
     context.UninitializeHandle(this.bookmarkScopeHandle);
 }
 protected override void OnInitialize(HandleInitializationContext context)
 {
     this.noPersistHandle = context.CreateAndInitializeHandle<NoPersistHandle>();
     this.bookmarkScopeHandle = context.CreateAndInitializeHandle<BookmarkScopeHandle>();
 }
 protected override void OnInitialize(HandleInitializationContext context)
 {
     this.executor = context.Executor;
     this.isHandleInitialized = true;
     if (this.rootTransaction != null)
     {
         this.executor.SetTransaction(this, this.rootTransaction, null, null);
     }
     base.OnInitialize(context);
 }
 protected override void OnInitialize(HandleInitializationContext context)
 {
     this.owningInstance = context.OwningActivityInstance;
     this.executor = context.Executor;
     this.PerformDefaultRegistration();
 }
 protected override void OnUninitialize(HandleInitializationContext context)
 {
     if (this.rootTransaction != null)
     {
         this.executor.ExitNoPersist();
     }
     this.isHandleInitialized = false;
     base.OnUninitialize(context);
 }