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

EnqueueSendMessage() public static method

public static EnqueueSendMessage ( IConnection connection, IEncryption encryptor, PeerMessage message, IRateLimiter rateLimiter, ConnectionMonitor peerMonitor, ConnectionMonitor managerMonitor, AsyncIOCallback callback, object state ) : void
connection IConnection
encryptor IEncryption
message Universal.Torrent.Client.Messages.PeerMessage
rateLimiter IRateLimiter
peerMonitor Universal.Torrent.Client.Managers.ConnectionMonitor
managerMonitor Universal.Torrent.Client.Managers.ConnectionMonitor
callback AsyncIOCallback
state object
return void
        public static void EnqueueSendMessage(IConnection connection, IEncryption encryptor, PeerMessage message,
            IRateLimiter rateLimiter, ConnectionMonitor peerMonitor, ConnectionMonitor managerMonitor,
            AsyncIOCallback callback, object state)
        {
            var count = message.ByteLength;
            var buffer = ClientEngine.BufferManager.GetBuffer(count);
            message.Encode(buffer, 0);
            encryptor.Encrypt(buffer, 0, count);

            var data = SendCache.Dequeue().Initialise(buffer, callback, state);
            NetworkIO.EnqueueSend(connection, buffer, 0, count, rateLimiter, peerMonitor, managerMonitor,
                EndSendCallback, data);
        }