public MemoryStreamData Encode(CommandPacket commandPacket)
        {
            MemoryStreamData memoryStreamDataInstance = ClientProtocolInstancesCache.GetMemoryStreamDataInstance();
            ProtocolBuffer   protocolBufferInstance   = ClientProtocolInstancesCache.GetProtocolBufferInstance();
            List <Command>   commands = commandPacket.Commands;
            int count = commands.Count;

            for (int i = 0; i < count; i++)
            {
                this.commandsCodec.Encode(protocolBufferInstance, commands[i]);
            }
            this.protocol.WrapPacket(protocolBufferInstance, memoryStreamDataInstance);
            ClientProtocolInstancesCache.ReleaseProtocolBufferInstance(protocolBufferInstance);
            return(memoryStreamDataInstance);
        }
        public bool TryDecode(out CommandPacket commandPacket)
        {
            commandPacket = null;
            if (this.partialReceivedData.Length == 0L)
            {
                return(false);
            }
            ProtocolBuffer protocolBufferInstance = ClientProtocolInstancesCache.GetProtocolBufferInstance();
            bool           flag = this.TryUnwrapPacket(protocolBufferInstance);

            if (flag)
            {
                this.KeepPartialReceivedData();
                commandPacket = this.DecodePacket(protocolBufferInstance);
            }
            ClientProtocolInstancesCache.ReleaseProtocolBufferInstance(protocolBufferInstance);
            return(flag);
        }
Beispiel #3
0
 public ProtocolBuffer NewProtocolBuffer() =>
 ClientProtocolInstancesCache.GetProtocolBufferInstance();