X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=PPI%2FConnectors.cci;h=ec587ceffa54580e0a2c862ea3c5498d8b5fadbc;hb=d5a72d0b3f6fee56dba6de1c54cafb448ebe3457;hp=3f24b5d99521d0b84f041ea4c9223141777d5a03;hpb=f52075dad8b8291570fa2c61ef9b5ec0a04d1e5e;p=senf.git diff --git a/PPI/Connectors.cci b/PPI/Connectors.cci index 3f24b5d..ec587ce 100644 --- a/PPI/Connectors.cci +++ b/PPI/Connectors.cci @@ -37,7 +37,7 @@ prefix_ senf::ppi::connector::Connector & senf::ppi::connector::Connector::peer( const { // The connector is not connected - SENF_ASSERT(peer_); + SENF_ASSERT(peer_ && "senf::ppi::connect() call missing"); return *peer_; } @@ -46,10 +46,20 @@ prefix_ senf::ppi::module::Module & senf::ppi::connector::Connector::module() { // The connector is not registered in the module -> probably a route() or noroute() statement is // missing. - SENF_ASSERT(module_); + SENF_ASSERT(module_ && "Connector not registered: Missing route() or noroute()"); return *module_; } +prefix_ void senf::ppi::connector::Connector::tracing(TraceState state) +{ + traceState_ = state; +} + +prefix_ senf::ppi::connector::Connector::TraceState senf::ppi::connector::Connector::tracing() +{ + return traceState_; +} + //////////////////////////////////////// // protected members @@ -100,12 +110,14 @@ prefix_ bool senf::ppi::connector::PassiveConnector::throttled() prefix_ void senf::ppi::connector::PassiveConnector::emitThrottle() { + throttleTrace("OUT", "throttle"); if (connected()) peer().notifyThrottle(); } prefix_ void senf::ppi::connector::PassiveConnector::emitUnthrottle() { + throttleTrace("OUT", "unthrottle"); if (connected()) { peer().notifyUnthrottle(); v_unthrottleEvent(); @@ -140,7 +152,8 @@ prefix_ void senf::ppi::connector::PassiveConnector::throttle() if (!throttled()) { nativeThrottled_ = true; emitThrottle(); - } + } else + nativeThrottled_ = true; } prefix_ void senf::ppi::connector::PassiveConnector::unthrottle() @@ -162,10 +175,12 @@ prefix_ senf::ppi::connector::PassiveConnector::PassiveConnector() prefix_ void senf::ppi::connector::PassiveConnector::emit() { - // No event callback has been registered (onEvent() call missing) - SENF_ASSERT(callback_); + // No event callback has been registered (onRequest() call missing) + SENF_ASSERT(callback_ && "senf::ppi::connector::PassiveConnector: missing onRequest()"); if (!throttled()) callback_(); + else + throttleTrace("IN ", "queueing packet"); } /////////////////////////////////////////////////////////////////////////// @@ -232,7 +247,8 @@ prefix_ senf::Packet senf::ppi::connector::InputConnector::peek() const { // Cannot peek() head of empty queue - SENF_ASSERT( ! queue_.empty() ); + SENF_ASSERT( ! queue_.empty() && + "senf::ppi::connector::InputConnector: cannot call peek() on empty queue" ); return queue_.back(); } @@ -275,6 +291,7 @@ prefix_ senf::ppi::connector::InputConnector & senf::ppi::connector::OutputConne prefix_ void senf::ppi::connector::OutputConnector::operator()(Packet const & p) { + trace(p, "OUT"); if (connected()) peer().enqueue(p); }