X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FConnectors.cci;h=8db9cd913faa57ded2410e5052d972d4365e5138;hb=10985d71f77b627bc4da543d7114feb7c4529329;hp=c61555cc3447520ee52d5dec8569e19aecb86afd;hpb=408efb5a03252b4a278f69ab9bc588af438c55de;p=senf.git diff --git a/PPI/Connectors.cci b/PPI/Connectors.cci index c61555c..8db9cd9 100644 --- a/PPI/Connectors.cci +++ b/PPI/Connectors.cci @@ -71,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(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 { @@ -101,12 +141,6 @@ prefix_ void senf::ppi::connector::PassiveConnector::unthrottle() } -prefix_ senf::ppi::connector::ActiveConnector & senf::ppi::connector::PassiveConnector::peer() - const -{ - return dynamic_cast(Connector::peer()); -} - //////////////////////////////////////// // protected members @@ -121,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 @@ -251,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(Connector::peer()); +} + prefix_ void senf::ppi::connector::OutputConnector::operator()(Packet p) { peer().enqueue(p); @@ -261,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(Connector::peer()); -} - //////////////////////////////////////// // protected members