///< Add timeout event
/**< \param[in] timeout timeout in nanoseconds
\param[in] cb callback to call after \a timeout
- milliseconds
- \todo Return some kind of handle/pointer and add
- support to update or revoke a timeout */
+ milliseconds */
void cancelTimeout(unsigned id);
private:
typedef boost::function<void (EventId)> SimpleCallback;
- static unsigned const MinTimeout = 1000;
-
Scheduler();
void do_add(int fd, SimpleCallback const & cb, int eventMask = EV_ALL);
};
typedef std::map<int,EventSpec> FdTable;
- typedef std::map<unsigned,TimerSpec> TimerMap;
+ typedef std::map<unsigned,TimerSpec> TimerMap; // sorted by id
struct TimerSpecCompare
{
};
typedef std::priority_queue<TimerMap::iterator, std::vector<TimerMap::iterator>,
- TimerSpecCompare> TimerQueue;
+ TimerSpecCompare> TimerQueue; // sorted by time
FdTable fdTable_;
unsigned timerIdCounter_;
TimerMap timerMap_;
int epollFd_;
bool terminate_;
+ ClockService::clock_type eventTime_;
};
/** \brief Default file descriptor accessor