private void QueueEvent(Envelope env)
        {
            if (null != env)
            {
                string sequenceId = env.Headers[SEC.SEQUENCE_ID];
                TEvent evt        = (TEvent)_processInbound(env);

                if (null != evt)
                {
                    if (!_collectedEvents.ContainsKey(sequenceId))
                    {
                        _collectedEvents.Add(sequenceId, new Dictionary <int, StreamingEventItem <TEvent> >());
                    }
                    StreamingEventItem <TEvent> eventItem = new StreamingEventItem <TEvent>(evt, env.Headers);
                    IDictionary <int, StreamingEventItem <TEvent> > eventMap = _collectedEvents[sequenceId];
                    eventMap.Add(eventItem.Position, eventItem);
                    UpdatePercentProcessed(sequenceId, eventMap.Count);
                }
            }
        }
Exemple #2
0
        public object Handle(Envelope env)
        {
            lock (padLock)
            {
                _log.Debug("enter Handle for StreamingReaderRegistration");
                object result = null;

                try
                {
                    if (IsEndOfStream(env))
                    {
                        foreach (IObserver <StreamingEventItem <TEvent> > o in _observers)
                        {
                            o.OnCompleted();
                        }
                        _eventHandler.Dispose();
                    }
                    else
                    {
                        TEvent evt = (TEvent)_processorCallback(env);
                        if (null != evt)
                        {
                            StreamingEventItem <TEvent> eventItem = new StreamingEventItem <TEvent>(evt, env.Headers);
                            foreach (IObserver <StreamingEventItem <TEvent> > o in _observers)
                            {
                                o.OnNext(eventItem);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    result = HandleFailed(env, ex);
                }

                _log.Debug("leaving Handle for StreamingReaderRegistration");
                return(result);
            }
        }
 public void OnNext(StreamingEventItem <TestStreamEvent> eventItem)
 {
     _receivedEvents.Add(eventItem);
     Log.Debug(string.Format("Message received: (sequenceId: {0}), (position: {1}), Event Value: {2}",
                             eventItem.SequenceId, eventItem.Position, eventItem.Event));
 }
Exemple #4
0
        public void OnNext(StreamingEventItem <ModernMajorGeneralMessage> eventItem)
        {
            ModernMajorGeneralMessage mmg = eventItem.Event;

            Console.WriteLine("Message received: (sequenceId: {0}), (position: {1}), Event Value: {2}", eventItem.SequenceId, eventItem.Position, mmg.Content);
        }