acl  3.5.3.0
tcp_pool.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 #include "connect_pool.hpp"
4 
5 namespace acl
6 {
7 
8 class string;
9 class connect_client;
10 
12 {
13 public:
14  tcp_pool(const char* addr, size_t count, size_t idx = 0);
15  virtual ~tcp_pool(void);
16 
17  /**
18  * 向服务器发送指定长度的数据包,该方法会自动从连接池获取连接进行发送
19  * @param data {const void*} 要发送的数据包地址
20  * @param len {unsigned int} 数据长度
21  * @param out {string*} 当该对象非 NULL 时表明需要从服务器读取响应数据,
22  * 响应结果将被存放在该缓冲区中,如果该对象为 NULL,则表示无需读取
23  * 服务器的响应数据
24  * @return {bool} 发送是否成功
25  */
26  bool send(const void* data, unsigned int len, string* out = NULL);
27 
28 protected:
29  // @override
30  virtual connect_client* create_connect(void);
31 };
32 
33 } // namespace acl
#define ACL_CPP_API