Functions | |
| SENF_CONSOLE_REGISTER_ENUM_MEMBER (Connector, TraceState,(NO_TRACING)(TRACE_IDS)(TRACE_CONTENTS)) | |
Connector classes.
A connector has three independent properties
Active connectors are activated from within the module, passive connectors are signaled by the external framework. Input connectors receive packets, output connectors send packets.
All passive connectors call some onRequest callback whenever I/O needs to be performed. All input connectors possess a packet queue.
We therefore have 4 connector types each of which is parameterized by the type of packet traversing the connector:
Connectors are declared as module data members and are then externally connected to other modules.
The connectors each take an optional template argument. If this argument is specified, it must be the type of packet expected or sent on this connector. If it is not specified, packets will be passed using the generic Packet handle.
A Jack is a packet type aware and possibly packet type converting reference to an arbitrary
connector of the same type. Jacks are used in groups to indirectly declare the input's and
output's
The jacks are initialized by passing an arbitrary compatible connector to the jack
constructor. A connector is compatible, if
\li It has the same input/output active/passive specification
\li Either the Jack or the Connector are generic (senf::Packet) or Jack and Connector have
the same packet type
Jacks can be used wherever connectors may be used. Jacks may be defined anywhere, not only
in modules. It is however important to ensure that the lifetime of the jack does not exceed
the lifetime of the referenced connector.
\see
senf::ppi::module::Module \n
senf::ppi::connect() \n
\ref ppi_connectors | senf::ppi::connector::SENF_CONSOLE_REGISTER_ENUM_MEMBER | ( | Connector | , |
| TraceState | , | ||
| (NO_TRACING)(TRACE_IDS)(TRACE_CONTENTS) | |||
| ) |