acl/lib_acl_cpp/samples/connect_manager/mymonitor.h

38 lines
1.1 KiB
C++

#pragma once
class mymonitor : public acl::connect_monitor
{
public:
mymonitor(acl::connect_manager& manager, const acl::string& proto);
~mymonitor(void);
protected:
/**
* 基类 connect_monitor 虚函数,重载本函数用来进一步判断该连接是否是存活的
* @param checker {check_client&} 服务端连接的检查对象,可以通过
* check_client 类中的方法如下:
* 1) get_conn 获得非阻塞连接句柄
* 2) get_addr 获得服务端地址
* 3) set_alive 设置连接是否存活
* 4) close 关闭连接
*/
void nio_check(acl::check_client& checker,
acl::aio_socket_stream& conn);
/**
* 同步 IO 检测虚函数,该函数在线程池的某个子线程空间中运行,子类可以重载本函数
* 以检测实际应用的网络连接存活状态,可以在本函数内有阻塞 IO 过程
* @param checker {check_client&} 服务端连接的检查对象
* check_client 类中允许调用的方法如下:
* 1) get_addr 获得服务端地址
* 2) set_alive 设置连接是否存活
* check_client 类中禁止调用的方法如下:
* 1) get_conn 获得非阻塞连接句柄
* 2) close 关闭连接
*/
void sio_check(acl::check_client& checker, acl::socket_stream& conn);
private:
acl::string proto_;
};