public void Index()
        {
            var buffer = new BlockBuffer <byte>(100);
            var bytes  = new byte[100];

            buffer.Write(bytes);
            buffer.Read(50);
            buffer.ResetIndex();
            Assert.AreEqual(buffer.WritePosition, 50);
            Assert.AreEqual(buffer.ReadPosition, 0);
        }
示例#2
0
 protected override void Unpack(BlockBuffer <byte> bytes, Action <byte[]> onUnpacked)
 {
     //Because header is int and cost 4 byte
     while (bytes.WritePosition > 4)
     {
         int length = BitConverter.ToInt32(bytes.Buffer, 0);
         //If receive body
         if (bytes.WritePosition >= 4 + length)
         {
             bytes.MoveReadPostion(4);
             var data = bytes.Read(length);
             //Notice unpack finished
             onUnpacked(data);
             bytes.ResetIndex();
         }
     }
 }