14 #include "rofl/common/ctimer.h"
15 #include "rofl/common/logging.h"
16 #include "rofl/common/thread_helper.h"
17 #include "rofl/common/croflexception.h"
68 RwLock lock(rwlock, RwLock::RWLOCK_WRITE);
70 timers.insert(t.timers.begin(), t.timers.end());
89 RwLock lock(rwlock, RwLock::RWLOCK_READ);
90 return (timers.empty());
100 RwLock lock(rwlock, RwLock::RWLOCK_WRITE);
103 std::multiset<ctimer>::iterator first = timers.begin();
116 RwLock lock(rwlock, RwLock::RWLOCK_WRITE);
117 std::multiset<ctimer>::iterator it = timers.insert(t);
118 return it->get_timer_id();
137 RwLock lock(rwlock, RwLock::RWLOCK_WRITE);
138 std::multiset<ctimer>::iterator it;
142 const ctimerid& timerid = timers.insert(
ctimer(it->get_timer_env(), it->get_opaque(), timespec))->get_timer_id();
158 RwLock lock(rwlock, RwLock::RWLOCK_WRITE);
159 if (timers.empty()) {
164 std::multiset<ctimer>::iterator it = timers.begin();
186 RwLock lock(rwlock, RwLock::RWLOCK_READ);
187 std::multiset<ctimer>::iterator it;
202 RwLock lock(rwlock, RwLock::RWLOCK_WRITE);
203 std::multiset<ctimer>::iterator it;
215 RwLock lock(rwlock, RwLock::RWLOCK_WRITE);
225 os <<
indent(0) <<
"<ctimers: >" << std::endl;
227 for (std::multiset<ctimer>::const_iterator it = t.timers.begin(); it != t.timers.end(); ++it) {
235 std::multiset<rofl::ctimer> timers;
236 PthreadRwLock rwlock;
const rofl::ctimerid & reset(const rofl::ctimerid &timer_id, const rofl::ctimespec ×pec)
Resets an existing timer identifier by its handle with a new timeout value.
Definition: ctimers.h:134
ctimers(const rofl::ctimers &timers)
ctimers copy constructor
Definition: ctimers.h:48
void clear()
Removes all timers from this timer list.
Definition: ctimers.h:214
Timer handle used by class rofl::cioloop.
Definition: ctimerid.h:21
List of timers objects of class rofl::ctimer.
Definition: ctimers.h:29
ctimers()
ctimers default constructor
Definition: ctimers.h:42
Single timer object in rofl-common.
Definition: ctimer.h:45
void cancel(const ctimerid &timer_id)
Removes a timer identified by the given timer handle from this timer list.
Definition: ctimers.h:200
rofl::ctimer get_expired_timer()
Returns the next timer from timer list, when it has already expired.
Definition: ctimers.h:157
bool empty()
Deletes all timers in this timer list.
Definition: ctimers.h:88
const rofl::ctimerid & add_timer(const rofl::ctimer &t)
Inserts a new timer into the timer list.
Definition: ctimers.h:114
bool pending(const rofl::ctimerid &timer_id)
Checks whether a certain timer identified by the given handle is still pending.
Definition: ctimers.h:184
Definition: thread_helper.h:88
virtual ~ctimers()
ctimers destructor
Definition: ctimers.h:36
ctimers & operator=(const rofl::ctimers &t)
Assignment operator.
Definition: ctimers.h:64
static rofl::ctimer now()
Returns a rofl::ctimer object with internal timespec set to current time.
Definition: ctimer.h:55
Time specification used by class rofl::ctimer object.
Definition: ctimespec.h:25
rofl::ctimer get_next_timer()
Returns a copy of the next expiring timer in this timer list.
Definition: ctimers.h:99
Definition: croflexception.h:27