/* */ #ifndef D_BT_INTERACTIVE_H #define D_BT_INTERACTIVE_H #include "common.h" #include namespace aria2 { class BtHandshakeMessage; class BtInteractive { public: virtual ~BtInteractive() {} virtual void initiateHandshake() = 0; virtual std::unique_ptr receiveHandshake(bool quickReply = false) = 0; virtual std::unique_ptr 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; }; } // namespace aria2 #endif // D_BT_INTERACTIVE_H