acl
3.5.3.0
check_client.hpp
浏览该文件的文档.
1
#pragma once
2
#include "../acl_cpp_define.hpp"
3
#include <map>
4
#include <vector>
5
#if !defined(_WIN32) && !defined(_WIN64)
6
#include <sys/time.h>
7
#endif
8
#include "../stream/aio_socket_stream.hpp"
9
#include "../stdlib/string.hpp"
10
11
namespace
acl
12
{
13
14
class
check_timer;
15
class
aio_socket_stream;
16
17
/**
18
* 异步连接回调函数处理类
19
*/
20
class
ACL_CPP_API
check_client
:
public
aio_open_callback
21
{
22
public
:
23
check_client
(check_timer& timer,
const
char
* addr,
24
aio_socket_stream
& conn,
struct
timeval& begin);
25
26
/**
27
* 获得输入的非阻塞 IO 句柄
28
* @return {aio_socket_stream&}
29
*/
30
aio_socket_stream
&
get_conn
()
const
31
{
32
return
conn_;
33
}
34
35
/**
36
* 获得传入的服务端地址
37
* @return {const char*}
38
*/
39
const
char
*
get_addr
()
const
40
{
41
return
addr_.c_str();
42
}
43
44
/**
45
* 设置连接是否是存活的
46
* @param yesno {bool}
47
*/
48
void
set_alive(
bool
yesno);
49
50
/**
51
* 关闭非阻塞 IO 句柄
52
*/
53
void
close();
54
55
public
:
56
// 以下的函数仅供内部使用
57
/**
58
* 当前检测对象是否处于阻塞模式下
59
* @return {bool}
60
*/
61
bool
blocked
()
const
62
{
63
return
blocked_;
64
}
65
66
/**
67
* 在阻塞检测方式下,调用此函数用来设置检测对象是否处于阻塞状态,
68
* 处于阻塞状态时该检测对象是禁止通过调用方法 close 来关闭的
69
* @param on {bool} 设置检测对象是否处于阻塞状态,缺省为处于阻塞状态
70
*/
71
void
set_blocked(
bool
on);
72
73
private
:
74
// 基类虚函数
75
bool
open_callback();
76
void
close_callback();
77
bool
timeout_callback();
78
79
private
:
80
~
check_client
() {}
81
82
private
:
83
bool
blocked_;
84
bool
aliving_;
85
bool
timedout_;
86
struct
timeval begin_;
87
check_timer& timer_;
88
aio_socket_stream& conn_;
89
string
addr_;
90
};
91
92
}
// namespace acl
acl::check_client::blocked
bool blocked() const
Definition:
check_client.hpp:61
acl
Definition:
acl_cpp_init.hpp:4
acl::check_client::get_addr
const char * get_addr() const
Definition:
check_client.hpp:39
acl::check_client::get_conn
aio_socket_stream & get_conn() const
Definition:
check_client.hpp:30
acl::check_client
Definition:
check_client.hpp:20
acl::aio_open_callback
Definition:
aio_socket_stream.hpp:16
acl::aio_socket_stream
Definition:
aio_socket_stream.hpp:40
ACL_CPP_API
#define ACL_CPP_API
Definition:
acl_cpp_define.hpp:16
include
acl_cpp
connpool
check_client.hpp
生成于 2021年 九月 10日 星期五 11:14:44 , 为 acl使用
1.8.15