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()); }
public GameResponse(byte[] bytes) { ProtoStream stream = new ProtoStream(bytes); CmdId = stream.ReadInt(); Sequence = stream.ReadInt(); Result = stream.ReadInt(); Body = stream.GetOverplus(); }
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); } }
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; } } } }
public override void Decode(ProtoStream stream) { base.Decode(stream); Id = stream.ReadInt(); }
public override void Encode(ProtoStream stream) { base.Encode(stream); stream.WriteInt(Id); }