#ifndef KIWIXLIB_ARIA2_H_ #define KIWIXLIB_ARIA2_H_ #ifdef _WIN32 // winsock2.h need to be included before windows.h (included by curl.h) # include #endif #include "subprocess.h" #include "xmlrpc.h" #include #include namespace kiwix { class Aria2 { private: std::unique_ptr mp_aria; int m_port; std::string m_secret; std::string m_downloadDir; std::string doRequest(const MethodCall& methodCall); public: Aria2(); virtual ~Aria2() = default; void close(); std::string addUri(const std::vector& uri, const std::vector>& options = {}); std::string tellStatus(const std::string& gid, const std::vector& statusKey); static std::string getNewRpcSecret(); std::vector tellActive(); std::vector tellWaiting(); void saveSession(); void shutdown(); void pause(const std::string& gid); void unpause(const std::string& gid); void remove(const std::string& gid); }; }; //end namespace kiwix #endif // KIWIXLIB_ARIA2_H_