public void Serialize(IByteWriter writer)
        {
            var size = OnSerializingSize();

#if DEBUG
            if (size > ushort.MaxValue)
            {
                throw new ArgumentException("Size can not be higher than max ushort!");
            }
#endif

            {
                var a = (byte)(size >> 8);
                var b = (byte)size;

                writer.WriteNext(a);
                writer.WriteNext(b);
            }

            for (var i = 0; i < size; i++)
            {
                var b = OnSerializingByte(i);

                writer.WriteNext(b);
            }
        }
예제 #2
0
        public static unsafe void WriteUInt16(this IByteWriter writer, ushort s)
        {
            var pointer   = &s;
            var ltBytePnt = (byte *)pointer;

            writer.WriteNext(ltBytePnt[0]);
            writer.WriteNext(ltBytePnt[1]);
        }
예제 #3
0
        public static unsafe void WriteFloat(this IByteWriter writer, float f)
        {
            var pointer   = &f;
            var ltBytePnt = (byte *)pointer;

            writer.WriteNext(ltBytePnt[0]);
            writer.WriteNext(ltBytePnt[1]);
            writer.WriteNext(ltBytePnt[2]);
            writer.WriteNext(ltBytePnt[3]);
        }
예제 #4
0
        public static unsafe void WriteUInt32(this IByteWriter writer, uint i)
        {
            var pointer   = &i;
            var ltBytePnt = (byte *)pointer;

            writer.WriteNext(ltBytePnt[0]);
            writer.WriteNext(ltBytePnt[1]);
            writer.WriteNext(ltBytePnt[2]);
            writer.WriteNext(ltBytePnt[3]);
        }
예제 #5
0
 public void Serialize(IByteWriter writer)
 {
     writer.WriteNext(theByte);
 }