Universal.Torrent.Client.PeerIO.MessageBodyReceived C# (CSharp) Method

MessageBodyReceived() private static method

private static MessageBodyReceived ( bool successful, int transferred, object state ) : void
successful bool
transferred int
state object
return void
        private static void MessageBodyReceived(bool successful, int transferred, object state)
        {
            var data = (ReceiveMessageState) state;
            if (!successful)
            {
                ClientEngine.BufferManager.FreeBuffer(data.Buffer);
                data.Callback(false, null, data.State);
                ReceiveCache.Enqueue(data);
                return;
            }

            data.Decryptor.Decrypt(data.Buffer, 4, transferred);
            var message = PeerMessage.DecodeMessage(data.Buffer, 0, transferred + 4, data.Manager);
            ClientEngine.BufferManager.FreeBuffer(data.Buffer);
            data.Callback(true, message, data.State);
            ReceiveCache.Enqueue(data);
        }
    }