Scheduler: Implement new timer event API
[senf.git] / PPI / Connectors.cci
index 1680902..8db9cd9 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// Copyright (C) 2007 
-// Fraunhofer Institute for Open Communication Systems (FOKUS) 
-// Competence Center NETwork research (NET), St. Augustin, GERMANY 
+// 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
@@ -24,6 +24,7 @@
     \brief Connectors inline non-template implementation */
 
 // Custom includes
+#include "../Utils/TypeInfo.hh"
 #include "../Utils/senfassert.hh"
 
 #define prefix_ inline
@@ -59,13 +60,6 @@ prefix_ senf::ppi::connector::Connector::~Connector()
         peer_->peer_ = 0;
 }
 
-prefix_ void senf::ppi::connector::Connector::connect(Connector & target)
-{
-    SENF_ASSERT( ! peer_ && ! target.peer_ );
-    peer_ = & target;
-    target.peer_ = this;
-}
-
 ////////////////////////////////////////
 // private members
 
@@ -77,12 +71,52 @@ prefix_ void senf::ppi::connector::Connector::setModule(module::Module & module)
 ///////////////////////////////////////////////////////////////////////////
 // senf::ppi::connector::PassiveConnector
 
+prefix_ senf::ppi::connector::ActiveConnector & senf::ppi::connector::PassiveConnector::peer()
+    const
+{
+    return dynamic_cast<ActiveConnector&>(Connector::peer());
+}
+
 prefix_ bool senf::ppi::connector::PassiveConnector::throttled()
     const
 {
     return nativeThrottled_ || remoteThrottled_;
 }
 
+////////////////////////////////////////
+// private members
+
+prefix_ void senf::ppi::connector::PassiveConnector::emitThrottle()
+{
+    peer().notifyThrottle();
+}
+
+prefix_ void senf::ppi::connector::PassiveConnector::emitUnthrottle()
+{
+    peer().notifyUnthrottle();
+    v_unthrottleEvent();
+}
+
+prefix_ void senf::ppi::connector::PassiveConnector::notifyThrottle()
+{
+    if (!throttled()) {
+        remoteThrottled_ = true;
+        emitThrottle();
+    }
+    else
+        remoteThrottled_ = true;
+}
+
+prefix_ void senf::ppi::connector::PassiveConnector::v_unthrottleEvent()
+{}
+
+prefix_ void senf::ppi::connector::PassiveConnector::registerRoute(ForwardingRoute & route)
+{
+    routes_.push_back(&route);
+}
+
+// public members 
+
 prefix_ bool senf::ppi::connector::PassiveConnector::nativeThrottled()
     const
 {
@@ -107,12 +141,6 @@ prefix_ void senf::ppi::connector::PassiveConnector::unthrottle()
 
 }
 
-prefix_ senf::ppi::connector::ActiveConnector & senf::ppi::connector::PassiveConnector::peer()
-    const
-{
-    return dynamic_cast<ActiveConnector&>(Connector::peer());
-}
-
 ////////////////////////////////////////
 // protected members
 
@@ -127,38 +155,6 @@ prefix_ void senf::ppi::connector::PassiveConnector::emit()
         callback_();
 }
 
-////////////////////////////////////////
-// private members
-
-prefix_ void senf::ppi::connector::PassiveConnector::notifyThrottle()
-{
-    if (!throttled()) {
-        remoteThrottled_ = true;
-        emitThrottle();
-    } 
-    else 
-        remoteThrottled_ = true;
-}
-
-prefix_ void senf::ppi::connector::PassiveConnector::emitThrottle()
-{
-    peer().notifyThrottle();
-}
-
-prefix_ void senf::ppi::connector::PassiveConnector::emitUnthrottle()
-{
-    peer().notifyUnthrottle();
-    v_unthrottleEvent();
-}
-
-prefix_ void senf::ppi::connector::PassiveConnector::v_unthrottleEvent()
-{}
-
-prefix_ void senf::ppi::connector::PassiveConnector::registerRoute(ForwardingRoute & route)
-{
-    routes_.push_back(&route);
-}
-
 ///////////////////////////////////////////////////////////////////////////
 // senf::ppi::connector::ActiveConnector
 
@@ -257,6 +253,12 @@ prefix_ void senf::ppi::connector::InputConnector::enqueue(Packet p)
 ///////////////////////////////////////////////////////////////////////////
 // senf::ppi::connector::OutputConnector
 
+prefix_ senf::ppi::connector::InputConnector & senf::ppi::connector::OutputConnector::peer()
+    const
+{
+    return dynamic_cast<InputConnector&>(Connector::peer());
+}
+
 prefix_ void senf::ppi::connector::OutputConnector::operator()(Packet p)
 {
     peer().enqueue(p);
@@ -267,12 +269,6 @@ prefix_ void senf::ppi::connector::OutputConnector::write(Packet p)
     operator()(p);
 }
 
-prefix_ senf::ppi::connector::InputConnector & senf::ppi::connector::OutputConnector::peer()
-    const
-{
-    return dynamic_cast<InputConnector&>(Connector::peer());
-}
-
 ////////////////////////////////////////
 // protected members