f8/cpp/httpclientpool.h
aozhiwei 21332b63ad 1
2019-07-30 15:49:07 +08:00

39 lines
1.2 KiB
C++

#pragma once
namespace f8
{
typedef void (*AsyncHttpOnOkFunc)(a8::XParams& param, a8::XObject& data);
typedef void (*AsyncHttpOnErrorFunc)(a8::XParams& param, const std::string& response);
class HttpClientPoolImpl;
class HttpClientPool : public a8::Singleton<HttpClientPool>
{
private:
HttpClientPool() {};
friend class a8::Singleton<HttpClientPool>;
public:
volatile long long max_request_delay = 0;
public:
void Init(int thread_num);
void UnInit();
//执行异步http get
void HttpGet(a8::XParams param, AsyncHttpOnOkFunc on_ok, AsyncHttpOnErrorFunc on_error,
const char* url, a8::XObject url_params,
long long hash_code, a8::XObject* headers = nullptr);
//执行异步http post
void HttpPost(a8::XParams param, AsyncHttpOnOkFunc on_ok, AsyncHttpOnErrorFunc on_error,
const char* url, a8::XObject url_params, const std::string& content,
long long hash_code, a8::XObject* headers = nullptr);
//获取执行中的数量
long long GetPendingNum();
private:
HttpClientPoolImpl* impl_ = nullptr;
};
}