acl  3.5.3.0
acl::http_server_impl类 参考

#include <http_server_impl.hpp>

+ 类 acl::http_server_impl 继承关系图:
+ acl::http_server_impl 的协作图:

Public 成员函数

 http_server_impl (const char *addr, bool use_redis)
 
virtual ~http_server_impl (void)
 
- Public 成员函数 继承自 acl::master_fiber
void run_daemon (int argc, char **argv)
 
bool run_alone (const char *addrs, const char *path=NULL)
 
const char * get_conf_path (void) const
 
- Public 成员函数 继承自 acl::master_base
master_baseset_cfg_bool (master_bool_tbl *table)
 
master_baseset_cfg_int (master_int_tbl *table)
 
master_baseset_cfg_int64 (master_int64_tbl *table)
 
master_baseset_cfg_str (master_str_tbl *table)
 
bool daemon_mode (void) const
 
bool proc_set_timer (event_timer *timer)
 
void proc_del_timer (event_timer *timer)
 

Protected 成员函数

void Service (int type, const char *path, http_handler_t fn)
 
void on_accept (socket_stream &conn)
 
void proc_pre_jail (void)
 
void proc_on_init (void)
 
void proc_on_exit (void)
 
bool proc_on_sighup (acl::string &s)
 
void thread_on_init (void)
 
- Protected 成员函数 继承自 acl::master_fiber
 master_fiber ()
 
virtual ~master_fiber ()
 
- Protected 成员函数 继承自 acl::master_base
 master_base ()
 
virtual ~master_base ()
 
virtual void proc_on_listen (server_socket &ss)
 
void set_event (ACL_EVENT *event)
 
ACL_EVENTget_event (void) const
 
- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 

Protected 属性

redis_client_clusterredis_ = nullptr
 
proc_jail_t proc_jail_ = nullptr
 
proc_init_t proc_init_ = nullptr
 
proc_exit_t proc_exit_ = nullptr
 
proc_sighup_t proc_sighup_ = nullptr
 
thread_init_t thread_init_ = nullptr
 
thread_accept_t thread_accept_ = nullptr
 
http_handlers_t handlers_ [http_handler_max]
 
- Protected 属性 继承自 acl::master_base
bool daemon_mode_
 
bool proc_inited_
 
std::vector< server_socket * > servers_
 
master_conf conf_
 

详细描述

在文件 http_server_impl.hpp16 行定义.

构造及析构函数说明

◆ http_server_impl()

acl::http_server_impl::http_server_impl ( const char *  addr,
bool  use_redis 
)
inline

在文件 http_server_impl.hpp18 行定义.

18  {
19  if (use_redis) {
20  redis_ = new redis_client_cluster;
21  redis_->init(NULL, addr, 0, 10, 10);
22  redis_->bind_thread(true);
23  }
24  }
redis_client_cluster * redis_
void bind_thread(bool yes)
void init(const char *default_addr, const char *addr_list, size_t count, int conn_timeout=30, int rw_timeout=30)

引用了 acl::connect_manager::bind_thread(), acl::connect_manager::init() , 以及 redis_.

+ 函数调用图:

◆ ~http_server_impl()

virtual acl::http_server_impl::~http_server_impl ( void  )
inlinevirtual

在文件 http_server_impl.hpp26 行定义.

26 {}

成员函数说明

◆ on_accept()

void acl::http_server_impl::on_accept ( socket_stream conn)
inlineprotectedvirtual

实现了 acl::master_fiber.

在文件 http_server_impl.hpp56 行定义.

56  {
57  if (thread_accept_ && !thread_accept_(conn)) {
58  return;
59  }
60 
61  acl::session* session;
62  if (redis_) {
63  session = new redis_session(*redis_, 0);
64  } else {
65  session = new memcache_session("127.0.0.1|11211");
66  }
67 
68  http_servlet servlet(handlers_, &conn, session);
69  servlet.setLocalCharset("utf-8");
70 
71  while (servlet.doRun()) {}
72 
73  delete session;
74  }
http_handlers_t handlers_[http_handler_max]
redis_client_cluster * redis_
thread_accept_t thread_accept_

引用了 acl::HttpServlet::doRun(), handlers_, redis_, acl::HttpServlet::setLocalCharset() , 以及 thread_accept_.

+ 函数调用图:

◆ proc_on_exit()

void acl::http_server_impl::proc_on_exit ( void  )
inlineprotectedvirtual

重载 acl::master_base .

在文件 http_server_impl.hpp91 行定义.

91  {
92  if (proc_exit_) {
93  proc_exit_();
94  }
95  }

