Exemple #1
0
        internal static ContextPartitionIdentifier[] GetTreeCompositeKey(
            ContextControllerFactory[] nestedContextFactories,
            Object initPartitionKey,
            ContextControllerTreeEntry treeEntry,
            IDictionary <ContextController, ContextControllerTreeEntry> subcontexts)
        {
            var length = nestedContextFactories.Length;
            var keys   = new ContextPartitionIdentifier[length];

            keys[length - 1] = nestedContextFactories[length - 1].KeyPayloadToIdentifier(initPartitionKey);
            keys[length - 2] = nestedContextFactories[length - 2].KeyPayloadToIdentifier(treeEntry.InitPartitionKey);

            // get parent's parent
            if (length > 2)
            {
                var parent      = treeEntry.Parent;
                var parentEntry = subcontexts.Get(parent);
                for (var i = 0; i < length - 2; i++)
                {
                    keys[length - 2 - i] =
                        nestedContextFactories[length - 2 - i].KeyPayloadToIdentifier(parentEntry.InitPartitionKey);
                    parent      = parentEntry.Parent;
                    parentEntry = subcontexts.Get(parent);
                }
            }

            return(keys);
        }
Exemple #2
0
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="agentInstanceId">agent instance id</param>
 /// <param name="identifier">context partition identification</param>
 /// <param name="state">variable state</param>
 public ContextPartitionVariableState(
     int agentInstanceId,
     ContextPartitionIdentifier identifier,
     object state)
 {
     AgentInstanceId = agentInstanceId;
     Identifier      = identifier;
     State           = state;
 }
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="runtimeURI">runtime URI</param>
 /// <param name="contextDeploymentId">deployment id of create-context statement</param>
 /// <param name="contextName">context name</param>
 /// <param name="id">context partition id</param>
 /// <param name="identifier">identifier</param>
 public ContextStateEventContextPartitionAllocated(
     string runtimeURI,
     string contextDeploymentId,
     string contextName,
     int id,
     ContextPartitionIdentifier identifier)
     : base(runtimeURI, contextDeploymentId, contextName, id)
 {
     Identifier = identifier;
 }
Exemple #4
0
            public bool Filter(ContextPartitionIdentifier contextPartitionIdentifier)
            {
                var id = (ContextPartitionIdentifierCategory) contextPartitionIdentifier;
                if (matchCategory == null && cpids.Contains(id.ContextPartitionId)) {
                    throw new EPException("Already exists context Id: " + id.ContextPartitionId);
                }

                cpids.Add(id.ContextPartitionId);
                categories.Add(id.Label);
                return matchCategory != null && matchCategory.Equals(id.Label);
            }
Exemple #5
0
            public bool Filter(ContextPartitionIdentifier contextPartitionIdentifier)
            {
                var id = (ContextPartitionIdentifierHash) contextPartitionIdentifier;
                if (match == null && cpids.Contains(id.ContextPartitionId)) {
                    throw new EPException("Already exists context Id: " + id.ContextPartitionId);
                }

                cpids.Add(id.ContextPartitionId);
                Contexts.Add(id.Hash);
                return match.Contains(id.Hash);
            }
Exemple #6
0
            public bool Filter(ContextPartitionIdentifier contextPartitionIdentifier)
            {
                var id = (ContextPartitionIdentifierCategory)contextPartitionIdentifier;

                if (_matchCategory == null && _cpids.Contains(id.ContextPartitionId.Value))
                {
                    throw new Exception("Already exists context id: " + id.ContextPartitionId);
                }
                _cpids.Add(id.ContextPartitionId.Value);
                _categories.Add(id.Label);
                return(_matchCategory != null && _matchCategory.Equals(id.Label));
            }
