/* */ #ifndef _D_SEND_MESSAGE_QUEUE_H_ #define _D_SEND_MESSAGE_QUEUE_H_ #include "common.h" #include "RequestSlotMan.h" class SendMessageQueue { private: int cuid; RequestSlotMan* requestSlotMan; PendingMessages pendingMessages; const Logger* logger; public: SendMessageQueue(int cuid, PeerConnection* peerConnection, TorrentMan* torrentMan); ~SendMessageQueue(); void send(); void addPendingMessage(const PendingMessage& pendingMessage); void deletePendingPieceMessage(const PeerMessage* cancelMessage); void deletePendingRequestMessage(); void deleteRequestSlot(const RequestSlot& requestSlot); void deleteTimeoutRequestSlot(Piece& piece); void deleteCompletedRequestSlot(const Piece& piece); RequestSlot getCorrespoindingRequestSlot(const PeerMessage* pieceMessage) const; void cancelAllRequest(); void cancelAllRequest(Piece& piece); int countPendingMessage() const; int countRequestSlot() const; }; #endif // _D_SEND_MESSAGE_QUEUE_H_