prefix_ senf::ppi::connector::Connector & senf::ppi::connector::Connector::peer()
const
{
- SENF_ASSERT(peer_);
+ // The connector is not connected
+ SENF_ASSERT(peer_ && "senf::ppi::connect() call missing");
return *peer_;
}
prefix_ senf::ppi::module::Module & senf::ppi::connector::Connector::module()
const
{
- SENF_ASSERT(module_);
+ // The connector is not registered in the module -> probably a route() or noroute() statement is
+ // missing.
+ SENF_ASSERT(module_ && "Connector not registered: Missing route() or noroute()");
return *module_;
}
prefix_ senf::ppi::connector::Connector::~Connector()
{
- if (connected())
+ if (connected()) {
+ Connector & peer (*peer_);
peer_->peer_ = 0;
+ peer.v_init();
+ }
}
prefix_ bool senf::ppi::connector::Connector::connected()
module_ = &module;
}
-prefix_ void senf::ppi::connector::Connector::init()
-{
- v_init();
-}
-
///////////////////////////////////////////////////////////////////////////
// senf::ppi::connector::PassiveConnector
prefix_ void senf::ppi::connector::PassiveConnector::emit()
{
- SENF_ASSERT(callback_);
+ // No event callback has been registered (onRequest() call missing)
+ SENF_ASSERT(callback_ && "senf::ppi::connector::PassiveConnector: missing onRequest()");
if (!throttled())
callback_();
}
prefix_ senf::Packet senf::ppi::connector::InputConnector::peek()
const
{
- SENF_ASSERT( ! queue_.empty() );
+ // Cannot peek() head of empty queue
+ SENF_ASSERT( ! queue_.empty() &&
+ "senf::ppi::connector::InputConnector: cannot call peek() on empty queue" );
return queue_.back();
}
////////////////////////////////////////
// private members
-prefix_ void senf::ppi::connector::InputConnector::enqueue(Packet p)
+prefix_ void senf::ppi::connector::InputConnector::enqueue(Packet const & p)
{
queue_.push_front(p);
v_enqueueEvent();
return dynamic_cast<InputConnector&>(Connector::peer());
}
-prefix_ void senf::ppi::connector::OutputConnector::operator()(Packet p)
+prefix_ void senf::ppi::connector::OutputConnector::operator()(Packet const & p)
{
if (connected())
peer().enqueue(p);
}
-prefix_ void senf::ppi::connector::OutputConnector::write(Packet p)
+prefix_ void senf::ppi::connector::OutputConnector::write(Packet const & p)
{
operator()(p);
}