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) | |||
) |