Universal.Torrent.Client.NetworkIO.SendOrEnqueue C# (CSharp) Method

SendOrEnqueue() private static method

private static SendOrEnqueue ( AsyncIOState data ) : void
data AsyncIOState
return void
        private static async void SendOrEnqueue(AsyncIOState data)
        {
            var count = Math.Min(ChunkLength, data.Remaining);
            if (data.RateLimiter == null || data.RateLimiter.TryProcess(1))
            {
                try
                {
                    data.Transferred = await data.Connection.SendAsync(data.Buffer, data.Offset, count);
                    FinishSend(data);
                }
                catch
                {
                    data.Callback(false, 0, data.State);
                    TransferCache.Enqueue(data);
                }
            }
            else
            {
                SendQueue.Enqueue(data);
            }
        }
    }