X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FRoute.hh;h=2e2014027e78e5e4c941ec1d5ad3f0dbbb2b378e;hb=7ee689fe38d66aa3a0004d55e8708750d35adc0b;hp=fb2930597f6d1f3d5a97950067d8c2c684aa5c22;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/PPI/Route.hh b/senf/PPI/Route.hh index fb29305..2e20140 100644 --- a/senf/PPI/Route.hh +++ b/senf/PPI/Route.hh @@ -31,7 +31,7 @@ #include "predecl.hh" //#include "Route.mpp" -///////////////////////////////hh.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { namespace ppi { @@ -57,10 +57,18 @@ namespace ppi { class is internal and not documented. */ #endif + bool hasConnector(connector::Connector const & conn) const; + ///< \c true, if route has connector \a conn + bool hasEvent(EventDescriptor const & event) const; + ///< \c true, if route has event \a event + protected: RouteBase(module::Module & module); private: + virtual bool v_hasConnector(connector::Connector const & conn) const = 0; + virtual bool v_hasEvent(EventDescriptor const & event) const = 0; + module::Module * module_; }; @@ -80,7 +88,7 @@ namespace ppi { forwarded from active to passive connectors. This may be disabled by setting the authoThrottling state to \c false. - + Routing from/to an event to/from a passive connector will automatically create throttling notifications on the connector whenever the event is disabled. Routing @@ -94,12 +102,13 @@ namespace ppi { /**< This member checks only the automatic throttling state. If autoThrottling() is \c false, this member will always return \c false. */ - + protected: ForwardingRoute(module::Module & module); // Called to register this route with the connectors forwarding information base template void registerRoute(T & ob); + template void unregisterRoute(T & ob); template void notifyThrottle(T & ob); template void notifyUnthrottle(T & ob); @@ -128,7 +137,7 @@ namespace senf { namespace ppi { /** \brief Route descriptor - + Route instances are created by Module::route statements. The Route class provides an interface to manipulate the flow processing. @@ -149,7 +158,7 @@ namespace ppi { private: typedef detail::RouteImplementation Base; typedef detail::RouteImplementation Implementation; - + Route(module::Module & module, Source & source, Target & target); friend class module::Module; @@ -157,7 +166,7 @@ namespace ppi { }} -///////////////////////////////hh.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #include "Route.cci" #include "Route.ct" #include "Route.cti"