引用了 proc_exit_.

◆ proc_on_init()

void acl::http_server_impl::proc_on_init ( void  )
inlineprotectedvirtual

重载 acl::master_base .

在文件 http_server_impl.hpp84 行定义.

84  {
85  if (proc_init_) {
86  proc_init_();
87  }
88  }

引用了 proc_init_.

◆ proc_on_sighup()

bool acl::http_server_impl::proc_on_sighup ( acl::string s)
inlineprotectedvirtual

重载 acl::master_base .

在文件 http_server_impl.hpp98 行定义.

98  {
99  if (proc_sighup_) {
100  return proc_sighup_(s);
101  }
102  return true;
103  }

引用了 proc_sighup_.

◆ proc_pre_jail()

void acl::http_server_impl::proc_pre_jail ( void  )
inlineprotectedvirtual

重载 acl::master_base .

在文件 http_server_impl.hpp77 行定义.

77  {
78  if (proc_jail_) {
79  proc_jail_();
80  }
81  }

引用了 proc_jail_.

◆ Service()

void acl::http_server_impl::Service ( int  type,
const char *  path,
http_handler_t  fn 
)
inlineprotected

在文件 http_server_impl.hpp29 行定义.

29  {
30  if (type >= http_handler_get && type < http_handler_max
31  && path && *path) {
32 
33  // The path should lookup like as "/xxx/" with
34  // lower charactors.
35 
36  acl::string buf(path);
37  if (buf[buf.size() - 1] != '/') {
38  buf += '/';
39  }
40  buf.lower();
41  handlers_[type][buf] = std::move(fn);
42  }
43  }
http_handlers_t handlers_[http_handler_max]

引用了 handlers_, acl::http_handler_get, acl::http_handler_max, acl::string::lower() , 以及 acl::string::size().

被这些函数引用 acl::http_server::Connect(), acl::http_server::Delete(), acl::http_server::Error(), acl::http_server::Get(), acl::http_server::Head(), acl::http_server::Options(), acl::http_server::Patch(), acl::http_server::Post(), acl::http_server::Propfind(), acl::http_server::Purge(), acl::http_server::Put(), acl::http_server::Unknown() , 以及 acl::http_server::Websocket().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ thread_on_init()

void acl::http_server_impl::thread_on_init ( void  )
inlineprotectedvirtual

重载 acl::master_fiber .

在文件 http_server_impl.hpp106 行定义.

106  {
107  if (thread_init_) {
108  thread_init_();
109  }
110  }

引用了 thread_init_.

类成员变量说明

◆ handlers_

http_handlers_t acl::http_server_impl::handlers_[http_handler_max]
protected

在文件 http_server_impl.hpp53 行定义.

被这些函数引用 on_accept() , 以及 Service().

◆ proc_exit_

proc_exit_t acl::http_server_impl::proc_exit_ = nullptr
protected

在文件 http_server_impl.hpp49 行定义.

被这些函数引用 acl::http_server::on_proc_exit() , 以及 proc_on_exit().

◆ proc_init_

proc_init_t acl::http_server_impl::proc_init_ = nullptr
protected

在文件 http_server_impl.hpp48 行定义.

被这些函数引用 acl::http_server::on_proc_init() , 以及 proc_on_init().

◆ proc_jail_

proc_jail_t acl::http_server_impl::proc_jail_ = nullptr
protected

在文件 http_server_impl.hpp47 行定义.

被这些函数引用 acl::http_server::before_proc_jail() , 以及 proc_pre_jail().

◆ proc_sighup_

proc_sighup_t acl::http_server_impl::proc_sighup_ = nullptr
protected

在文件 http_server_impl.hpp50 行定义.

被这些函数引用 acl::http_server::on_proc_sighup() , 以及 proc_on_sighup().

◆ redis_

redis_client_cluster* acl::http_server_impl::redis_ = nullptr
protected

在文件 http_server_impl.hpp46 行定义.

被这些函数引用 http_server_impl() , 以及 on_accept().

◆ thread_accept_

thread_accept_t acl::http_server_impl::thread_accept_ = nullptr
protected

在文件 http_server_impl.hpp52 行定义.

被这些函数引用 on_accept() , 以及 acl::http_server::on_thread_accept().

◆ thread_init_

thread_init_t acl::http_server_impl::thread_init_ = nullptr
protected

在文件 http_server_impl.hpp51 行定义.

被这些函数引用 acl::http_server::on_thread_init() , 以及 thread_on_init().


该类的文档由以下文件生成: