11 #include "platform/Platform.h"    12 #include "threads/CriticalSection.h"    13 #include "threads/Thread.h"    18 #include <sys/epoll.h>    27   typedef void (*EventCallback)(
int id, 
int fd, 
short revents, 
void *data);
    34     EventCallback callback = 
nullptr; 
    37     MonitoredFD(
int fd_, 
short events_, EventCallback callback_, 
void *callbackData_) :
    38       fd(fd_), events(events_), callback(callback_), callbackData(callbackData_) {}
    45   void AddFD(
const MonitoredFD& monitoredFD, 
int& 
id);
    46   void AddFDs(
const std::vector<MonitoredFD>& monitoredFDs, std::vector<int>& ids);
    48   void RemoveFD(
int id);
    49   void RemoveFDs(
const std::vector<int>& ids);
    52   void Process() 
override;
    55   void AddFDLocked(
const MonitoredFD& monitoredFD, 
int& 
id);
    57   void AddPollDesc(
int id, 
int fd, 
short events);
    58   void UpdatePollDescs();
    60   void StartMonitoring();
    63   std::map<int, MonitoredFD> m_monitoredFDs;
    66   std::vector<int> m_monitoredFDbyPollDescs;
    67   std::vector<struct pollfd> m_pollDescs;
    72   CCriticalSection m_mutex;
    73   CCriticalSection m_pollMutex;
 
void * callbackData
Callback to be called on events. 
Definition: FDEventMonitor.h:35
Monitor a file descriptor with callback on poll() events. 
Definition: FDEventMonitor.h:23
short events
Events to be monitored (see poll(2)) 
Definition: FDEventMonitor.h:32
MonitoredFD(int fd_, short events_, EventCallback callback_, void *callbackData_)
data parameter for EventCallback 
Definition: FDEventMonitor.h:37
Definition: FDEventMonitor.h:29