#ifndef LLMR_LINUX_REQUEST #define LLMR_LINUX_REQUEST #include #include #include namespace llmr { namespace platform { struct Response; class Request { public: Request(std::string url, std::function bg, std::function fg); static void request(void *); static size_t write_callback(void *, size_t, size_t, void *); static int progress_callback(void *, double, double, double, double); void cancel(); public: std::atomic done; std::atomic cancelled; const std::string url; const std::function background_function; const std::function foreground_callback; }; } } #endif