Exemple #1
0
 void CheckBuffer(int requireSize)
 {
     if (_len - _pos < requireSize)
     {
         if (_extend)
         {
             var newdata = new byte[2 * _buffer.Length + requireSize];
             WireFormat.CopyBytes(_buffer, newdata, 0, 0, _buffer.Length);
             _len    = newdata.Length;
             _buffer = newdata;
         }
         else
         {
             throw new Exception("No enough buffer");
         }
     }
 }
Exemple #2
0
        public void ReadBytes(WireFormat.WireType wt, ref byte[] value)
        {
            if (wt == WireFormat.WireType.Bytes)
            {
                var count = ReadVarint32();

                if (value == null)
                {
                    value = new byte[count];
                }

                WireFormat.CopyBytes(_buffer, value, _pos, 0, (int)count);
                _pos += (int)count;
            }
            else
            {
                throw new Exception("Invalid Wireformat");
            }
        }
Exemple #3
0
 internal void WriteRawBytes(byte[] value, int length)
 {
     CheckBuffer(length);
     WireFormat.CopyBytes(value, _buffer, 0, _pos, length);
     _pos += length;
 }