X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FJoins.cc;h=e6dd80f5747b667bef70db0cbcb8491623797799;hb=93d9568d448749dc187e7622b733a4a3caa319df;hp=653149a53720906d73b08ba2151afd970388e230;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/PPI/Joins.cc b/senf/PPI/Joins.cc index 653149a..e6dd80f 100644 --- a/senf/PPI/Joins.cc +++ b/senf/PPI/Joins.cc @@ -34,23 +34,26 @@ //#include "Joins.mpp" #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::ppi::module::PassiveJoin -//////////////////////////////////////// +prefix_ senf::ppi::module::PassiveJoin::PassiveJoin() +{ + noroute(output); + output.onThrottle(&PassiveJoin::onThrottle); + output.onUnthrottle(&PassiveJoin::onUnthrottle); +} + +//-///////////////////////////////////////////////////////////////////////////////////////////////// // private members prefix_ void senf::ppi::module::PassiveJoin::connectorSetup(connector::PassiveInput<> & conn) { noroute(conn); conn.onRequest(boost::bind(&PassiveJoin::request,this,boost::ref(conn))); -} - -prefix_ void senf::ppi::module::PassiveJoin::request(connector::GenericPassiveInput & input) -{ - output(input()); + conn.qdisc( QueueingDiscipline::NONE); } prefix_ void senf::ppi::module::PassiveJoin::onThrottle() @@ -69,10 +72,16 @@ prefix_ void senf::ppi::module::PassiveJoin::onUnthrottle() bind(&connector::GenericPassiveInput::unthrottle, _1)); } -/////////////////////////////////////////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// // senf::ppi::module::PriorityJoin -//////////////////////////////////////// +prefix_ senf::ppi::module::PriorityJoin::PriorityJoin() +{ + noroute(output); + output.onRequest(&PriorityJoin::request); +} + +//-///////////////////////////////////////////////////////////////////////////////////////////////// // private members prefix_ void @@ -85,12 +94,12 @@ senf::ppi::module::PriorityJoin::connectorSetup(PriorityJoin::ConnectorType & co if (priority < 0) { priority = connectors().size() + priority; - if (priority < 0) + if (priority < 0) priority = 0; } if (priority >= int(connectors().size())-1) return; - + connectors().insert(connectors().begin()+priority, connectors().pop_back().release()); } @@ -117,7 +126,7 @@ prefix_ void senf::ppi::module::PriorityJoin::onUnthrottle() output.unthrottle(); } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_ //#include "Joins.mpp"