31 lines
666 B
C++
31 lines
666 B
C++
#ifndef A8_EVENTFD_H
|
|
#define A8_EVENTFD_H
|
|
|
|
#include <a8/epolleventhandler.h>
|
|
|
|
namespace a8
|
|
{
|
|
class EventFD : public EpollEventHandler
|
|
{
|
|
public:
|
|
std::function<void (void*, unsigned long long)> OnEvent;
|
|
|
|
EventFD();
|
|
virtual ~EventFD();
|
|
|
|
void Init(void* context);
|
|
void Write(unsigned long long value);
|
|
virtual void SetEpollFd(int epoll_fd) override;
|
|
virtual void DoRecv() override;
|
|
virtual void DoSend() override;
|
|
virtual void DoError() override;
|
|
|
|
private:
|
|
int epoll_fd_ = a8::INVALID_FD;
|
|
void* context_ = nullptr;
|
|
int fd_ = a8::INVALID_FD;
|
|
};
|
|
}
|
|
|
|
#endif
|