예제 #1
0
 /// <summary>
 /// Make an observer instance.
 /// </summary>
 /// <param name="context">services that may be required by observer implementation</param>
 /// <param name="beginState">start state for observer</param>
 /// <param name="observerEventEvaluator">receiver for events observed</param>
 /// <param name="stateNodeId">optional id for the associated pattern state node</param>
 /// <param name="observerState">state node for observer</param>
 /// <param name="isFilterChildNonQuitting">if set to <c>true</c> [is filter child non quitting].</param>
 /// <returns>
 /// observer instance
 /// </returns>
 /// <exception cref="System.NotImplementedException"></exception>
 public abstract EventObserver MakeObserver(
     PatternAgentInstanceContext context,
     MatchedEventMap beginState,
     ObserverEventEvaluator observerEventEvaluator,
     EvalStateNodeNumber stateNodeId,
     object observerState,
     bool isFilterChildNonQuitting);
예제 #2
0
 /// <summary>Ctor. </summary>
 /// <param name="scheduleSpec">specification containing the crontab schedule</param>
 /// <param name="beginState">start state</param>
 /// <param name="observerEventEvaluator">receiver for events</param>
 public TimerAtObserver(ScheduleSpec scheduleSpec, MatchedEventMap beginState, ObserverEventEvaluator observerEventEvaluator)
 {
     _scheduleSpec           = scheduleSpec;
     _beginState             = beginState;
     _observerEventEvaluator = observerEventEvaluator;
     _scheduleSlot           = observerEventEvaluator.Context.PatternContext.ScheduleBucket.AllocateSlot();
 }
예제 #3
0
 /// <summary>Ctor. </summary>
 /// <param name="deltaTime">number of milliseconds</param>
 /// <param name="beginState">start state</param>
 /// <param name="observerEventEvaluator">receiver for events</param>
 public TimerIntervalObserver(long deltaTime, MatchedEventMap beginState, ObserverEventEvaluator observerEventEvaluator)
 {
     _deltaTime              = deltaTime;
     _beginState             = beginState;
     _observerEventEvaluator = observerEventEvaluator;
     _scheduleSlot           = observerEventEvaluator.Context.PatternContext.ScheduleBucket.AllocateSlot();
 }
예제 #4
0
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="spec">The spec.</param>
 /// <param name="beginState">start state</param>
 /// <param name="observerEventEvaluator">receiver for events</param>
 /// <param name="isFilterChildNonQuitting">if set to <c>true</c> [is filter child non quitting].</param>
 public TimerScheduleObserver(TimerScheduleSpec spec, MatchedEventMap beginState, ObserverEventEvaluator observerEventEvaluator, bool isFilterChildNonQuitting)
 {
     _beginState             = beginState;
     _observerEventEvaluator = observerEventEvaluator;
     _scheduleSlot           = observerEventEvaluator.Context.PatternContext.ScheduleBucket.AllocateSlot();
     _spec = spec;
     _isFilterChildNonQuitting = isFilterChildNonQuitting;
 }
예제 #5
0
 public MyFileExistsObserver(
     MatchedEventMap beginState,
     ObserverEventEvaluator observerEventEvaluator,
     string filename)
 {
     BeginState = beginState;
     this.observerEventEvaluator = observerEventEvaluator;
     this.filename = filename;
 }
예제 #6
0
 public EventObserver MakeObserver(
     PatternAgentInstanceContext context,
     MatchedEventMap beginState,
     ObserverEventEvaluator observerEventEvaluator,
     EvalStateNodeNumber stateNodeId,
     Object observerState,
     bool isFilterChildNonQuitting)
 {
     return(new TimerAtObserver(ComputeSpec(beginState, context), beginState, observerEventEvaluator));
 }
예제 #7
0
 public EventObserver MakeObserver(
     PatternAgentInstanceContext context,
     MatchedEventMap beginState,
     ObserverEventEvaluator observerEventEvaluator,
     EvalStateNodeNumber stateNodeId,
     Object observerState,
     bool isFilterchildNonQuitting)
 {
     return(null);
 }
예제 #8
0
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="scheduleSpec">specification containing the crontab schedule</param>
 /// <param name="beginState">start state</param>
 /// <param name="observerEventEvaluator">receiver for events</param>
 public TimerAtObserver(
     ScheduleSpec scheduleSpec,
     MatchedEventMap beginState,
     ObserverEventEvaluator observerEventEvaluator)
 {
     this.scheduleSpec = scheduleSpec;
     this.beginState = beginState;
     this.observerEventEvaluator = observerEventEvaluator;
     this.scheduleSlot = observerEventEvaluator.Context.AgentInstanceContext.ScheduleBucket.AllocateSlot();
 }
예제 #9
0
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="deltaTime">the time deltaTime</param>
 /// <param name="beginState">start state</param>
 /// <param name="observerEventEvaluator">receiver for events</param>
 public TimerIntervalObserver(
     long deltaTime,
     MatchedEventMap beginState,
     ObserverEventEvaluator observerEventEvaluator)
 {
     this.deltaTime = deltaTime;
     BeginState = beginState;
     this.observerEventEvaluator = observerEventEvaluator;
     scheduleSlot = observerEventEvaluator.Context.AgentInstanceContext.ScheduleBucket.AllocateSlot();
 }
예제 #10
0
 public TimerScheduleObserver(
     TimerScheduleSpec spec,
     MatchedEventMap beginState,
     ObserverEventEvaluator observerEventEvaluator,
     bool isFilterChildNonQuitting)
 {
     this.beginState = beginState;
     this.observerEventEvaluator = observerEventEvaluator;
     scheduleSlot = observerEventEvaluator.Context.AgentInstanceContext.ScheduleBucket.AllocateSlot();
     this.spec = spec;
     this.isFilterChildNonQuitting = isFilterChildNonQuitting;
 }
예제 #11
0
        public override EventObserver MakeObserver(
            PatternAgentInstanceContext context,
            MatchedEventMap beginState,
            ObserverEventEvaluator observerEventEvaluator,
            EvalStateNodeNumber stateNodeId,
            Object observerState,
            bool isFilterChildNonQuitting)
        {
            Object filename = PatternExpressionUtil.Evaluate(
                "File-exists observer ", beginState, FilenameExpression, Convertor, null);

            if (filename == null)
            {
                throw new EPException("Filename evaluated to null");
            }

            return(new MyFileExistsObserver(beginState, observerEventEvaluator, filename.ToString()));
        }
예제 #12
0
        public EventObserver MakeObserver(
            PatternAgentInstanceContext context,
            MatchedEventMap beginState,
            ObserverEventEvaluator observerEventEvaluator,
            object observerState,
            bool isFilterChildNonQuitting)
        {
            var events = convertor == null ? null : convertor.Invoke(beginState);
            var filename = PatternExpressionUtil.EvaluateChecked(
                "File-exists observer ",
                filenameExpression,
                events,
                context.AgentInstanceContext);
            if (filename == null) {
                throw new EPException("Filename evaluated to null");
            }

            return new MyFileExistsObserver(beginState, observerEventEvaluator, filename.ToString());
        }
예제 #13
0
 public MyFileExistsObserver(MatchedEventMap beginState, ObserverEventEvaluator observerEventEvaluator, String filename)
 {
     _beginState             = beginState;
     _observerEventEvaluator = observerEventEvaluator;
     _filename = filename;
 }