|
VLink
2.0.0
A high-performance communication middleware
|
Reference-counted in-process payload type used by the intra:// backend.
More...
Go to the source code of this file.
Classes | |
| struct | vlink::IntraDataType |
| Polymorphic base of every in-process payload container. More... | |
Namespaces | |
| vlink | |
Macros | |
| #define | VLINK_INTRA_DATA_DECLARE(target_type, declare_name) |
| Emits a typed in-process container pair around an arbitrary message type. More... | |
Typedefs | |
| using | vlink::IntraData = std::shared_ptr< IntraDataType > |
Shared-ownership handle for an IntraDataType payload. More... | |
Reference-counted in-process payload type used by the intra:// backend.
This is an internal implementation header used by the public publisher and subscriber templates when they target the intra:// transport; it should not be included directly by application code. IntraData is the shared-ownership vehicle that lets a co-located publisher and subscriber exchange a message by pointer instead of going through a full serialise / deserialise round trip.
VLINK_INTRA_DATA_DECLARE add:value member carrying the user payload.operator<< and operator>> for on-demand serialisation when the message has to be replicated across a non-intra boundary (e.g. recording).get_serialized_size(), get_serialized_type() and get_schema_type() helpers shared with the public Serializer API.intra:// transport understands IntraData; calling write(IntraData) on any other publisher backend logs a warning and returns false. | #define VLINK_INTRA_DATA_DECLARE | ( | target_type, | |
| declare_name | |||
| ) |
Emits a typed in-process container pair around an arbitrary message type.
Expansion produces:
declare_name##Type – a concrete IntraDataType subclass with:target_type value member.static constexpr kValueType matching Serializer::get_type_of<>.operator<<(const Bytes&) deserialising into value.operator>>(Bytes&) serialising from value.get_serialized_size(), get_serialized_type() and get_schema_type() helpers consistent with the public serializer API.static_assert ensuring target_type is a supported serializer type.declare_name – a std::shared_ptr<declare_name##Type> wrapper with constructors that accept the underlying shared_ptr and a static create() factory that allocates a fresh instance.The static get_serialized_type() returns an empty string for raw Bytes instantiations by design; this matches the contract documented in serializer.h.
| target_type | User message type, must satisfy Serializer::is_supported. |
| declare_name | Identifier prefix for the generated container types. |