Ejemplo n.º 1
0
        public static uint UnpackDirect(Packer packer)
        {
            var size = packer.ReadByte();
            var res  = new Int32Bytes()
            {
                b1 = (size >= 1 ? packer.ReadByte() : byte.MinValue),
                b2 = (size >= 2 ? packer.ReadByte() : byte.MinValue),
                b3 = (size >= 3 ? packer.ReadByte() : byte.MinValue),
                b4 = (size >= 4 ? packer.ReadByte() : byte.MinValue)
            };

            return(res.value);
        }
Ejemplo n.º 2
0
        public static void PackDirect(Packer packer, uint value)
        {
            var b = new Int32Bytes()
            {
                value = value
            };
            byte size = 4;

            if (b.b4 == 0)
            {
                --size;
            }
            if (b.b4 == 0 && b.b3 == 0)
            {
                --size;
            }
            if (b.b4 == 0 && b.b3 == 0 && b.b2 == 0)
            {
                --size;
            }
            if (b.b4 == 0 && b.b3 == 0 && b.b2 == 0 && b.b1 == 0)
            {
                --size;
            }
            packer.WriteByte(size);
            if (size >= 1)
            {
                packer.WriteByte(b.b1);
            }
            if (size >= 2)
            {
                packer.WriteByte(b.b2);
            }
            if (size >= 3)
            {
                packer.WriteByte(b.b3);
            }
            if (size >= 4)
            {
                packer.WriteByte(b.b4);
            }
        }