OctoTorrent.Client.PeerId.Dequeue C# (CSharp) Method

Dequeue() private method

private Dequeue ( ) : PeerMessage
return PeerMessage
        internal PeerMessage Dequeue()
        {
            return sendQueue.Dequeue();
        }

Usage Example

Esempio n. 1
0
        /// <param name="id"> The peer whose message queue you want to start processing </param>
        internal void ProcessQueue(PeerId id)
        {
            if (id.QueueLength == 0)
            {
                id.ProcessingQueue = false;
                return;
            }

            var message      = id.Dequeue();
            var pieceMessage = message as PieceMessage;

            if (pieceMessage != null)
            {
                using (var handle = new ManualResetEvent(false))
                {
                    pieceMessage.Data = BufferManager.EmptyBuffer;
                    ClientEngine.BufferManager.GetBuffer(ref pieceMessage.Data, pieceMessage.ByteLength);
                    _engine.DiskManager.QueueRead(id.TorrentManager,
                                                  pieceMessage.StartOffset +
                                                  ((long)pieceMessage.PieceIndex * id.TorrentManager.Torrent.PieceLength), pieceMessage.Data,
                                                  pieceMessage.RequestLength, successful => handle.Set());
                    handle.WaitOne();
                    id.PiecesSent++;
                }
            }
            try
            {
                SendMessage(id, message, _messageSentCallback);
            }
            catch (Exception e)
            {
                CleanupSocket(id, "Exception calling SendMessage: " + e.Message);
            }
        }
All Usage Examples Of OctoTorrent.Client.PeerId::Dequeue