/* */ #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_; SharedHandle downloadContext_; PeerConnection* peerConnection_; BtMessageDispatcher* dispatcher_; BtMessageFactory* messageFactory_; void sendHandshake(); public: DefaultBtMessageReceiver(); virtual SharedHandle receiveHandshake (bool quickReply = false); virtual SharedHandle receiveAndSendHandshake(); virtual SharedHandle receiveMessage(); void setDownloadContext(const SharedHandle& downloadContext); void setPeerConnection(PeerConnection* peerConnection); void setDispatcher(BtMessageDispatcher* dispatcher); void setBtMessageFactory(BtMessageFactory* factory); }; typedef SharedHandle DefaultBtMessageReceiverHandle; } // namespace aria2 #endif // D_DEFAULT_BT_MESSAGE_RECEIVER_H