X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FConnectors.hh;h=852e5e61473b885f4bfe5eb306f03bdb316db50c;hb=93d9568d448749dc187e7622b733a4a3caa319df;hp=bb0724e20cd3948399952ab5725150870c4b9633;hpb=45d5b4cfa79eee57d5de832960cdac2c6a114f71;p=senf.git diff --git a/senf/PPI/Connectors.hh b/senf/PPI/Connectors.hh index bb0724e..852e5e6 100644 --- a/senf/PPI/Connectors.hh +++ b/senf/PPI/Connectors.hh @@ -39,7 +39,7 @@ #include "ModuleManager.hh" //#include "Connectors.mpp" -///////////////////////////////hh.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { namespace ppi { @@ -187,11 +187,12 @@ namespace connector { void unregisterConnector(); + virtual void v_disconnected(); + virtual void v_connected(); + private: virtual std::type_info const & packetTypeID(); - virtual void v_disconnected() const; - void setModule(module::Module & module); Connector * peer_; @@ -251,6 +252,9 @@ namespace connector { void emit(); + virtual void v_disconnected(); + virtual void v_connected(); + private: virtual void v_init(); @@ -269,6 +273,8 @@ namespace connector { void registerRoute(ForwardingRoute & route); void unregisterRoute(ForwardingRoute & route); + ActiveConnector * peer_; + typedef ppi::detail::Callback<>::type Callback; Callback callback_; @@ -331,6 +337,9 @@ namespace connector { protected: ActiveConnector(); + virtual void v_disconnected(); + virtual void v_connected(); + private: virtual void v_init(); @@ -342,6 +351,8 @@ namespace connector { void registerRoute(ForwardingRoute & route); void unregisterRoute(ForwardingRoute & route); + PassiveConnector * peer_; + Callback throttleCallback_; Callback unthrottleCallback_; @@ -406,6 +417,9 @@ namespace connector { protected: InputConnector(); + virtual void v_disconnected(); + virtual void v_connected(); + private: void enqueue(Packet const & p); @@ -413,6 +427,7 @@ namespace connector { virtual void v_enqueueEvent(); virtual void v_dequeueEvent(); + OutputConnector * peer_; Queue queue_; friend class OutputConnector; @@ -436,6 +451,12 @@ namespace connector { protected: OutputConnector(); + + virtual void v_disconnected(); + virtual void v_connected(); + + private: + InputConnector * peer_; }; /** \brief Combination of PassiveConnector and InputConnector @@ -465,15 +486,18 @@ namespace connector { void qdisc(QueueingDiscipline::None_t); ///< Disable queueing discipline - protected: GenericPassiveInput(); + virtual void v_disconnected(); + virtual void v_connected(); + private: void v_enqueueEvent(); void v_dequeueEvent(); void v_unthrottleEvent(); + GenericActiveOutput * peer_; boost::scoped_ptr qdisc_; }; @@ -495,6 +519,11 @@ namespace connector { protected: GenericPassiveOutput(); + virtual void v_disconnected(); + virtual void v_connected(); + + private: + GenericActiveInput * peer_; }; /** \brief Combination of ActiveConnector and InputConnector @@ -513,8 +542,13 @@ namespace connector { protected: GenericActiveInput(); + virtual void v_disconnected(); + virtual void v_connected(); + private: void v_requestEvent(); + + GenericPassiveOutput * peer_; }; /** \brief Combination of ActiveConnector and OutputConnector @@ -533,8 +567,14 @@ namespace connector { protected: GenericActiveOutput(); + virtual void v_disconnected(); + virtual void v_connected(); + + private: + GenericPassiveInput * peer_; }; + #ifndef DOXYGEN # define TypedConnector_Input read @@ -630,8 +670,8 @@ namespace connector { class ActiveOutput : public GenericActiveOutput { public: - operator()(PacketType packet); ///< Send out a packet - void write(PacketType packet); ///< Alias for operator() + void operator()(PacketType packet); ///< Send out a packet + void write(PacketType packet); ///< Alias for operator() }; /** \brief Connector passively providing packets @@ -650,15 +690,15 @@ namespace connector { class PassiveOutput : public GenericPassiveOutput { public: - operator()(PacketType packet); ///< Send out a packet - void write(PacketType packet); ///< Alias for operator() + void operator()(PacketType packet); ///< Send out a packet + void write(PacketType packet); ///< Alias for operator() }; #endif }}} -///////////////////////////////hh.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #include "Connectors.cci" #include "Connectors.ct" #include "Connectors.cti"