Ejemplo n.º 1
0
        public PollResponse PollEvents(long eventBufferVersion, string consumerName)
        {
            var events = new List <IEvent>();

            while (true)
            {
                for (int i = 0; i < this.eventsToPushMaxCount; i++)
                {
                    IEvent e;
                    if (!this.messageQueue.TryDequeue(out e))
                    {
                        break;
                    }

                    events.Add(e);
                }

                if (events.Count > 0)
                {
                    break;
                }

                Thread.Sleep(1);
            }

            return(PollResponse.CreateInMemoryResponse(false, true, this.streamType, events, events.Count, events.Count + this.messageQueue.Count));
        }