Ejemplo n.º 1
0
 /// <summary>
 /// Read 'Count' number of samples
 /// </summary>
 /// <param name="Count">Number of samples to read</param>
 /// <returns></returns>
 public short[] Read(int Count)
 {
     lock (this)
     {
         try
         {
             /*
              * short[] Readed = new short[Count];
              * int ReadCount = Math.Min(Buffer.ConsumeRemaining, Count);
              * Buffer.Consume(Readed, 0, ReadCount);
              * return Readed;
              */
             return(Buffer.Consume(Math.Min(Buffer.ConsumeRemaining, Count)));
         }
         finally
         {
             foreach (var Event in BufferEvents
                      .Where(ExpectedConsumed => Buffer.TotalConsumed >= ExpectedConsumed.Item1).ToArray())
             {
                 BufferEvents.Remove(Event);
                 Event.Item2();
             }
         }
     }
 }
		public void ConsumeTest()
		{
			var Buffer = new ProduceConsumeBuffer<int>();
			Buffer.Produce(new int[] { 10, 20, -2, 3, 15 });
			Assert.AreEqual(Buffer.IndexOf(-2), 2);
			CollectionAssert.AreEqual(Buffer.Consume(2), new int[] { 10, 20 });
			Assert.AreEqual(Buffer.IndexOf(-2), 0);
			CollectionAssert.AreEqual(Buffer.Consume(1), new int[] { -2 });
			Assert.AreEqual(Buffer.IndexOf(-2), -1);
			Buffer.Produce(new int[] { 4, 2 });
			CollectionAssert.AreEqual(Buffer.Items, new int[] { 3, 15, 4, 2 });

			Assert.AreEqual(-1, Buffer.IndexOf(new int[] { 3, 15, 4, 1 }));
			Assert.AreEqual(0, Buffer.IndexOf(new int[] { 3, 15, 4 }));
			Assert.AreEqual(1, Buffer.IndexOf(new int[] { 15, 4 }));
			Assert.AreEqual(2, Buffer.IndexOf(new int[] { 4, 2 }));
		}
        public void ConsumeTest()
        {
            var Buffer = new ProduceConsumeBuffer <int>();

            Buffer.Produce(new int[] { 10, 20, -2, 3, 15 });
            Assert.AreEqual(Buffer.IndexOf(-2), 2);
            CollectionAssert.AreEqual(Buffer.Consume(2), new int[] { 10, 20 });
            Assert.AreEqual(Buffer.IndexOf(-2), 0);
            CollectionAssert.AreEqual(Buffer.Consume(1), new int[] { -2 });
            Assert.AreEqual(Buffer.IndexOf(-2), -1);
            Buffer.Produce(new int[] { 4, 2 });
            CollectionAssert.AreEqual(Buffer.Items, new int[] { 3, 15, 4, 2 });

            Assert.AreEqual(-1, Buffer.IndexOf(new int[] { 3, 15, 4, 1 }));
            Assert.AreEqual(0, Buffer.IndexOf(new int[] { 3, 15, 4 }));
            Assert.AreEqual(1, Buffer.IndexOf(new int[] { 15, 4 }));
            Assert.AreEqual(2, Buffer.IndexOf(new int[] { 4, 2 }));
        }
Ejemplo n.º 4
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="numberOfBytes"></param>
 public void SkipBytes(int numberOfBytes)
 {
     _buffer.Consume(numberOfBytes);
 }
Ejemplo n.º 5
0
 public void SkipBytes(int NumberOfBytes)
 {
     Buffer.Consume(NumberOfBytes);
 }
        public async Task SkipBytesAsync(int NumberOfBytes)
        {
            await EnsureDataAsync(NumberOfBytes);

            Buffer.Consume(NumberOfBytes);
        }