X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FConnectors.cc;h=065d36f4465f1f495f9e5e4ca57aa514ebc77648;hb=9bf675b08d624cfac113a1a90dcfbd9503872b1d;hp=ce44e0d23784c73237c77ee2ba399303fb61d9a6;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/PPI/Connectors.cc b/senf/PPI/Connectors.cc index ce44e0d..065d36f 100644 --- a/senf/PPI/Connectors.cc +++ b/senf/PPI/Connectors.cc @@ -30,7 +30,7 @@ #include "Route.hh" #include "Module.hh" #include "ModuleManager.hh" -#include "../Utils/Console/Console.hh" +#include //#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