moved statistics classes from NetEmu to SENF
[senf.git] / PPI / IntervalTimer.hh
index 798729a..959c48c 100644 (file)
@@ -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 <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 /** \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"
@@ -51,6 +51,10 @@ namespace ppi {
 
         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<IntervalTimerEventInfo>
@@ -60,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<ClockService::clock_type, unsigned> interval() const;
+
     protected:
 
     private:
@@ -78,7 +86,7 @@ namespace ppi {
         ClockService::clock_type interval_;
         unsigned eventsPerInterval_;
         IntervalTimerEventInfo info_;
-        unsigned id_;
+        scheduler::TimerEvent timer_;
     };
 
 }}