Microsoft.HockeyApp.Channel.TelemetryBuffer.Dequeue C# (CSharp) Method

Dequeue() public method

public Dequeue ( ) : IEnumerable
return IEnumerable
        public IEnumerable<ITelemetry> Dequeue()
        {
            List<ITelemetry> telemetryToFlush = null;

            if (this.items.Count > 0)
            {
                lock (this.lockObj)
                {
                    if (this.items.Count > 0)
                    {
                        telemetryToFlush = this.items;
                        this.items = new List<ITelemetry>();
                    }
                }
            }
            else
            {
            }

            return telemetryToFlush;
        }
    }

Usage Example

        public void TelemetryBufferCallingOnFullActionWhenBufferCapacityReached()
        {
            IEnumerable<ITelemetry> items = null;
            TelemetryBuffer buffer = new TelemetryBuffer { Capacity = 2 };
            buffer.OnFull = () => { items = buffer.Dequeue(); };

            buffer.Enqueue(new EventTelemetry("Event1"));
            buffer.Enqueue(new EventTelemetry("Event2"));

            Assert.NotNull(items);
            Assert.Equal(2, items.Count());
        }
All Usage Examples Of Microsoft.HockeyApp.Channel.TelemetryBuffer::Dequeue