in csharp/src/Containers/DataQueue.cs [527:557]
public void PutLast(Decimal64 data, DateTime time)
{
if (time == DefaultDateTime)
{
PutLast(data);
return;
}
if (queueType != QueueType.ManualControl)
throw new InvalidOperationException("DataQueue: Use Auto method put.");
if (!needDateTime)
throw new InvalidOperationException("DataQueue: Do not use both with and without DateTime method for one queue instance.");
if (count > 0 && time < queueDates[last == 0 ? queueBuffer.Length - 1 : last - 1])
throw new ArgumentOutOfRangeException("DataQueue: New element has time less then last element.");
if (count > 0 && first == last)
Expand();
count++;
queueBuffer[last] = data;
queueDates[last++] = time;
if (last == queueBuffer.Length)
last = 0;
OnPush?.Invoke(data, time);
if (calcStatistics)
stat.Push(data);
}