/* */ #ifndef D_DHT_ENTRY_POINT_NAME_RESOVE_COMMAND_H #define D_DHT_ENTRY_POINT_NAME_RESOVE_COMMAND_H #include "Command.h" #include #include #include #include #include "SharedHandle.h" namespace aria2 { class DHTTaskQueue; class DHTTaskFactory; class DHTRoutingTable; class DHTNode; class DownloadEngine; #ifdef ENABLE_ASYNC_DNS class AsyncNameResolverMan; #endif // ENABLE_ASYNC_DNS class DHTEntryPointNameResolveCommand:public Command { private: DownloadEngine* e_; #ifdef ENABLE_ASYNC_DNS SharedHandle asyncNameResolverMan_; #endif // ENABLE_ASYNC_DNS SharedHandle taskQueue_; SharedHandle taskFactory_; SharedHandle routingTable_; SharedHandle localNode_; std::deque > entryPoints_; int numSuccess_; bool bootstrapEnabled_; void addPingTask(const std::pair& addr); #ifdef ENABLE_ASYNC_DNS int resolveHostname(std::vector& res, const std::string& hostname); #endif // ENABLE_ASYNC_DNS public: DHTEntryPointNameResolveCommand (cuid_t cuid, DownloadEngine* e, const std::vector >& entryPoints); virtual ~DHTEntryPointNameResolveCommand(); virtual bool execute(); void setBootstrapEnabled(bool f); void setTaskQueue(const SharedHandle& taskQueue); void setTaskFactory(const SharedHandle& taskFactory); void setRoutingTable(const SharedHandle& routingTable); void setLocalNode(const SharedHandle& localNode); }; } // namespace aria2 #endif // D_DHT_ENTRY_POINT_NAME_RESOVE_COMMAND_H