#pragma once #include "common.hpp" #include "utils/factory.hpp" POLYBAR_NS class http_downloader { public: http_downloader(int connection_timeout = 5); ~http_downloader(); string get(const string& url, const string& user = "", const string& password = ""); long response_code(); protected: static size_t write(void* p, size_t size, size_t bytes, void* stream); private: void* m_curl; }; namespace http_util { template decltype(auto) make_downloader(Args&&... args) { return std::make_unique(forward(args)...); } } // namespace http_util POLYBAR_NS_END