185 [[maybe_unused]] [[nodiscard]]
static constexpr
bool is_supported(
Type type) noexcept;
197 template <
typename T>
207 template <
Type TypeT, typename T>
208 [[nodiscard]] static constexpr
SchemaType get_schema_type() noexcept;
216 template <typename T>
217 [[nodiscard]] static constexpr
SchemaType get_schema_type() noexcept;
231 template <
Type TypeT, typename T>
240 template <typename T>
257 template <
Type TypeT, typename T>
267 template <typename T>
293 template <
Type TypeT, typename T>
304 template <typename T>
329 template <
Type TypeT, typename T, typename LoanCallbackT>
331 LoanCallbackT&& loan);
349 template <
Type TypeT, typename T>
360 template <typename T>
379 template <typename SrcT, typename DesT>
380 static
bool convert(const SrcT& src, DesT& des);
394 template <typename T>
395 [[nodiscard]] static constexpr auto&
deref(const T& t) noexcept;
403 template <typename T>
404 [[nodiscard]] static constexpr
bool is_bytes_type() noexcept;
415 template <typename T>
430 template <typename T>
431 [[nodiscard]] static constexpr
bool is_cdr_type() noexcept;
443 template <typename T>
444 [[nodiscard]] static constexpr
bool is_proto_type() noexcept;
456 template <typename T>
469 template <typename T>
482 template <typename T>
491 template <typename T>
504 template <typename T>
513 template <typename T>
532 template <typename T>
533 [[nodiscard]] static constexpr
bool is_chars_type() noexcept;
547 template <typename T>
561 template <typename T>
574 template <typename T>
581 #include "./internal/serializer-inl.h"
Canonical 128-byte binary payload carrier with inline storage, multi-mode ownership and LZAV compress...
Fixed-size 128-byte buffer holder with SBO, five ownership modes and integrated codecs.
Definition: bytes.h:120
Compile-time codec detection and dispatch for VLink message payloads.
constexpr bool is_proto_ptr_type() noexcept
Reports whether T is a raw pointer to a Protobuf-like message.
Definition: serializer-inl.h:859
constexpr bool is_dynamic_type() noexcept
Reports whether T is a VLink dynamic data type.
Definition: serializer-inl.h:824
constexpr bool is_chars_type() noexcept
Reports whether T is a pointer or array of non-volatile char.
Definition: serializer-inl.h:909
bool deserialize(const Bytes &src, T &des, [[maybe_unused]] TransportType transport)
Definition: serializer-inl.h:615
constexpr Type get_type_of() noexcept
Resolves the codec Type for T at compile time.
Definition: serializer-inl.h:107
Type
Identifies the codec to use for a given C++ message type.
Definition: serializer.h:154
@ kStandardPtrType
Pointer to trivial standard-layout struct (POD pointer).
Definition: serializer.h:169
@ kCustomType
User-defined codec via operator>>/<<.
Definition: serializer.h:158
@ kDynamicType
VLink dynamic typed data.
Definition: serializer.h:157
@ kFlatTableType
FlatBuffers NativeTable (object API).
Definition: serializer.h:162
@ kCharsType
C string serialisation; deserialise as std::string.
Definition: serializer.h:166
@ kUnknownType
Unsupported type; is_supported() returns false.
Definition: serializer.h:155
@ kBytesType
Bytes – raw byte pass-through.
Definition: serializer.h:156
@ kProtoPtrType
Protobuf-like raw pointer; caller-owned.
Definition: serializer.h:161
@ kStandardType
Trivial standard-layout struct (POD value).
Definition: serializer.h:168
@ kStringType
std::string payload bytes; no text-encoding validation.
Definition: serializer.h:165
@ kFlatBuilderType
FlatBuffers builder (fbb_ + Finish()).
Definition: serializer.h:164
@ kStreamType
Stream-serialisable via std::stringstream.
Definition: serializer.h:167
@ kProtoType
Protobuf-like value.
Definition: serializer.h:160
@ kCdrType
FastDDS CDR via serialize(Cdr&) / deserialize(Cdr&).
Definition: serializer.h:159
@ kFlatPtrType
Pointer to flatbuffers::Table (zero-copy view).
Definition: serializer.h:163
constexpr auto & deref(const T &t) noexcept
Dereferences a value, unwrapping std::shared_ptr when present.
Definition: serializer-inl.h:810
constexpr bool is_supported(Type type) noexcept
Reports whether type identifies a usable codec.
Definition: serializer-inl.h:90
constexpr bool is_custom_type() noexcept
Reports whether T provides a custom operator>>/<< codec.
Definition: serializer-inl.h:897
size_t get_serialized_size(const T &src) noexcept
Returns a serialised-size hint for src with explicit codec tag.
Definition: serializer-inl.h:263
bool serialize_to_transport(const T &src, Bytes &des, TransportType transport, bool use_loan, LoanCallbackT &&loan)
Serialises into transport-provided storage when available.
Definition: serializer-inl.h:560
bool convert(const SrcT &src, DesT &des)
Converts between two types where at least one side is Bytes.
Definition: serializer-inl.h:796
constexpr bool is_cdr_type() noexcept
Reports whether T is a FastDDS CDR-serialisable type.
Definition: serializer-inl.h:830
constexpr bool is_proto_type() noexcept
Reports whether T is a Protobuf-like message value type.
Definition: serializer-inl.h:849
std::string get_serialized_type() noexcept
Returns the serialised type-name string for T with explicit codec tag.
Definition: serializer-inl.h:190
bool serialize(const T &src, Bytes &des, [[maybe_unused]] TransportType transport, [[maybe_unused]] uint8_t offset)
Definition: serializer-inl.h:339
constexpr bool is_flat_ptr_type() noexcept
Reports whether T is a raw pointer to a flatbuffers::Table.
Definition: serializer-inl.h:888
constexpr bool is_flat_builder_type() noexcept
Reports whether T is a FlatBuffers builder type.
Definition: serializer-inl.h:879
constexpr bool is_standard_ptr_type() noexcept
Reports whether T is a pointer to a trivial standard-layout type.
Definition: serializer-inl.h:930
constexpr bool is_standard_type() noexcept
Reports whether T is a trivial standard-layout value (POD).
Definition: serializer-inl.h:924
constexpr bool is_flat_table_type() noexcept
Reports whether T is a FlatBuffers NativeTable type.
Definition: serializer-inl.h:869
constexpr bool is_string_type() noexcept
Reports whether T is std::string after unwrapping shared_ptr.
Definition: serializer-inl.h:903
constexpr bool is_bytes_type() noexcept
Reports whether T is exactly Bytes.
Definition: serializer-inl.h:819
constexpr bool is_stream_type() noexcept
Reports whether T supports bidirectional std::stringstream streaming.
Definition: serializer-inl.h:918
SchemaType
Coarse runtime schema family used by discovery, bag metadata and proxy routing.
Definition: types.h:203
TransportType
Enumeration of every transport backend recognised by VLink.
Definition: types.h:126
Core enumerations and small value types shared by the entire VLink implementation layer.