X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FTimerEvent.cc;h=f3113e4e32473e75e4b02fbc62798c2e7ee25926;hb=04181eba2e5e1dd0a8552b69905d7a3d493e2d77;hp=7c3278bd85632ee409e05ed4feb1c0b5418a21fb;hpb=03516e8371a90f908ce54dedb3c874eec7dd08ff;p=senf.git diff --git a/Scheduler/TimerEvent.cc b/Scheduler/TimerEvent.cc index 7c3278b..f3113e4 100644 --- a/Scheduler/TimerEvent.cc +++ b/Scheduler/TimerEvent.cc @@ -27,6 +27,7 @@ #include "TimerEvent.ih" // Custom includes +#include //#include "TimerEvent.mpp" #define prefix_ @@ -37,7 +38,7 @@ prefix_ senf::scheduler::detail::TimerDispatcher::TimerDispatcher() { if (pipe(timerPipe_) < 0) SENF_THROW_SYSTEM_EXCEPTION("pipe()"); - senf::scheduler::FdManager::instance().set(timerPipe_[0], FdManager::EV_READ, this); + senf::scheduler::detail::FdManager::instance().set(timerPipe_[0], detail::FdManager::EV_READ, this); sigemptyset(&sigSet_); sigaddset(&sigSet_, SIGALRM); @@ -64,12 +65,12 @@ prefix_ senf::scheduler::detail::TimerDispatcher::~TimerDispatcher() TimerSet::iterator i (timers_.begin()); TimerSet::iterator const i_end (timers_.end()); for (; i != i_end; ++i) - senf::scheduler::FIFORunner::instance().dequeue(&(*i)); + senf::scheduler::detail::FIFORunner::instance().dequeue(&(*i)); timer_delete(timerId_); ::signal(SIGALRM, SIG_IGN); sigprocmask(SIG_UNBLOCK, &sigSet_, 0); - senf::scheduler::FdManager::instance().remove(timerPipe_[0]); + senf::scheduler::detail::FdManager::instance().remove(timerPipe_[0]); close(timerPipe_[0]); close(timerPipe_[1]); } @@ -77,7 +78,7 @@ prefix_ senf::scheduler::detail::TimerDispatcher::~TimerDispatcher() void senf::scheduler::detail::TimerDispatcher::add(TimerEvent & event) { TimerSet::iterator i (timers_.insert(event)); - senf::scheduler::FIFORunner::instance().enqueue(&(*i)); + senf::scheduler::detail::FIFORunner::instance().enqueue(&(*i)); if (! blocked_) reschedule(); } @@ -87,7 +88,7 @@ prefix_ void senf::scheduler::detail::TimerDispatcher::remove(TimerEvent & event TimerSet::iterator i (TimerSet::current(event)); if (i == timers_.end()) return; - senf::scheduler::FIFORunner::instance().dequeue(&(*i)); + senf::scheduler::detail::FIFORunner::instance().dequeue(&(*i)); timers_.erase(i); if (! blocked_) reschedule(); @@ -117,7 +118,7 @@ prefix_ void senf::scheduler::detail::TimerDispatcher::signal(int events) return; TimerSet::iterator i (timers_.begin()); TimerSet::iterator const i_end (timers_.end()); - ClockService::clock_type now (senf::scheduler::FdManager::instance().eventTime()); + ClockService::clock_type now (senf::scheduler::detail::FdManager::instance().eventTime()); for (; i != i_end && i->timeout_ <= now ; ++i) i->setRunnable(); } @@ -163,12 +164,28 @@ prefix_ void senf::scheduler::detail::TimerDispatcher::reschedule() /////////////////////////////////////////////////////////////////////////// // senf::scheduler::detail::TimerDispatcher::TimerEvent -prefix_ void senf::scheduler::TimerEvent::run() +prefix_ void senf::scheduler::TimerEvent::v_run() { disable(); cb_(); } +prefix_ char const * senf::scheduler::TimerEvent::v_type() + const +{ + return "tm"; +} + +prefix_ std::string senf::scheduler::TimerEvent::v_info() + const +{ + std::stringstream ss; + ss.imbue( std::locale(ss.getloc(), + new boost::posix_time::time_facet("%Y-%m-%d %H:%M:%S.%f-0000")) ); + ss << "expire " << ClockService::abstime(timeout_); + return ss.str(); +} + ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "TimerEvent.mpp"