: peer_(), module_()
{}
-prefix_ senf::ppi::connector::Connector::~Connector()
-{
- if (connected()) {
- Connector & peer (*peer_);
- peer_->peer_ = 0;
- if (! peer.initializationScheduled())
- peer.enqueueInitializable();
- peer.v_disconnected();
- }
-}
-
prefix_ bool senf::ppi::connector::Connector::connected()
const
{
return peer_;
}
-prefix_ void senf::ppi::connector::Connector::unregisterConnector()
-{
- if (module_)
- module_->unregisterConnector(*this);
-}
-
-////////////////////////////////////////
-// private members
-
-prefix_ void senf::ppi::connector::Connector::setModule(module::Module & module)
-{
- module_ = &module;
-}
-
///////////////////////////////////////////////////////////////////////////
// senf::ppi::connector::PassiveConnector
prefix_ senf::ppi::connector::ActiveConnector & senf::ppi::connector::PassiveConnector::peer()
const
{
- return dynamic_cast<ActiveConnector&>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ bool senf::ppi::connector::PassiveConnector::throttled()
remoteThrottled_ = true;
}
-prefix_ void senf::ppi::connector::PassiveConnector::registerRoute(ForwardingRoute & route)
-{
- routes_.push_back(&route);
-}
-
-prefix_ void senf::ppi::connector::PassiveConnector::unregisterRoute(ForwardingRoute & route)
-{
- Routes::iterator i (std::find(routes_.begin(), routes_.end(), &route));
- if (i != routes_.end())
- routes_.erase(i);
-}
-
// public members
prefix_ bool senf::ppi::connector::PassiveConnector::nativeThrottled()
prefix_ senf::ppi::connector::PassiveConnector & senf::ppi::connector::ActiveConnector::peer()
const
{
- return dynamic_cast<PassiveConnector&>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ void senf::ppi::connector::ActiveConnector::onThrottle()
prefix_ senf::ppi::connector::OutputConnector & senf::ppi::connector::InputConnector::peer()
const
{
- return dynamic_cast<OutputConnector &>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ senf::ppi::connector::InputConnector::queue_iterator
prefix_ senf::ppi::connector::InputConnector & senf::ppi::connector::OutputConnector::peer()
const
{
- return dynamic_cast<InputConnector&>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ void senf::ppi::connector::OutputConnector::operator()(Packet const & p)
prefix_ senf::ppi::connector::GenericActiveOutput & senf::ppi::connector::GenericPassiveInput::peer()
const
{
- return dynamic_cast<GenericActiveOutput&>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ bool senf::ppi::connector::GenericPassiveInput::boolean_test()
prefix_ senf::ppi::connector::GenericActiveInput & senf::ppi::connector::GenericPassiveOutput::peer()
const
{
- return dynamic_cast<GenericActiveInput&>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ bool senf::ppi::connector::GenericPassiveOutput::boolean_test()
prefix_ senf::ppi::connector::GenericPassiveOutput & senf::ppi::connector::GenericActiveInput::peer()
const
{
- return dynamic_cast<GenericPassiveOutput&>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ bool senf::ppi::connector::GenericActiveInput::boolean_test()
prefix_ senf::ppi::connector::GenericPassiveInput & senf::ppi::connector::GenericActiveOutput::peer()
const
{
- return dynamic_cast<GenericPassiveInput&>(Connector::peer());
+ SENF_ASSERT(peer_, "senf::ppi::connect() call missing");
+ return *peer_;
}
prefix_ bool senf::ppi::connector::GenericActiveOutput::boolean_test()