X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FModule.cc;h=6638cb91ecc92c834f5d5879f62681c5d4d96f97;hb=93d9568d448749dc187e7622b733a4a3caa319df;hp=449bf2b81d57204220113906c465afe3c1f28188;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/PPI/Module.cc b/senf/PPI/Module.cc index 449bf2b..6638cb9 100644 --- a/senf/PPI/Module.cc +++ b/senf/PPI/Module.cc @@ -30,9 +30,50 @@ //#include "Module.mpp" #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// +// senf::ppi::module::Module + +//-///////////////////////////////////////////////////////////////////////////////////////////////// +// private members + +prefix_ void senf::ppi::module::Module::registerConnector(connector::Connector & connector) +{ + if (std::find(connectorRegistry_.begin(), connectorRegistry_.end(), &connector) + == connectorRegistry_.end()) { + connectorRegistry_.push_back(&connector); + connector.setModule(*this); + } +} + +prefix_ void senf::ppi::module::Module::unregisterConnector(connector::Connector & connector) +{ + ConnectorRegistry::iterator i (std::find(connectorRegistry_.begin(), connectorRegistry_.end(), + &connector)); + if (i != connectorRegistry_.end()) + connectorRegistry_.erase(i); + + routes_.erase_if(boost::bind(&RouteBase::hasConnector, _1, boost::cref(connector))); +} + +prefix_ senf::ppi::RouteBase & +senf::ppi::module::Module::addRoute(std::auto_ptr route) +{ + routes_.push_back(route.release()); + return routes_.back(); +} + +//-///////////////////////////////////////////////////////////////////////////////////////////////// +// protected members + +prefix_ void senf::ppi::module::Module::noroute(connector::Connector & connector) +{ + registerConnector(connector); + connector.setModule(*this); +} + +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_ //#include "Module.mpp"