#ifndef HEADER_NET_EVENTHANDLER #define HEADER_NET_EVENTHANDLER #include #include #include "CppDefine.h" #include "SocketImpl.h" #include "AcceptSocket.h" #include "PoolSharedPtr.h" #define INVALID_TIMER -1 namespace cppnet { enum EVENT_FLAG { EVENT_READ = 0x0001, //read event EVENT_WRITE = 0x0002, //write event EVENT_ACCEPT = 0x0004, //accept event EVENT_TIMER = 0x0008, //timer event EVENT_CONNECT = 0x0010, //connect event EVENT_DISCONNECT = 0x0020, //disconnect event EVENT_TIMER_ALWAYS = 0x0040, //timer always check ERR_CONNECT_BREAK = 0x0080, //connect break ERR_CONNECT_FAILED = 0x0100, //connect faild ERR_CONNECT_CLOSE = 0x0200, //connect close ERR_TIME_OUT = 0x0400, //time out EVENT_ERR_MAX = 0x0800 //max event flag define }; class Cevent { public: void* _data = nullptr; int _event_flag_set = 0; }; struct CTimerEvent { int _event_flag; uint64_t _timer_id; unsigned int _interval; void* _timer_param; std::function _timer_call_back; // only timer event base::CMemWeakPtr _event; }; class CBuffer; class CEventHandler : public Cevent { public: base::CMemSharePtr _buffer; base::CMemWeakPtr _client_socket; int _off_set; //read or write size }; class CAcceptEventHandler : public Cevent { public: base::CMemSharePtr _client_socket; base::CMemSharePtr _accept_socket = nullptr; }; } #endif