Exemple #1
0
 public void ClearBuffer()
 {
     lock (SampleQueue)
     {
         SampleQueue.Clear();
     }
 }
Exemple #2
0
            public void TrimAndKeepDiscarded(SampleQueue refQueue)
            {
                BufferedSample sample = null;
                BufferedSample discardedSample;

                refQueue.Clear();

                while (head.next != null && head.next.shouldBeRemoved)
                {
                    discardedSample = head.next;
                    discardedSample.shouldBeRemoved = false;
                    head.next = discardedSample.next;
                    refQueue.Enqueue(discardedSample);                       //enqueue cached because enqueuing might set next to null if is last
                }

                if (head.next != null)
                {
                    sample = head.next;

                    while (sample.next != null)
                    {
                        if (sample.next.shouldBeRemoved)
                        {
                            discardedSample = sample.next;
                            discardedSample.shouldBeRemoved = false;
                            sample.next = discardedSample.next;
                            refQueue.Enqueue(discardedSample);                               //enqueue cached because enqueuing might set next to null if is last
                        }
                        else
                        {
                            sample = sample.next;
                        }
                    }
                }

                if (head.next == null)
                {
                    last = null;
                }
                else
                {
                    last = sample;
                }
            }