Added missing Unittest for STL-Predicate in genericTLVs
[senf.git] / senf / PPI / Connectors.cc
index ce44e0d..065d36f 100644 (file)
@@ -30,7 +30,7 @@
 #include "Route.hh"
 #include "Module.hh"
 #include "ModuleManager.hh"
-#include "../Utils/Console/Console.hh"
+#include <senf/Utils/Console/Console.hh>
 
 //#include "Connectors.mpp"
 #define prefix_
@@ -165,6 +165,7 @@ prefix_ void senf::ppi::connector::Connector::disconnect()
     // Cannot disconnected a non-connected connector
     SENF_ASSERT( peer_ &&
                  "senf::ppi::connector::Connector::disconnect(): Not connected" );
+
     Connector & peer (*peer_);
     peer_ = 0;
     peer.peer_ = 0;
@@ -173,6 +174,9 @@ prefix_ void senf::ppi::connector::Connector::disconnect()
         enqueueInitializable();
     if (! peer.initializationScheduled())
         peer.enqueueInitializable();
+
+    v_disconnected();
+    peer.v_disconnected();
 }
 
 prefix_ std::type_info const & senf::ppi::connector::Connector::packetTypeID()
@@ -180,6 +184,10 @@ prefix_ std::type_info const & senf::ppi::connector::Connector::packetTypeID()
     return typeid(void);
 }
 
+prefix_ void senf::ppi::connector::Connector::v_disconnected()
+    const
+{}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::ppi::connector::PassiveConnector
 
@@ -260,6 +268,13 @@ prefix_ void senf::ppi::connector::ActiveConnector::registerRoute(ForwardingRout
     notifyRoutes_.push_back(&route);
 }
 
+prefix_ void senf::ppi::connector::ActiveConnector::unregisterRoute(ForwardingRoute & route)
+{
+    NotifyRoutes::iterator i (std::find(notifyRoutes_.begin(), notifyRoutes_.end(), &route));
+    if (i != notifyRoutes_.end())
+        notifyRoutes_.erase(i);
+}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::ppi::connector::InputConnector