FastQuant.EventPipe.Read C# (CSharp) Method

Read() public method

public Read ( ) : Event
return Event
        public Event Read()
        {
            var node = this.list.First;
            LinkedListNode<IEventQueue> lastNode = null;
            while (node != null)
            {
                var q = node.Data;
                if (!q.IsEmpty())
                {
                    var e = q.Read();
                    if (e.TypeId == EventType.OnQueueClosed)
                    {
                        if (lastNode == null)
                            this.list.First = node.Next;
                        else
                            lastNode.Next = node.Next;
                        this.list.Count--;
                    }
                    return e;
                }
                lastNode = node;
                node = node.Next;
            }

            return this.tree.IsEmpty() ? null : this.tree.Read();
        }
    }