Esempio n. 1
0
        public override void Transfer(
            IntSeqKey path,
            bool transferChildContexts,
            AgentInstanceTransferServices xfer)
        {
            var factory = KeyedFactory;
            ContextControllerFilterEntry[] filters = keyedSvc.MgmtGetFilters(path);
            for (int i = 0; i < factory.KeyedSpec.Items.Length; i++) {
                ContextControllerDetailKeyedItem item = factory.KeyedSpec.Items[i];
                filters[i].Transfer(item.FilterSpecActivatable, xfer);
            }

            if (factory.KeyedSpec.OptionalTermination != null) {
                keyedSvc.KeyVisitEntry(path, entry => entry.TerminationCondition.Transfer(xfer));
            }

            if (!transferChildContexts) {
                return;
            }

            keyedSvc.KeyVisit(
                path,
                (
                    partitionKey,
                    subpathId) => {
                    realization.TransferRecursive(path, subpathId, this, xfer);
                });
        }
Esempio n. 2
0
        public override void Transfer(
            IntSeqKey path,
            bool transferChildContexts,
            AgentInstanceTransferServices xfer)
        {
            ContextControllerCondition start = initTermSvc.MgmtGetStartCondition(path);
            start?.Transfer(xfer);

            initTermSvc.EndVisitConditions(
                path,
                (
                    condition,
                    subPathId) => {
                    condition?.Transfer(xfer);
                });

            if (transferChildContexts) {
                VisitPartitions(
                    path,
                    (
                        partitionKey,
                        subpathOrCPIds) => {
                        realization.TransferRecursive(path, subpathOrCPIds, this, xfer);
                    });
            }
        }
Esempio n. 3
0
 public void Transfer(
     FilterSpecActivatable activatable,
     AgentInstanceTransferServices xfer)
 {
     xfer.AgentInstanceContext.FilterService.Remove(filterHandle, activatable.FilterForEventType, filterValueSet);
     xfer.TargetFilterService.Add(activatable.FilterForEventType, filterValueSet, filterHandle);
 }
Esempio n. 4
0
 public void Transfer(AgentInstanceTransferServices services)
 {
     if (_filterHandle != null) {
         var filterValues = ComputeFilterValues(services.AgentInstanceContext);
         if (filterValues != null) {
             services.AgentInstanceContext.FilterService.Remove(_filterHandle, _filterSpecActivatable.FilterForEventType, filterValues);
             services.TargetFilterService.Add(_filterSpecActivatable.FilterForEventType, filterValues, _filterHandle);
         }
     }
 }
Esempio n. 5
0
 public override void Transfer(AgentInstanceTransferServices services) {
     if (_handle == null) {
         return;
     }
     var filterSpec = _evalFilterNode.FactoryNode.FilterSpec;
     var filterValues = filterSpec.GetValueSet(
         _beginState,
         _evalFilterNode.AddendumFilters,
         services.AgentInstanceContext,
         services.AgentInstanceContext.StatementContextFilterEvalEnv);
     if (filterValues != null) {
         services.AgentInstanceContext.FilterService.Remove(_handle, filterSpec.FilterForEventType, filterValues);
         services.TargetFilterService.Add(filterSpec.FilterForEventType, filterValues, _handle);
     }
 }
        public override void Transfer(IntSeqKey path, bool transferChildContexts, AgentInstanceTransferServices xfer) {
            if (!factory.HashSpec.IsPreallocate) {
                ContextControllerFilterEntry[] filterEntries = hashSvc.MgmtGetFilters(path);
                ContextControllerDetailHashItem[] hashItems = factory.HashSpec.Items;
                for (int i = 0; i < hashItems.Length; i++) {
                    filterEntries[i].Transfer(hashItems[i].FilterSpecActivatable, xfer);
                }
            }

            if (!transferChildContexts) {
                return;
            }

            VisitPartitions(path, (hash, subpathOrCPId) => realization.TransferRecursive(path, subpathOrCPId, this, xfer));
        }
Esempio n. 7
0
        private void ProcessUnstage(StatementResourceHolder holder)
        {
            AgentInstanceTransferServices xfer = new AgentInstanceTransferServices(
                holder.AgentInstanceContext,
                _servicesContext.FilterService,
                _servicesContext.SchedulingService,
                _servicesContext.InternalEventRouter);

            holder.AgentInstanceStopCallback.Transfer(xfer);
            if (holder.ContextManagerRealization != null)
            {
                holder.ContextManagerRealization.Transfer(xfer);
            }

            holder.AgentInstanceContext.EpStatementAgentInstanceHandle.StatementFilterVersion.StmtFilterVersion = _servicesContext.FilterService.FiltersVersion;
        }
Esempio n. 8
0
        public override void Transfer(
            IntSeqKey path,
            bool transferChildContexts,
            AgentInstanceTransferServices xfer)
        {
            if (!transferChildContexts) {
                // nothing to do
                return;
            }

            int[] ids = CategorySvc.MgmtGetSubpathOrCPIds(path);
            if (ids != null) {
                foreach (int id in ids) {
                    realization.TransferRecursive(path, id, this, xfer);
                }
            }
        }
Esempio n. 9
0
        public void TransferRecursive(
            IntSeqKey controllerPath,
            int subpathOrAgentInstanceId,
            ContextController originator,
            AgentInstanceTransferServices xfer)
        {
            if (controllerPath.Length != originator.Factory.FactoryEnv.NestingLevel - 1) {
                throw new IllegalStateException("Unrecognized controller path");
            }

            var nestingLevel = originator.Factory.FactoryEnv.NestingLevel; // starts at 1 for root
            if (nestingLevel >= ContextControllers.Length) {
                return;
            }

            var childController = ContextControllers[nestingLevel];
            var subPath = controllerPath.AddToEnd(subpathOrAgentInstanceId);
            childController.Transfer(subPath, nestingLevel < ContextControllers.Length - 1, xfer);
        }
 public void Transfer(AgentInstanceTransferServices services)
 {
     // no action
 }
Esempio n. 11
0
 public abstract void Transfer(
     IntSeqKey path,
     bool transferChildContexts,
     AgentInstanceTransferServices xfer);
Esempio n. 12
0
 public virtual void Transfer(
     IntSeqKey path,
     bool transferChildContexts,
     AgentInstanceTransferServices xfer)
 {
 }
Esempio n. 13
0
 public void Transfer(AgentInstanceTransferServices xfer)
 {
     ContextControllers[0].Transfer(IntSeqKeyRoot.INSTANCE, ContextControllers.Length > 1, xfer);
 }
Esempio n. 14
0
 public virtual void Transfer(AgentInstanceTransferServices services)
 {
     // no action is the default
 }
Esempio n. 15
0
 public EvalStateNodeVisitorStageTransfer(AgentInstanceTransferServices services)
 {
     this.services = services;
 }
 public void Transfer(AgentInstanceTransferServices xfer)
 {
     patternStopCallback.Accept(new EvalStateNodeVisitorStageTransfer(xfer));
 }
 public void Transfer(AgentInstanceTransferServices services)
 {
 }
Esempio n. 18
0
 public void Transfer(AgentInstanceTransferServices services)
 {
     _rootState.Accept(new EvalStateNodeVisitorStageTransfer(services));
 }