Emx::EuvPipe类 参考

以pipe为底层通信基础实现接口类EuvStreamInf,pipe的底层使用STREAM+AF_UNIX的方式进行通信。

#include "EuvPipe.hpp"

类 Emx::EuvPipe 继承关系图:
Emx::EuvPipe 的协作图:

Public 成员函数

 EuvPipe ()
 
virtual ~EuvPipe ()
 
ErrCodeE Create (EuvLoop &loop) override
 创建并初始化Pipe 更多...
 
void Destroy () override
 销毁Pipe 更多...
 
ErrCodeE Bind (const char *ip, uint16_t port) override
 绑定此Pipe到指定的本地地址 更多...
 
ErrCodeE Connect (uv_connect_t *req, const char *serverIp, uint16_t serverPort, uv_connect_cb cb) override
 连接到服务端 更多...
 
ErrCodeE GetSockName (void *name, size_t &len) override
 获取本地AF_UNIX地址 更多...
 
ErrCodeE GetPeerName (void *name, size_t &len) override
 获取对端AF_UNIX地址 更多...
 
uv_stream_t * GetStm () override
 获取libuv的stream句柄 更多...
 
int32_t GetFd () override
 获取文件描述符fd 更多...
 
bool IsReceiving () override
 获取当前描述符是否监听接收 更多...
 
- Public 成员函数 继承自 Emx::EuvStreamInf
virtual ErrCodeE Open (int fd)
 打开一个已经存在的fd 更多...
 

构造及析构函数说明

◆ EuvPipe()

Emx::EuvPipe::EuvPipe ( )
inline

◆ ~EuvPipe()

virtual Emx::EuvPipe::~EuvPipe ( )
inlinevirtual

成员函数说明

◆ Create()

ErrCodeE Emx::EuvPipe::Create ( EuvLoop loop)
overridevirtual
参数
loop[in] 需要绑定的loop
返回
ErrCodeE

实现了 Emx::EuvStreamInf.

◆ Destroy()

void Emx::EuvPipe::Destroy ( )
inlineoverridevirtual

实现了 Emx::EuvStreamInf.

◆ Bind()

ErrCodeE Emx::EuvPipe::Bind ( const char *  ip,
uint16_t  port 
)
overridevirtual
参数
ip[in] 这里的参数应填写AF_UNIX格式的地址,例如/tmp/domain/msg/send_pipe
port此参数无效,不会使用
返回
ErrCodeE

重载 Emx::EuvStreamInf .

◆ Connect()

ErrCodeE Emx::EuvPipe::Connect ( uv_connect_t *  req,
const char *  serverIp,
uint16_t  serverPort,
uv_connect_cb  cb 
)
overridevirtual
参数
req[in] 用于连接的libuv请求结构体
serverIp[in] 目的AF_UNIX地址
serverPort[in] 无效,不会使用
cb[in] 注册一个连接成功或失败后的回调
返回
ErrCodeE

重载 Emx::EuvStreamInf .

◆ GetSockName()

ErrCodeE Emx::EuvPipe::GetSockName ( void *  name,
size_t &  len 
)
overridevirtual
参数
name[out] 存储地址的buffer
len[in,out] 存储地址的buffer最大大小,返回实际地址长度
返回
ErrCodeE

实现了 Emx::EuvStreamInf.

◆ GetPeerName()

ErrCodeE Emx::EuvPipe::GetPeerName ( void *  name,
size_t &  len 
)
overridevirtual
参数
name[out] 存储地址的buffer
len[in,out] 存储地址的buffer最大大小,返回实际地址长度
返回
ErrCodeE

实现了 Emx::EuvStreamInf.

◆ GetStm()

uv_stream_t* Emx::EuvPipe::GetStm ( )
inlineoverridevirtual
返回
libuv的stream句柄

实现了 Emx::EuvStreamInf.

◆ GetFd()

int32_t Emx::EuvPipe::GetFd ( )
inlineoverridevirtual
返回
fd

实现了 Emx::EuvStreamInf.

◆ IsReceiving()

bool Emx::EuvPipe::IsReceiving ( )
inlineoverridevirtual
返回
bool

实现了 Emx::EuvStreamInf.