X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FConnectors.hh;h=0dfe9cfafaf797b720c54ea15456a4c0e16fd8c7;hb=8ee8742d5bcf846e0ebeb2abf994e371142b7707;hp=e6b8c07af00c67d44e45ce232f4841876907d891;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/PPI/Connectors.hh b/senf/PPI/Connectors.hh index e6b8c07..0dfe9cf 100644 --- a/senf/PPI/Connectors.hh +++ b/senf/PPI/Connectors.hh @@ -30,9 +30,9 @@ #include #include #include -#include "../Utils/safe_bool.hh" -#include "../Utils/Exception.hh" -#include "../Packets/Packets.hh" +#include +#include +#include #include "predecl.hh" #include "detail/Callback.hh" #include "Queueing.hh" @@ -184,9 +184,13 @@ namespace connector { void trace(Packet const & p, char const * label); void throttleTrace(char const * label, char const * type); + + void unregisterConnector(); private: virtual std::type_info const & packetTypeID(); + + virtual void v_disconnected() const; void setModule(module::Module & module); @@ -218,6 +222,8 @@ namespace connector { : public virtual Connector { public: + ~PassiveConnector(); + template void onRequest(Handler handler);///< Register I/O event handler /**< The registered handler will be called, whenever packets @@ -261,6 +267,7 @@ namespace connector { // called by ForwardingRoute to register a new route void registerRoute(ForwardingRoute & route); + void unregisterRoute(ForwardingRoute & route); typedef ppi::detail::Callback<>::type Callback; Callback callback_; @@ -289,6 +296,8 @@ namespace connector { { typedef ppi::detail::Callback<>::type Callback; public: + ~ActiveConnector(); + template void onThrottle(Handler handler); ///< Register throttle notification handler /**< The handler register here will be called, whenever a @@ -331,6 +340,7 @@ namespace connector { // called by ForwardingRoute to register a new route void registerRoute(ForwardingRoute & route); + void unregisterRoute(ForwardingRoute & route); Callback throttleCallback_; Callback unthrottleCallback_;