Exemplo n.º 1
0
 private void WriteBinaryHeaderAndLength(uint length, IMsgPackWriter writer)
 {
     if (length <= byte.MaxValue)
     {
         writer.Write(DataTypes.Bin8);
         NumberConverter.WriteByteValue((byte)length, writer);
     }
     else if (length <= ushort.MaxValue)
     {
         writer.Write(DataTypes.Bin16);
         NumberConverter.WriteUShortValue((ushort)length, writer);
     }
     else
     {
         writer.Write(DataTypes.Bin32);
         NumberConverter.WriteUIntValue(length, writer);
     }
 }
Exemplo n.º 2
0
        private void WriteStringHeaderAndLength(IMsgPackWriter writer, int length)
        {
            if (length <= 31)
            {
                writer.Write((byte)(((byte)DataTypes.FixStr + length) % 256));
                return;
            }

            if (length <= byte.MaxValue)
            {
                writer.Write(DataTypes.Str8);
                NumberConverter.WriteByteValue((byte)length, writer);
            }
            else if (length <= ushort.MaxValue)
            {
                writer.Write(DataTypes.Str16);
                NumberConverter.WriteUShortValue((ushort)length, writer);
            }
            else
            {
                writer.Write(DataTypes.Str32);
                NumberConverter.WriteUIntValue((uint)length, writer);
            }
        }