acl  3.5.3.0
http_request_pool.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 #include "../connpool/connect_pool.hpp"
4 
5 namespace acl
6 {
7 
8 class sslbase_conf;
9 
10 /**
11  * http 客户端连接池类,该类父类为 connect_pool,该类只需实现父类中的虚函数
12  * create_connect 便拥有了连接池父类 connect_pool 的功能;另外,该类创建
13  * 的连接对象是 http_reuqest 对象,所以在调用 connect_pool::peek 时返回
14  * 的便是 http_request 类,调用者需要将 peek 返回的类对象强制转为 http_request
15  * 类对象,便可以使用 http_request 类折所有功能,其中 http_reuqest 类为
16  * connect_client 的子类
17  */
19 {
20 public:
21  /**
22  * 构造函数
23  * @param addr {const char*} 服务器监听地址,格式:ip:port(domain:port)
24  * @param count {size_t} 连接池最大连接个数限制,当该值为 0 时则没有限制
25  * @param idx {size_t} 该连接池对象在集合中的下标位置(从 0 开始)
26  */
27  http_request_pool(const char* addr, size_t count, size_t idx = 0);
29 
30  /**
31  * 调用本函数设置 SSL 的客户端模式
32  * @param ssl_conf {sslbase_conf*}
33  */
34  void set_ssl(sslbase_conf* ssl_conf);
35 
36 protected:
37  // 基类纯虚函数,该函数返回后由基类设置该连接池的网络连接及网络 IO 超时时间
38  virtual connect_client* create_connect();
39 
40 private:
41  sslbase_conf* ssl_conf_;
42 };
43 
45 {
46 public:
48  ~http_guard(void);
49 };
50 
51 } // namespace acl
#define ACL_CPP_API