/* */ #ifndef D_NAME_RESOLVE_COMMAND_H #define D_NAME_RESOLVE_COMMAND_H #include "Command.h" #include #include #include "SharedHandle.h" // TODO Make this class generic. namespace aria2 { class DownloadEngine; #ifdef ENABLE_ASYNC_DNS class AsyncNameResolverMan; #endif // ENABLE_ASYNC_DNS struct UDPTrackerRequest; class NameResolveCommand:public Command { private: DownloadEngine* e_; #ifdef ENABLE_ASYNC_DNS SharedHandle asyncNameResolverMan_; #endif // ENABLE_ASYNC_DNS #ifdef ENABLE_ASYNC_DNS int resolveHostname(std::vector& res, const std::string& hostname); #endif // ENABLE_ASYNC_DNS SharedHandle req_; void onShutdown(); void onFailure(); void onSuccess (const std::vector& addrs, DownloadEngine* e); public: NameResolveCommand(cuid_t cuid, DownloadEngine* e, const SharedHandle& req); virtual ~NameResolveCommand(); virtual bool execute(); }; } // namespace aria2 #endif // D_NAME_RESOVE_COMMAND_H