本文整理汇总了C++中Connection::RemoveSendData方法的典型用法代码示例。如果您正苦于以下问题:C++ Connection::RemoveSendData方法的具体用法?C++ Connection::RemoveSendData怎么用?C++ Connection::RemoveSendData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Connection
的用法示例。
在下文中一共展示了Connection::RemoveSendData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: DoTcpWrite
void EventModule::DoTcpWrite(int conn_fd, void* arg)
{
LOG(INFO) << "do_tcp_write";
Epoller* epoller_ = (Epoller*)arg;
ConnMgrModule* conn_mgr_module = FindModule<ConnMgrModule>(App::GetInstance());
Connection* conn = conn_mgr_module->GetConn(conn_fd);
if (conn == NULL) {
LOG(INFO)
<< "Connection fd[" << conn_fd
<< "] has been released.";
return;
}
int ret = send(conn_fd, conn->send_buf(), conn->send_buf_size(), 0);
if (ret < 0) {
LOG(ERROR)
<< "send errno[" << errno
<< "] error[" << strerror(errno)
<< "] conn_fd[" << conn_fd
<< "]";
conn_mgr_module->ReleaseConn(conn_fd);
epoller_->ClearEvent(conn_fd);
return;
} else if (ret > 0 && ret < conn->send_buf_size()) {
LOG(INFO) << "tcp send part";
conn->RemoveSendData(ret);
} else if (ret == conn->send_buf_size()) {
LOG(INFO) << "tcp send all send_len[" << ret << "]";
conn->ClearSendData();
epoller_->DelEvent(conn_fd, EVENT_WRITE);
}
}