public void Enqueue(ITelemetry item)
{
if (item == null)
{
CoreEventSource.Log.LogVerbose("item is null in TelemetryBuffer.Enqueue");
return;
}
lock (this.lockObj)
{
this.items.Add(item);
if (this.items.Count >= this.Capacity)
{
var onFull = this.OnFull;
if (onFull != null)
{
onFull();
}
}
}
}
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()); }