mirror of
https://gitee.com/acl-dev/acl.git
synced 2024-12-16 01:40:52 +08:00
929ebc13be
增加了 master_dispatch 服务模板,由其接收外来客户端连接,同时将连接平均分配给后端的服务子进程
30 lines
533 B
C++
30 lines
533 B
C++
#pragma once
|
|
|
|
// 纯虚类,用来处理来自于客户端及服务端的连接
|
|
class IConnection
|
|
{
|
|
public:
|
|
IConnection(acl::aio_socket_stream* conn) : conn_(conn) {}
|
|
virtual ~IConnection() {}
|
|
|
|
/**
|
|
* 纯虚函数,子类必须实现
|
|
*/
|
|
virtual void run() = 0;
|
|
|
|
/**
|
|
* 获得连接对象的 socket 描述符
|
|
* @return {int}
|
|
*/
|
|
int sock_handle() const;
|
|
|
|
/**
|
|
* 获得连接对象的地址
|
|
* @return {const char*}
|
|
*/
|
|
const char* get_peer(bool full = true) const;
|
|
|
|
protected:
|
|
acl::aio_socket_stream* conn_;
|
|
};
|