代码拉取完成,页面将自动刷新
#ifndef _TEVENTLOOP_H_
#define _TEVENTLOOP_H_
#include <map>
#include <vector>
#include "tnocopyable.h"
#ifdef WIN32
#include <windows.h>
#else
#include <unistd.h>
#include <errno.h>
#include <sys/epoll.h>
#include <sys/socket.h>
#define MAX_EVENTS 1024
#endif
namespace tlib
{
enum EventMonitor
{
Read = 0, Write
};
class TSocket;
class TServer;
class TClient;
class TEventLoop: TNoCopyable
{
public:
TEventLoop();
virtual ~TEventLoop();
bool AddLoop(int fd, EventMonitor em);
bool DelLoop(int fd, EventMonitor em);
void RunLoop(TServer* srv);
void WakeUp();
TTaskQueue m_ioQueues;
public:
int writefd, readfd;
TServer* pSrv;
TBufferPool m_bufferPool;
void SendInIOThread(TClient* cli, std::string msg);
void SendRemainInIOThread(TClient* cli);
void CloseInIOThread(TClient* cli);
#ifdef WIN32
struct timeval m_timeout;
fd_set m_connSet, m_sendSet, m_recvSet;
std::map<int, TClient*> m_conns;
#else
int m_epollfd;
std::vector<TClient*> m_conns;
struct epoll_event m_ev, m_events[MAX_EVENTS];
#endif
};
}
#endif
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。