/* */ #ifndef D_DHT_INTERACTION_COMMAND_H #define D_DHT_INTERACTION_COMMAND_H #include "Command.h" #include namespace aria2 { class DHTMessageDispatcher; class DHTMessageReceiver; class DHTTaskQueue; class DownloadEngine; class SocketCore; class DHTConnection; class UDPTrackerClient; class DHTInteractionCommand : public Command { private: DownloadEngine* e_; DHTMessageDispatcher* dispatcher_; DHTMessageReceiver* receiver_; DHTTaskQueue* taskQueue_; std::shared_ptr readCheckSocket_; std::unique_ptr connection_; std::shared_ptr udpTrackerClient_; public: DHTInteractionCommand(cuid_t cuid, DownloadEngine* e); virtual ~DHTInteractionCommand(); virtual bool execute() CXX11_OVERRIDE; void setReadCheckSocket(const std::shared_ptr& socket); void disableReadCheckSocket(const std::shared_ptr& socket); void setMessageDispatcher(DHTMessageDispatcher* dispatcher); void setMessageReceiver(DHTMessageReceiver* receiver); void setTaskQueue(DHTTaskQueue* taskQueue); void setConnection(std::unique_ptr connection); void setUDPTrackerClient( const std::shared_ptr& udpTrackerClient); }; } // namespace aria2 #endif // D_DHT_INTERACTION_COMMAND_H