コード例 #1
0
 public StatementAgentInstanceFactoryCreateNWResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext,
     Viewable eventStreamParentViewable,
     Viewable topView,
     NamedWindowInstance namedWindowInstance,
     ViewableActivationResult viewableActivationResult)
     : base(
         finalView,
         stopCallback,
         agentInstanceContext,
         null,
         new EmptyDictionary<int, SubSelectFactoryResult>(),
         null,
         null,
         null,
         new EmptyDictionary<int, ExprTableEvalStrategy>(),
         null)
 {
     this.eventStreamParentViewable = eventStreamParentViewable;
     this.topView = topView;
     this.namedWindowInstance = namedWindowInstance;
     this.viewableActivationResult = viewableActivationResult;
 }
コード例 #2
0
 public StatementAgentInstanceFactorySelectResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext,
     AggregationService optionalAggegationService,
     IDictionary<int, SubSelectFactoryResult> subselectStrategies,
     PriorEvalStrategy[] priorStrategies,
     PreviousGetterStrategy[] previousGetterStrategies,
     RowRecogPreviousStrategy regexExprPreviousEvalStrategy,
     IDictionary<int, ExprTableEvalStrategy> tableAccessStrategies,
     IList<StatementAgentInstancePreload> preloadList,
     EvalRootState[] patternRoots,
     JoinSetComposer joinSetComposer,
     Viewable[] topViews,
     Viewable[] eventStreamViewables,
     ViewableActivationResult[] viewableActivationResults)
     : base(
         finalView,
         stopCallback,
         agentInstanceContext,
         optionalAggegationService,
         subselectStrategies,
         priorStrategies,
         previousGetterStrategies,
         regexExprPreviousEvalStrategy,
         tableAccessStrategies,
         preloadList)
 {
     TopViews = topViews;
     PatternRoots = patternRoots;
     JoinSetComposer = joinSetComposer;
     EventStreamViewables = eventStreamViewables;
     ViewableActivationResults = viewableActivationResults;
 }
コード例 #3
0
 public StatementAgentInstanceFactoryOnTriggerResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext,
     AggregationService optionalAggegationService,
     IDictionary<int, SubSelectFactoryResult> subselectStrategies,
     PriorEvalStrategy[] priorStrategies,
     PreviousGetterStrategy[] previousGetterStrategies,
     RowRecogPreviousStrategy regexExprPreviousEvalStrategy,
     IDictionary<int, ExprTableEvalStrategy> tableAccessStrategies,
     IList<StatementAgentInstancePreload> preloadList,
     EvalRootState optPatternRoot,
     ViewableActivationResult viewableActivationResult)
     : base(
         finalView,
         stopCallback,
         agentInstanceContext,
         optionalAggegationService,
         subselectStrategies,
         priorStrategies,
         previousGetterStrategies,
         regexExprPreviousEvalStrategy,
         tableAccessStrategies,
         preloadList)
 {
     OptPatternRoot = optPatternRoot;
     ViewableActivationResult = viewableActivationResult;
 }
コード例 #4
0
        public StatementAgentInstanceFactoryCreateContextResult(
            Viewable finalView,
            AgentInstanceStopCallback stopCallback,
            AgentInstanceContext agentInstanceContext,
            AggregationService optionalAggegationService,
            IDictionary<int, SubSelectFactoryResult> subselectStrategies,
            PriorEvalStrategy[] priorStrategies,
            PreviousGetterStrategy[] previousGetterStrategies,
            RowRecogPreviousStrategy regexExprPreviousEvalStrategy,
            IDictionary<int, ExprTableEvalStrategy> tableAccessStrategies,
            IList<StatementAgentInstancePreload> preloadList,
            ContextManagerRealization contextManagerRealization)
            : base(
                finalView,
                stopCallback,
                agentInstanceContext,
                optionalAggegationService,
                subselectStrategies,
                priorStrategies,
                previousGetterStrategies,
                regexExprPreviousEvalStrategy,
                tableAccessStrategies,
                preloadList)

        {
            this.contextManagerRealization = contextManagerRealization;
        }
