/* */ #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 Logger; class DefaultBtMessageReceiver : public BtMessageReceiver { private: bool handshakeSent_; SharedHandle downloadContext_; WeakHandle peerConnection_; WeakHandle dispatcher_; WeakHandle messageFactory_; void sendHandshake(); public: DefaultBtMessageReceiver(); virtual SharedHandle receiveHandshake (bool quickReply = false); virtual SharedHandle receiveAndSendHandshake(); virtual SharedHandle receiveMessage(); void setDownloadContext(const SharedHandle& downloadContext); void setPeerConnection(const WeakHandle& peerConnection); void setDispatcher(const WeakHandle& dispatcher); void setBtMessageFactory(const WeakHandle& factory); }; typedef SharedHandle DefaultBtMessageReceiverHandle; } // namespace aria2 #endif // _D_DEFAULT_BT_MESSAGE_RECEIVER_H_