X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FIntervalTimer.hh;h=959c48c220c0c816ca6d60c6353f3331483e21ec;hb=f2f5d59e83863f3b513950173baee1b6da2aee3c;hp=f057473cda648723f2fe5e8fb009e4111b1537b6;hpb=b8a3977542aaf217ac472e5266abd0fcffb4f95f;p=senf.git diff --git a/PPI/IntervalTimer.hh b/PPI/IntervalTimer.hh index f057473..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,32 +36,44 @@ 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 { public: /////////////////////////////////////////////////////////////////////////// - // Types - - /////////////////////////////////////////////////////////////////////////// ///\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: @@ -74,7 +86,7 @@ namespace ppi { ClockService::clock_type interval_; unsigned eventsPerInterval_; IntervalTimerEventInfo info_; - unsigned id_; + scheduler::TimerEvent timer_; }; }}