コード例 #5
0
        public static void StopSafe(
            AgentInstanceStopCallback stopMethod,
            AgentInstanceContext agentInstanceContext)
        {
            var stopServices = new AgentInstanceStopServices(agentInstanceContext);

            var additionalTerminations = agentInstanceContext.TerminationCallbackRO;
            foreach (var stop in additionalTerminations) {
                try {
                    stop.Stop(stopServices);
                }
                catch (EPException) {
                    throw;
                }
                catch (Exception e) {
                    HandleStopException(e, agentInstanceContext);
                }
            }

            try {
                stopMethod.Stop(stopServices);
            }
            catch (EPException) {
                throw;
            }
            catch (Exception e) {
                HandleStopException(e, agentInstanceContext);
            }
        }
コード例 #6
0
 public AgentInstance(
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext,
     Viewable finalView)
 {
     StopCallback = stopCallback;
     AgentInstanceContext = agentInstanceContext;
     FinalView = finalView;
 }
コード例 #7
0
 public void RemoveTerminationCallback(AgentInstanceStopCallback callback)
 {
     if (_terminationCallbacks == null) {
     }
     else if (_terminationCallbacks is ICollection<AgentInstanceStopCallback>) {
         ((ICollection<AgentInstanceStopCallback>) _terminationCallbacks).Remove(callback);
     }
     else if (_terminationCallbacks == callback) {
         _terminationCallbacks = null;
     }
 }
コード例 #8
0
 /// <summary>
 ///     Add a stop-callback.
 ///     Use to add a stop-callback other than already registered.
 ///     This is generally not required by views that implement AgentInstanceStopCallback as
 ///     they gets stopped as part of normal processing.
 /// </summary>
 /// <param name="callback">to add</param>
 public void AddTerminationCallback(AgentInstanceStopCallback callback)
 {
     if (_terminationCallbacks == null) {
         _terminationCallbacks = callback;
     }
     else if (_terminationCallbacks is ICollection<AgentInstanceStopCallback>) {
         ((ICollection<AgentInstanceStopCallback>) _terminationCallbacks).Add(callback);
     }
     else {
         var cb = (AgentInstanceStopCallback) _terminationCallbacks;
         var q = new HashSet<AgentInstanceStopCallback>();
         q.Add(cb);
         q.Add(callback);
         _terminationCallbacks = q;
     }
 }
コード例 #9
0
 public StatementAgentInstanceFactoryCreateIndexResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext)
     : base(
         finalView,
         stopCallback,
         agentInstanceContext,
         null,
         new EmptyDictionary<int, SubSelectFactoryResult>(),
         null,
         null,
         null,
         new EmptyDictionary<int, ExprTableEvalStrategy>(),
         new EmptyList<StatementAgentInstancePreload>())
 {
 }
コード例 #10
0
 public ViewableActivationResult(
     Viewable viewable,
     AgentInstanceStopCallback stopCallback,
     EvalRootMatchRemover optEvalRootMatchRemover,
     bool suppressSameEventMatches,
     bool discardPartialsOnMatch,
     EvalRootState optionalPatternRoot,
     ViewableActivationResultExtension viewableActivationResultExtension)
 {
     Viewable = viewable;
     StopCallback = stopCallback;
     OptEvalRootMatchRemover = optEvalRootMatchRemover;
     IsSuppressSameEventMatches = suppressSameEventMatches;
     IsDiscardPartialsOnMatch = discardPartialsOnMatch;
     OptionalPatternRoot = optionalPatternRoot;
     ViewableActivationResultExtension = viewableActivationResultExtension;
 }
