20 #ifndef MPD_SOCKET_MONITOR_HXX 21 #define MPD_SOCKET_MONITOR_HXX 26 #include <type_traits> 61 unsigned scheduled_flags;
64 static constexpr
unsigned READ = PollGroup::READ;
65 static constexpr
unsigned WRITE = PollGroup::WRITE;
66 static constexpr
unsigned ERROR = PollGroup::ERROR;
67 static constexpr
unsigned HANGUP = PollGroup::HANGUP;
69 typedef std::make_signed<size_t>::type
ssize_t;
72 :fd(-1), loop(_loop), scheduled_flags(0) {}
75 :fd(_fd), loop(_loop), scheduled_flags(0) {}
111 return scheduled_flags;
void Dispatch(unsigned flags)
static constexpr unsigned WRITE
SocketMonitor(int _fd, EventLoop &_loop)
ssize_t Read(void *data, size_t length)
virtual bool OnSocketReady(unsigned flags)=0
SocketMonitor(EventLoop &_loop)
An event loop that polls for events on file/socket descriptors.
std::make_signed< size_t >::type ssize_t
void Schedule(unsigned flags)
ssize_t Write(const void *data, size_t length)
void Abandon()
Somebody has closed the socket.
int Steal()
"Steal" the socket descriptor.
static constexpr unsigned ERROR
Monitor events on a socket.
static constexpr unsigned HANGUP
EventLoop & GetEventLoop()
static constexpr unsigned READ
unsigned GetScheduledFlags() const