X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FPPI%2FConnectors.hh;h=852e5e61473b885f4bfe5eb306f03bdb316db50c;hb=e3179a2123ad51d0d9eb63834a581145c4f77c92;hp=2ca48bee7a821e387021f292c67ca8bff2e751ed;hpb=a9c9fa201ef6a90e40a7acc690e8c0c12a901736;p=senf.git diff --git a/senf/PPI/Connectors.hh b/senf/PPI/Connectors.hh index 2ca48be..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_; @@ -389,9 +400,8 @@ namespace connector { dequeue a packet from the packet queue. If the connector is active, the connector will request new packets from the connected module. If the packet - request cannot be fulfilled, this is considered to be a - logic error in the module implementation and an - exception is raised. */ + request cannot be fulfilled an in-valid Packet is + returned. */ Packet read(); ///< Alias for operator()() @@ -407,6 +417,9 @@ namespace connector { protected: InputConnector(); + virtual void v_disconnected(); + virtual void v_connected(); + private: void enqueue(Packet const & p); @@ -414,6 +427,7 @@ namespace connector { virtual void v_enqueueEvent(); virtual void v_dequeueEvent(); + OutputConnector * peer_; Queue queue_; friend class OutputConnector; @@ -437,6 +451,12 @@ namespace connector { protected: OutputConnector(); + + virtual void v_disconnected(); + virtual void v_connected(); + + private: + InputConnector * peer_; }; /** \brief Combination of PassiveConnector and InputConnector @@ -466,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_; }; @@ -496,6 +519,11 @@ namespace connector { protected: GenericPassiveOutput(); + virtual void v_disconnected(); + virtual void v_connected(); + + private: + GenericActiveInput * peer_; }; /** \brief Combination of ActiveConnector and InputConnector @@ -514,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 @@ -534,8 +567,14 @@ namespace connector { protected: GenericActiveOutput(); + virtual void v_disconnected(); + virtual void v_connected(); + + private: + GenericPassiveInput * peer_; }; + #ifndef DOXYGEN # define TypedConnector_Input read @@ -631,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 @@ -651,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"