本文整理汇总了C++中CONN::read_handler方法的典型用法代码示例。如果您正苦于以下问题:C++ CONN::read_handler方法的具体用法?C++ CONN::read_handler怎么用?C++ CONN::read_handler使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CONN
的用法示例。
在下文中一共展示了CONN::read_handler方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: conn_event_handler
/* connection event handler */
void conn_event_handler(int event_fd, short event, void *arg)
{
int error = 0;
socklen_t len = sizeof(int);
CONN *conn = (CONN *)arg;
if(conn)
{
if(event_fd == conn->fd)
{
if(conn->status == CONN_STATUS_READY)
{
if(getsockopt(conn->fd, SOL_SOCKET, SO_ERROR, &error, &len) != 0 || error != 0)
{
ERROR_LOGGER(conn->logger, "socket %d connecting failed, %s", strerror(errno));
conn->status = CONN_STATUS_CLOSED;
CONN_TERMINATE(conn);
return ;
}
conn->status = CONN_STATUS_CONNECTED;
}
if(event & E_CLOSE)
{
//DEBUG_LOGGER(conn->logger, "E_CLOSE:%d on %d START ", E_CLOSE, event_fd);
CONN_TERMINATE(conn);
//conn->push_message(conn, MESSAGE_QUIT);
//DEBUG_LOGGER(conn->logger, "E_CLOSE:%d on %d OVER ", E_CLOSE, event_fd);
}
if(event & E_READ)
{
//DEBUG_LOGGER(conn->logger, "E_READ:%d on %d START", E_READ, event_fd);
conn->read_handler(conn);
//conn->push_message(conn, MESSAGE_INPUT);
//DEBUG_LOGGER(conn->logger, "E_READ:%d on %d OVER ", E_READ, event_fd);
}
if(event & E_WRITE)
{
//conn->push_message(conn, MESSAGE_OUTPUT);
//DEBUG_LOGGER(conn->logger, "E_WRITE:%d on %d START", E_WRITE, event_fd);
conn->write_handler(conn);
//DEBUG_LOGGER(conn->logger, "E_WRITE:%d on %d OVER", E_WRITE, event_fd);
}
}
}
}