X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FIntervalTimer.hh;h=959c48c220c0c816ca6d60c6353f3331483e21ec;hb=92f8630b75f3ef50e73c48cde58645dcd1534e27;hp=cfb06310053a721af727e3824ae34f84fec482bb;hpb=0327b3f303ea2a61d44a30bfaac022874dcf2a0d;p=senf.git diff --git a/PPI/IntervalTimer.hh b/PPI/IntervalTimer.hh index cfb0631..959c48c 100644 --- a/PPI/IntervalTimer.hh +++ b/PPI/IntervalTimer.hh @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Copyright (C) 2007 +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -23,11 +23,11 @@ /** \file \brief IntervalTimer public header */ -#ifndef HH_IntervalTimer_ -#define HH_IntervalTimer_ 1 +#ifndef HH_SENF_PPI_IntervalTimer_ +#define HH_SENF_PPI_IntervalTimer_ 1 // Custom includes -#include "Scheduler/ClockService.hh" +#include "../Scheduler/ClockService.hh" #include "Events.hh" //#include "IntervalTimer.mpp" @@ -36,14 +36,25 @@ namespace senf { namespace ppi { + /** \brief IntervalTimer event information + + Information passed to the IntervalTimer event handler + */ struct IntervalTimerEventInfo { - ClockService::clock_type expected; - ClockService::clock_type intervalStart; - unsigned number; + ClockService::clock_type expected; ///< Scheduled event time + ClockService::clock_type intervalStart; ///< Start of the current time interval + unsigned number; ///< Number of the current event within the interval }; - /** \brief + /** \brief High precision regularly signaled event. + + An IntervalTimer signals an event \a eventsPerInterval times each \a interval + nanoseconds. The event counter and timer are reset, whenever the event is disabled. + + \see IntervalTimerEventInfo + + \ingroup event_group */ class IntervalTimer : public EventImplementation @@ -53,12 +64,16 @@ namespace ppi { ///\name Structors and default members ///@{ - explicit IntervalTimer(ClockService::clock_type interval, + explicit IntervalTimer(ClockService::clock_type interval, unsigned eventsPerInterval=1); - + IntervalTimer(); + ///@} /////////////////////////////////////////////////////////////////////////// + void interval(ClockService::clock_type interval, unsigned eventsPerInterval=1); + std::pair interval() const; + protected: private: @@ -71,7 +86,7 @@ namespace ppi { ClockService::clock_type interval_; unsigned eventsPerInterval_; IntervalTimerEventInfo info_; - unsigned id_; + scheduler::TimerEvent timer_; }; }}