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

Enqueue() private method

private Enqueue ( PeerMessage msg ) : void
msg PeerMessage
return void
        internal void Enqueue(PeerMessage msg)
        {
            sendQueue.Add(msg);
            if (!processingQueue)
            {
                processingQueue = true;
                ConnectionManager.ProcessQueue(this);
            }
        }

Usage Example

Esempio n. 1
0
        /// <summary>
        ///   Checks the send queue of the peer to see if there are any outstanding pieces which they requested
        ///   and rejects them as necessary
        /// </summary>
        /// <param name="Peer"> </param>
        private void RejectPendingRequests(PeerId Peer)
        {
            var length = Peer.QueueLength;

            for (var i = 0; i < length; i++)
            {
                var message      = Peer.Dequeue();
                var pieceMessage = message as PieceMessage;
                if (pieceMessage == null)
                {
                    Peer.Enqueue(message);
                    continue;
                }

                // If the peer doesn't support fast peer, then we will never requeue the message
                if (!(Peer.SupportsFastPeer && ClientEngine.SupportsFastPeer))
                {
                    Peer.IsRequestingPiecesCount--;
                    continue;
                }

                // If the peer supports fast peer, queue the message if it is an AllowedFast piece
                // Otherwise send a reject message for the piece
                if (Peer.AmAllowedFastPieces.Contains(pieceMessage.PieceIndex))
                {
                    Peer.Enqueue(pieceMessage);
                }
                else
                {
                    Peer.IsRequestingPiecesCount--;
                    Peer.Enqueue(new RejectRequestMessage(pieceMessage));
                }
            }
        }
All Usage Examples Of OctoTorrent.Client.PeerId::Enqueue