acl
3.5.3.0
ipc_server.hpp
浏览该文件的文档.
1
#pragma once
2
#include "../acl_cpp_define.hpp"
3
#include "../stream/aio_listen_stream.hpp"
4
5
namespace
acl
{
6
7
class
aio_handle;
8
class
aio_listen_stream;
9
10
/**
11
* 异步消息服务端,纯虚类
12
*/
13
class
ACL_CPP_API
ipc_server
:
private
aio_accept_callback
14
{
15
public
:
16
ipc_server
();
17
18
virtual
~
ipc_server
();
19
20
/**
21
* 打开异步监听服务流
22
* @param handle {aio_handle*} 异步引擎句柄,非空
23
* @param addr {const char*} 监听地址
24
* @return {bool} 监听是否成功
25
*/
26
bool
open(
aio_handle
* handle,
const
char
* addr =
"127.0.0.1:0"
);
27
28
/**
29
* 当 open 成功后通过此函数获得监听地址
30
* @return {const char*} 监听地址,格式为: IP:PORT
31
*/
32
const
char
* get_addr()
const
;
33
34
/**
35
* 获得异步流句柄
36
* @return {aio_listen_stream*}
37
*/
38
aio_listen_stream
* get_stream()
const
;
39
40
/**
41
* 获得异步引擎句柄
42
*/
43
aio_handle
& get_handle()
const
;
44
45
protected
:
46
/**
47
* 当监听流成功打开后的回调函数
48
* @param addr {const char*} 实际的监听地址,格式:IP:PORT
49
*/
50
virtual
void
on_open
(
const
char
*addr)
51
{
52
(void) addr;
53
}
54
55
/**
56
* 当监听流关闭时的回调函数
57
*/
58
virtual
void
on_close
() {}
59
60
/**
61
* 当异步监听流获得一个客户端连接后的回调函数
62
* @param client {aio_socket_stream*} 客户端 IPC 流
63
*/
64
virtual
void
on_accept
(
aio_socket_stream
* client)
65
{
66
(void) client;
67
}
68
69
#if defined(_WIN32) || defined(_WIN64)
70
/**
71
* 对于基于 _WIN32 窗口消息的情况,当调用 open 时,则内部
72
* 会自动调用 create_windows 过程
73
*/
74
virtual
bool
create_window()
75
{
76
return
false
;
77
}
78
#endif
79
80
private
:
81
aio_handle* handle_;
82
aio_listen_stream* sstream_;
83
84
/**
85
* 基类虚函数,当有新连接到达后调用此回调过程
86
* @param client {aio_socket_stream*} 异步客户端流
87
* @return {bool} 返回 true 以通知监听流继续监听
88
*/
89
virtual
bool
accept_callback(aio_socket_stream* client);
90
91
/**
92
* 基类虚函数,当监听流关闭时的回调过程
93
*/
94
virtual
void
close_callback();
95
96
/**
97
* 基类虚函数,当监听流超时的回调过程
98
*/
99
virtual
bool
timeout_callback();
100
};
101
102
}
// namespace acl
acl::ipc_server::on_accept
virtual void on_accept(aio_socket_stream *client)
Definition:
ipc_server.hpp:64
acl
Definition:
acl_cpp_init.hpp:4
acl::ipc_server::on_open
virtual void on_open(const char *addr)
Definition:
ipc_server.hpp:50
acl::ipc_server
Definition:
ipc_server.hpp:13
acl::ipc_server::on_close
virtual void on_close()
Definition:
ipc_server.hpp:58
acl::aio_accept_callback
Definition:
aio_listen_stream.hpp:15
acl::aio_handle
Definition:
aio_handle.hpp:29
acl::aio_listen_stream
Definition:
aio_listen_stream.hpp:52
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
ipc
ipc_server.hpp
生成于 2021年 九月 10日 星期五 11:14:44 , 为 acl使用
1.8.15