Emx::EuvStmClientBase类 参考abstract

面向连接的socket通信Client端基类,实现了这种类型客户端的创建销毁发送接收, 内部使用EuvStreamInf抽象接口作为底层通信接口,实际实现客户端的时候,需要传入继承EuvStreamInf的实例 并且最终的客户端需要继承EuvStmClientBase类,实现其各种虚函数。可参MsgRpcRep的实现 更多...

#include "EuvStmClientBase.hpp"

类 Emx::EuvStmClientBase 继承关系图:

Public 成员函数

 EuvStmClientBase (EuvStreamInf *stm)
 
virtual ~EuvStmClientBase ()
 
ErrCodeE Create (EuvLoop &loop, char *buffer, int32_t size, const char *serverIp, uint16_t serverPort, const char *localIp=nullptr, uint16_t localPort=0)
 创建客户端并连接服务端 更多...
 
void Destroy ()
 断开链接并销毁客户端 更多...
 
ErrCodeE Send (std::shared_ptr< std::string > &data)
 向服务端发送数据 更多...
 
void PauseRecv ()
 停止接收,调用后将不会收到数据 更多...
 
ErrCodeE ResumeRecv ()
 开始接收数据/重新开始接收数据 更多...
 
bool IsReceiving ()
 获取当前客户端是否正在监听接收 更多...
 
std::string GetSockName ()
 获取本地地址 更多...
 
std::string GetPeerName ()
 获取对方地址 更多...
 

Protected 成员函数

virtual void OnConnect ()=0
 当与服务端的链接建立成功后触发此函数的调用 更多...
 
virtual void OnDisConnect ()=0
 当与服务端的链接断开后触发此函数的调用 更多...
 
virtual void OnRecv (const char *data, int32_t size)
 当有数据到来时触发此函数的调用 更多...
 
virtual void OnSendDone (ErrCodeE e, const char *buffer, int32_t size)
 当调用Send函数发送的数据成功发送至服务端,或出现错误时触发次回调 更多...
 

详细描述

参见
MsgRpcRep

构造及析构函数说明

◆ EuvStmClientBase()

Emx::EuvStmClientBase::EuvStmClientBase ( EuvStreamInf stm)
inline

◆ ~EuvStmClientBase()

virtual Emx::EuvStmClientBase::~EuvStmClientBase ( )
inlinevirtual

成员函数说明

◆ Create()

ErrCodeE Emx::EuvStmClientBase::Create ( EuvLoop loop,
char *  buffer,
int32_t  size,
const char *  serverIp,
uint16_t  serverPort,
const char *  localIp = nullptr,
uint16_t  localPort = 0 
)
参数
loop[in] 需要绑定的loop
buffer[in] 需要传入一个buffer,用于接收数据
size[in] buffer的大小
serverIp[in] 需要连接的服务端ip
serverPort[in] 需要连接的服务端端口
localIp[in] 需要绑定的本地ip,默认不绑定本地ip
localPort[in] 需要绑定的本地端口,默认不绑定本地端口
返回
ErrCodeE
参见
ErrCodeE

◆ Destroy()

◆ Send()

ErrCodeE Emx::EuvStmClientBase::Send ( std::shared_ptr< std::string > &  data)
参数
data[in] 发送的数据,采用共享指针的方式,方便内存空间的回收
返回
ErrCodeE

◆ PauseRecv()

void Emx::EuvStmClientBase::PauseRecv ( )

◆ ResumeRecv()

ErrCodeE Emx::EuvStmClientBase::ResumeRecv ( )

◆ IsReceiving()

bool Emx::EuvStmClientBase::IsReceiving ( )
inline

◆ GetSockName()

std::string Emx::EuvStmClientBase::GetSockName ( )
inline
返回
存储本地地址的string

◆ GetPeerName()

std::string Emx::EuvStmClientBase::GetPeerName ( )
inline
返回
存储对方地址的string

◆ OnConnect()

virtual void Emx::EuvStmClientBase::OnConnect ( )
protectedpure virtual

◆ OnDisConnect()

virtual void Emx::EuvStmClientBase::OnDisConnect ( )
protectedpure virtual

◆ OnRecv()

virtual void Emx::EuvStmClientBase::OnRecv ( const char *  data,
int32_t  size 
)
inlineprotectedvirtual
参数
data[in] 到来的数据
size[in] 到来的数据大小

Emx::MsgTopicSubscriberAsync, Emx::MsgRpcRep , 以及 Emx::MsgRpcReqAsync 重载.

◆ OnSendDone()

virtual void Emx::EuvStmClientBase::OnSendDone ( ErrCodeE  e,
const char *  buffer,
int32_t  size 
)
inlineprotectedvirtual
参数
e[in] 发送是否成功
buffer[in] 发送的数据
size[in] 发送的数据大小