示例#1
0
        public byte[] Encode()
        {
            ProtoStream stream = new ProtoStream();

            stream.Put(MESSAGE_FLAG);
            stream.Position = 3;

            // stream.Write(1, CmdId);
            //  stream.Write(2, Sequence);

            stream.WriteInt(CmdId);
            stream.WriteInt(Sequence);

            if (Body != null)
            {
                Body.Encode(stream);
            }

            int len = stream.Position;

            stream.Put((byte)((len >> 8) & 0xff), 1);
            stream.Put((byte)(len & 0xff), 2);

            return(stream.ToArray());
        }
示例#2
0
        public GameResponse(byte[] bytes)
        {
            ProtoStream stream = new ProtoStream(bytes);

            CmdId    = stream.ReadInt();
            Sequence = stream.ReadInt();
            Result   = stream.ReadInt();

            Body = stream.GetOverplus();
        }
示例#3
0
        public override void Encode(ProtoStream buffer)
        {
            base.Encode(buffer);

            int fieldCount = 0;
            int pos        = buffer.Position;

            buffer.WriteFixedShort(0);

            fieldCount += buffer.Write(1, sesskey);
            fieldCount += buffer.Write(2, terminalType);
            fieldCount += buffer.Write(3, uid);

            if (fieldCount > 0)
            {
                buffer.WriteFixedShort(fieldCount, pos);
            }
        }
示例#4
0
        public override void Decode(ProtoStream stream)
        {
            base.Decode(stream);

            int tagAndType = 0;
            int fieldCount = stream.ReadFixedShort();

            while (fieldCount-- > 0)
            {
                tagAndType = stream.ReadInt();

                switch ((tagAndType >> ProtoDefine.TAG_TYPE_BITS))
                {
                case 1: {
                    sesskey = stream.ReadString();
                    break;
                }

                case 2: {
                    terminalType = stream.ReadInt();
                    break;
                }

                case 3:
                {
                    uid = stream.ReadInt();
                    break;
                }

                default: {
                    stream.ReadUnknow(tagAndType);
                    break;
                }
                }
            }
        }
示例#5
0
 public override void Decode(ProtoStream stream)
 {
     base.Decode(stream);
     Id = stream.ReadInt();
 }
示例#6
0
 public override void Encode(ProtoStream stream)
 {
     base.Encode(stream);
     stream.WriteInt(Id);
 }