예제 #1
0
 public override bool Evaluate(EventBean theEvent)
 {
     using (evaluatorContext.AgentInstanceLock.AcquireWriteLock())
     {
         variableService.SetLocalVersion();
         return EvaluatePerStream(new[] { theEvent });
     }
 }
예제 #2
0
        public override bool Evaluate(EventBean theEvent)
        {
            _variableService?.SetLocalVersion();

            var eventsPerStream = _arrayPerThread.GetOrCreate();
            eventsPerStream[0] = theEvent;
            return EvaluatePerStream(eventsPerStream);
        }
예제 #3
0
        public override bool Evaluate(EventBean theEvent)
        {
            _variableService?.SetLocalVersion();

            var eventsPerStream = new EventBean[prototypeArray.Length];
            Array.Copy(prototypeArray, 0, eventsPerStream, 0, prototypeArray.Length);
            eventsPerStream[0] = theEvent;
            return EvaluatePerStream(eventsPerStream);
        }
예제 #4
0
        public override bool Evaluate(EventBean theEvent)
        {
            var eventsPerStream = new EventBean[prototypeArray.Length];
            Array.Copy(prototypeArray, 0, eventsPerStream, 0, prototypeArray.Length);
            eventsPerStream[0] = theEvent;

            _variableService?.SetLocalVersion();

            var writeLockTimeout = TimeSpan.FromMilliseconds(LOCK_BACKOFF_MSEC);
            using (evaluatorContext.AgentInstanceLock.AcquireWriteLock(writeLockTimeout)) {
                return EvaluatePerStream(eventsPerStream);
            }

            //if (!obtained) {
            //    throw new FilterLockBackoffException();
            //}

        }
예제 #5
0
 public override bool Evaluate(EventBean theEvent)
 {
     variableService.SetLocalVersion();
     return EvaluatePerStream(new[] {theEvent});
 }