Example #1
0
        private void BuildPacket(BigEndianWriter writer)
        {
            byte[] data = writer.Data;

            writer.Clear();

            int messageLenghtType = ComputeTypeLen(data.Length);
            short header = ComputeStaticHeader((int) MessageId, messageLenghtType);

            writer.WriteShort(header);

            switch (messageLenghtType)
            {
                case 1:
                    writer.WriteByte((byte) data.Length);
                    break;
                case 2:
                    writer.WriteShort((short) data.Length);
                    break;
                case 3:
                    writer.WriteByte((byte) (data.Length >> 16 & 255));
                    writer.WriteShort((short) (data.Length & 65535));
                    break;
            }

            writer.WriteBytes(data);
        }