Exemple #7
0
            public bool Filter(ContextPartitionIdentifier contextPartitionIdentifier)
            {
                var id = (ContextPartitionIdentifierHash)contextPartitionIdentifier;

                if (_match == null && _cpids.Contains(id.ContextPartitionId))
                {
                    throw new EPRuntimeException("Already exists context id: " + id.ContextPartitionId);
                }
                _cpids.Add(id.ContextPartitionId);
                _contexts.Add(id.Hash);
                return(_match.Contains(id.Hash));
            }
        public void Visit(int nestingLevel, int pathId, ContextStatePathValueBinding binding, Object payload, ContextController contextController, ContextControllerInstanceHandle instanceHandle)
        {
            ContextStatePathKey key = new ContextStatePathKey(nestingLevel, pathId, instanceHandle.SubPathId);
            int agentInstanceId     = instanceHandle.ContextPartitionOrPathId;

            States.Put(key, new ContextStatePathValue(agentInstanceId, binding.ToByteArray(payload), instanceHandle.Instances.State));

            ContextPartitionState      state      = instanceHandle.Instances.State;
            ContextPartitionIdentifier identifier = contextController.Factory.KeyPayloadToIdentifier(payload);
            ContextPartitionDescriptor descriptor = new ContextPartitionDescriptor(agentInstanceId, identifier, state);

            ContextPartitionInfo.Put(agentInstanceId, descriptor);
        }
Exemple #9
0
        public bool Filter(ContextPartitionIdentifier contextPartitionIdentifier) {
            var id = (ContextPartitionIdentifierInitiatedTerminated) contextPartitionIdentifier;
            if (_matchP00Value == null && _cpids.Contains(id.ContextPartitionId)) {
                throw new EPRuntimeException("Already exists context id: " + id.ContextPartitionId);
            }

            _cpids.Add(id.ContextPartitionId);
            _startTimes.Add(id.StartTime);
            var p00Value = (string) ((EventBean) id.Properties.Get("s0")).Get("p00");
            _p00PropertyValues.Add(p00Value);
            _lastValue = id;
            return _matchP00Value != null && _matchP00Value.Equals(p00Value);
        }
Exemple #10
0
        public ContextPartitionIdentifier GetContextPartitionIdentifier(object[] partitionKeys)
        {
            if (ContextDefinition.ControllerFactories.Length == 1) {
                return ContextDefinition.ControllerFactories[0].GetContextPartitionIdentifier(partitionKeys[0]);
            }

            var identifiers = new ContextPartitionIdentifier[partitionKeys.Length];
            for (var i = 0; i < partitionKeys.Length; i++) {
                identifiers[i] = ContextDefinition.ControllerFactories[i]
                    .GetContextPartitionIdentifier(partitionKeys[i]);
            }

            return new ContextPartitionIdentifierNested(identifiers);
        }
        public void DeletePath(ContextPartitionIdentifier identifier)
        {
            var category = (ContextPartitionIdentifierCategory)identifier;
            var count    = 0;

            foreach (var cat in _factory.CategorySpec.Items)
            {
                if (cat.Name.Equals(category.Label))
                {
                    _handleCategories.Remove(count);
                    break;
                }
                count++;
            }
        }
Exemple #12
0
        public void DeletePath(ContextPartitionIdentifier identifier)
        {
            var initterm = (ContextPartitionIdentifierInitiatedTerminated)identifier;

            foreach (var entry in EndConditions)
            {
                if (Compare(initterm.StartTime, initterm.Properties, initterm.EndTime,
                            entry.Value.StartTime, entry.Value.StartProperties, entry.Value.EndTime))
                {
                    entry.Key.Deactivate();
                    EndConditions.Remove(entry.Key);
                    RemoveDistinctKey(entry.Value);
                    break;
                }
            }
        }
Exemple #13
0
        public void DeletePath(ContextPartitionIdentifier identifier)
        {
            var hash = (ContextPartitionIdentifierHash)identifier;

            _partitionKeys.Remove(hash.Hash);
        }
        public void DeletePath(ContextPartitionIdentifier identifier)
        {
            var partitioned = (ContextPartitionIdentifierPartitioned)identifier;

            _partitionKeys.Remove(GetKeyObjectForLookup(partitioned.Keys));
        }
 /// <summary>Ctor. </summary>
 /// <param name="agentInstanceId">context partition id</param>
 /// <param name="identifier">identifier object specific to context declaration</param>
 /// <param name="state">current state</param>
 public ContextPartitionDescriptor(int agentInstanceId, ContextPartitionIdentifier identifier, ContextPartitionState state)
 {
     AgentInstanceId = agentInstanceId;
     Identifier      = identifier;
     State           = state;
 }
 public bool Filter(ContextPartitionIdentifier contextPartitionIdentifier)
 {
     return true;
 }