Skip to content

Commit 1cee9d5

Browse files
author
zhengshuxin
committed
Add functions for modify and get the current connections count for fiber server template.
1 parent 5e7b208 commit 1cee9d5

File tree

4 files changed

+44
-0
lines changed

4 files changed

+44
-0
lines changed

lib_fiber/cpp/include/fiber/master_fiber.hpp

+13
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,19 @@ class FIBER_CPP_API master_fiber : public master_base {
3434
*/
3535
const char* get_conf_path(void) const;
3636

37+
/**
38+
* 获得当前服务总连接数
39+
* @return {long long}
40+
*/
41+
long long users_count();
42+
43+
/**
44+
* 修改当前服务连接数
45+
* @param n {int} 增加或减少(可以为负数)的连接数值
46+
* @return {long long} 返回修改的连接数
47+
*/
48+
long long users_count_add(int n);
49+
3750
protected:
3851
master_fiber(void);
3952

lib_fiber/cpp/src/fiber_server.cpp

+18
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,24 @@ const char *acl_fiber_server_conf(void)
118118
return __conf_file;
119119
}
120120

121+
long long acl_fiber_server_users_count_add(int n)
122+
{
123+
if (__clock) {
124+
return acl_atomic_clock_users_add(__clock, n);
125+
} else {
126+
return 0;
127+
}
128+
}
129+
130+
long long acl_fiber_server_users_count()
131+
{
132+
if (__clock) {
133+
return acl_atomic_clock_users(__clock);
134+
} else {
135+
return 0;
136+
}
137+
}
138+
121139
static void fiber_client(ACL_FIBER *fiber acl_unused, void *ctx)
122140
{
123141
ACL_VSTREAM *cstream = (ACL_VSTREAM *) ctx;

lib_fiber/cpp/src/fiber_server.hpp

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#pragma once
22

33
const char *acl_fiber_server_conf(void);
4+
long long acl_fiber_server_users_count_add(int n);
5+
long long acl_fiber_server_users_count();
6+
47
void acl_fiber_server_main(int argc, char *argv[],
58
void (*service)(void*, ACL_VSTREAM*), void *ctx, int name, ...);

lib_fiber/cpp/src/master_fiber.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,14 @@ int master_fiber::service_on_sighup(void* ctx, ACL_VSTRING* buf)
155155
return ret ? 0 : -1;
156156
}
157157

158+
long long master_fiber::users_count()
159+
{
160+
return acl_fiber_server_users_count();
161+
}
162+
163+
long long master_fiber::users_count_add(int n)
164+
{
165+
return acl_fiber_server_users_count_add(n);
166+
}
167+
158168
} // namespace acl

0 commit comments

Comments
 (0)