コード例 #11
0
        public static void Stop(
            AgentInstanceStopCallback stopCallback,
            AgentInstanceContext agentInstanceContext,
            Viewable finalView,
            bool isStatementStop,
            bool leaveLocksAcquired)
        {
            agentInstanceContext.InstrumentationProvider.QContextPartitionDestroy(agentInstanceContext);

            // obtain statement lock
            var @lock = agentInstanceContext.EpStatementAgentInstanceHandle.StatementAgentInstanceLock;
            @lock.AcquireWriteLock();
            try {
                if (finalView is OutputProcessViewTerminable terminable && !isStatementStop) {
                    terminable.Terminated();
                }

                StopSafe(stopCallback, agentInstanceContext);

                // release resource
                agentInstanceContext.StatementContext.StatementAIResourceRegistry?.Deassign(
                    agentInstanceContext.AgentInstanceId);

                // cause any remaining schedules, that may concide with the caller's schedule, to be ignored
                agentInstanceContext.EpStatementAgentInstanceHandle.IsDestroyed = true;

                // cause any filters, that may concide with the caller's filters, to be ignored
                agentInstanceContext.EpStatementAgentInstanceHandle.StatementFilterVersion.StmtFilterVersion =
                    Int64.MaxValue;

                if (agentInstanceContext.AgentInstanceId != -1) {
                    agentInstanceContext.AuditProvider.ContextPartition(false, agentInstanceContext);
                }
            }
            finally {
                if (!leaveLocksAcquired) {
                    if (agentInstanceContext.StatementContext.EpStatementHandle.HasTableAccess) {
                        agentInstanceContext.TableExprEvaluatorContext.ReleaseAcquiredLocks();
                    }

                    @lock.ReleaseWriteLock();
                }

                agentInstanceContext.InstrumentationProvider.AContextPartitionDestroy();
            }
        }
コード例 #12
0
 public StatementAgentInstanceFactoryCreateVariableResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext)
     :
     base(
         finalView,
         stopCallback,
         agentInstanceContext,
         null,
         Collections.GetEmptyMap<int, SubSelectFactoryResult>(),
         null,
         null,
         null,
         Collections.GetEmptyMap<int, ExprTableEvalStrategy>(),
         Collections.GetEmptyList<StatementAgentInstancePreload>())
 {
 }
コード例 #13
0
 public StatementAgentInstanceFactoryUpdateResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext,
     IDictionary<int, SubSelectFactoryResult> subselectActivations)
     : base(
         finalView,
         stopCallback,
         agentInstanceContext,
         null,
         subselectActivations,
         null,
         null,
         null,
         null,
         Collections.GetEmptyList<StatementAgentInstancePreload>())
 {
 }
コード例 #14
0
 public StatementAgentInstanceFactoryCreateDataflowResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext,
     DataflowDesc dataflow)
     : base(
         finalView,
         stopCallback,
         agentInstanceContext,
         null,
         Collections.GetEmptyMap<int, SubSelectFactoryResult>(),
         null,
         null,
         null,
         null,
         Collections.GetEmptyList<StatementAgentInstancePreload>())
 {
     Dataflow = dataflow;
 }
コード例 #15
0
 protected StatementAgentInstanceFactoryResult(
     Viewable finalView,
     AgentInstanceStopCallback stopCallback,
     AgentInstanceContext agentInstanceContext,
     AggregationService optionalAggegationService,
     IDictionary<int, SubSelectFactoryResult> subselectStrategies,
     PriorEvalStrategy[] priorStrategies,
     PreviousGetterStrategy[] previousGetterStrategies,
     RowRecogPreviousStrategy rowRecogPreviousStrategy,
     IDictionary<int, ExprTableEvalStrategy> tableAccessStrategies,
     IList<StatementAgentInstancePreload> preloadList)
 {
     FinalView = finalView;
     StopCallback = stopCallback;
     AgentInstanceContext = agentInstanceContext;
     OptionalAggegationService = optionalAggegationService;
     SubselectStrategies = subselectStrategies;
     PriorStrategies = priorStrategies;
     PreviousGetterStrategies = previousGetterStrategies;
     RowRecogPreviousStrategy = rowRecogPreviousStrategy;
     TableAccessStrategies = tableAccessStrategies;
     this.preloadList = preloadList;
 }