示例#1
0
 public void Put(short value)
 {
     if (_autoResize)
     {
         ResizeIfNeed(_position + 2);
     }
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 2;
 }
示例#2
0
 public void Put(ulong value)
 {
     if (_autoResize)
     {
         ResizeIfNeed(_position + 8);
     }
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 8;
 }
示例#3
0
 public void Put(float value)
 {
     if (_autoResize)
     {
         ResizeIfNeed(_position + 4);
     }
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 4;
 }
 public void PutBytesWithLength(byte[] data)
 {
     if (_autoResize)
     {
         ResizeIfNeed(_position + data.Length + 4);
     }
     FastBitConverter.GetBytes(_data, _position, data.Length);
     Buffer.BlockCopy(data, 0, _data, _position + 4, data.Length);
     _position += data.Length + 4;
 }
 public void PutBytesWithLength(byte[] data, int offset, int length)
 {
     if (_autoResize)
     {
         ResizeIfNeed(_position + length + 4);
     }
     FastBitConverter.GetBytes(_data, _position, length);
     Buffer.BlockCopy(data, offset, _data, _position + 4, length);
     _position += length + 4;
 }
示例#6
0
        private void __PutArrayFastLE <T>(T[] x, int elemSize) where T : struct
        {
            ushort len        = x == null ? (ushort)0 : (ushort)x.Length;
            int    bytesCount = elemSize * len;

            ResizeIfNeed(_position + 2 + bytesCount);
            FastBitConverter.GetBytes(_data, _position, len);
            _position += 2;
            if (len == 0)
            {
                return;
            }

            // if we are LE, just do a block copy
            Buffer.BlockCopy(x, 0, _data, _position, bytesCount);
            _position += bytesCount;
        }
示例#7
0
 public void Write(char value)
 {
     ResizeIfNeed(_position + 2);
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 2;
 }
示例#8
0
 public void Write(uint value)
 {
     ResizeIfNeed(_position + 4);
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 4;
 }
示例#9
0
 public void Write(ulong value)
 {
     ResizeIfNeed(_position + 8);
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 8;
 }
示例#10
0
 public void PutInt16(short value)
 {
     ResizeIfNeed(_position + 2);
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 2;
 }
示例#11
0
 public void PutDouble(double value)
 {
     ResizeIfNeed(_position + 8);
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 8;
 }
示例#12
0
 public void PutSingle(float value)
 {
     ResizeIfNeed(_position + 4);
     FastBitConverter.GetBytes(_data, _position, value);
     _position += 4;
 }