a8/a8/eventfd.h
2020-01-09 15:59:26 +08:00

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