/* */ #ifndef D_DEFAULT_BT_MESSAGE_RECEIVER_H #define D_DEFAULT_BT_MESSAGE_RECEIVER_H #include "BtMessageReceiver.h" #include "Command.h" namespace aria2 { class DownloadContext; class Peer; class PeerConnection; class BtMessageDispatcher; class BtMessageFactory; class DefaultBtMessageReceiver : public BtMessageReceiver { private: bool handshakeSent_; DownloadContext* downloadContext_; PeerConnection* peerConnection_; BtMessageDispatcher* dispatcher_; BtMessageFactory* messageFactory_; void sendHandshake(); public: DefaultBtMessageReceiver(); virtual std::unique_ptr receiveHandshake(bool quickReply = false) CXX11_OVERRIDE; virtual std::unique_ptr receiveAndSendHandshake() CXX11_OVERRIDE; virtual std::unique_ptr receiveMessage() CXX11_OVERRIDE; void setDownloadContext(DownloadContext* downloadContext); void setPeerConnection(PeerConnection* peerConnection); void setDispatcher(BtMessageDispatcher* dispatcher); void setBtMessageFactory(BtMessageFactory* factory); }; } // namespace aria2 #endif // D_DEFAULT_BT_MESSAGE_RECEIVER_H