示例#1
0
 public ContextControllerInitTermBase(
     ContextControllerInitTermFactory factory,
     ContextManagerRealization realization)
     : base(factory, realization)
 {
     initTermSvc = ContextControllerInitTermUtil.GetService(factory);
 }
示例#2
0
        internal IList<AgentInstance> InstantiateAndActivateEndCondition(
            IntSeqKey controllerPath,
            EventBean optionalTriggeringEvent,
            IDictionary<string, object> optionalTriggeringPattern,
            IDictionary<string, object> optionalPatternForInclusiveEval,
            ContextControllerConditionNonHA startCondition)
        {
            var subpathId = initTermSvc.MgmtUpdIncSubpath(controllerPath);

            var endConditionPath = controllerPath.AddToEnd(subpathId);
            var partitionKeys = initTermSvc.MgmtGetParentPartitionKeys(controllerPath);
            var endCondition = ContextControllerConditionFactory.GetEndpoint(
                endConditionPath,
                partitionKeys,
                factory.initTermSpec.EndCondition,
                this,
                this,
                false);
            endCondition.Activate(optionalTriggeringEvent, this);

            var partitionKey = ContextControllerInitTermUtil.BuildPartitionKey(
                optionalTriggeringEvent,
                optionalTriggeringPattern,
                endCondition,
                this);

            var result = realization.ContextPartitionInstantiate(
                controllerPath,
                subpathId,
                this,
                optionalTriggeringEvent,
                optionalPatternForInclusiveEval,
                partitionKeys,
                partitionKey);
            var subpathIdOrCPId = result.SubpathOrCPId;

            initTermSvc.EndCreate(endConditionPath, subpathIdOrCPId, endCondition, partitionKey);

            return result.AgentInstances;
        }