PPI: Move generic packet typeid check into connector base-class
[senf.git] / PPI / IntervalTimer.cc
index 766fc16..507567e 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
@@ -27,7 +27,7 @@
 //#include "IntervalTimer.ih"
 
 // Custom includes
-#include "Scheduler/Scheduler.hh"
+#include "../Scheduler/Scheduler.hh"
 #include "EventManager.hh"
 
 //#include "IntervalTimer.mpp"
@@ -50,6 +50,7 @@ prefix_ void senf::ppi::IntervalTimer::v_enable()
 prefix_ void senf::ppi::IntervalTimer::v_disable()
 {
     Scheduler::instance().cancelTimeout(id_);
+    id_ = 0;
 }
 
 prefix_ void senf::ppi::IntervalTimer::schedule()
@@ -61,6 +62,8 @@ prefix_ void senf::ppi::IntervalTimer::schedule()
 prefix_ void senf::ppi::IntervalTimer::cb()
 {
     callback(info_, info_.expected);
+    if (! enabled())
+        return;
     ++ info_.number;
     if (info_.number >= eventsPerInterval_) {
         info_.number = 0;