/* */ #ifndef _D_BT_INTERACTIVE_H_ #define _D_BT_INTERACTIVE_H_ #include "common.h" #include "SharedHandle.h" namespace aria2 { class BtMessage; class BtInteractive { public: virtual ~BtInteractive() {} virtual void initiateHandshake() = 0; virtual SharedHandle receiveHandshake(bool quickReply = false) = 0; virtual SharedHandle receiveAndSendHandshake() = 0; virtual void doPostHandshakeProcessing() = 0; virtual void doInteractionProcessing() = 0; virtual void cancelAllPiece() = 0; virtual void sendPendingMessage() = 0; virtual size_t countPendingMessage() = 0; virtual bool isSendingMessageInProgress() = 0; virtual size_t countReceivedMessageInIteration() const = 0; virtual size_t countOutstandingRequest() = 0; }; typedef SharedHandle BtInteractiveHandle; } // namespace aria2 #endif // _D_BT_INTERACTIVE_H_