X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FRoute.hh;h=98388263d0e2c63f9d116c2a8c88fb05258d9331;hb=c505c034e5fdc932c02aa3dc3847a5551011d87e;hp=fb2930597f6d1f3d5a97950067d8c2c684aa5c22;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/PPI/Route.hh b/senf/PPI/Route.hh index fb29305..9838826 100644 --- a/senf/PPI/Route.hh +++ b/senf/PPI/Route.hh @@ -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;