259 virtual bool init(
const std::string& config) = 0;
300 std::string& encoding, std::string& schema_encoding,
301 std::string& schema_data) = 0;
Versatile byte buffer with small-buffer optimisation, ownership semantics and compression.
Versatile 128-byte byte buffer with SBO, five ownership modes and compression helpers.
Definition bytes.h:113
Abstract interface for VLink/webviz message conversion plugins supporting multiple visualization back...
Definition message_convert_plugin.h:239
virtual ~MessageConvertPlugin()=default
virtual bool can_convert(const std::string &vlink_ser, ConvertTarget target)=0
Tests whether this plugin can handle the given VLink serialisation type for the specified target back...
virtual bool convert(const std::string &vlink_ser, const Bytes &raw, ConvertTarget target, Bytes &payload)=0
Converts a raw VLink message to a backend-specific payload.
MessageConvertPlugin()=default
virtual bool init(const std::string &config)=0
Initialises the plugin with an optional configuration string.
virtual bool get_publish_info(const WebChannel &channel, ConvertTarget target, VlinkPublish &publish_info)
Resolves the destination VLink publish URL and serialisation type for an inbound frontend channel.
Definition message_convert_plugin.h:376
virtual bool get_schema_info(const std::string &vlink_ser, ConvertTarget target, std::string &type_name, std::string &encoding, std::string &schema_encoding, std::string &schema_data)=0
Returns schema/type metadata for the given VLink type and target backend.
virtual int64_t extract_timestamp(const std::string &vlink_ser, const Bytes &raw, ConvertTarget target)
Extracts a message-level timestamp from the raw message, in nanoseconds.
Definition message_convert_plugin.h:345
virtual bool convert_frontend(const WebChannel &channel, const Bytes &raw, ConvertTarget target, Bytes &payload)
Converts a frontend-published payload into a raw VLink message payload.
Definition message_convert_plugin.h:394
virtual bool can_convert_frontend(const WebChannel &channel, ConvertTarget target)
Tests whether this plugin handles a frontend-published channel.
Definition message_convert_plugin.h:360
#define VLINK_DISALLOW_COPY_AND_ASSIGN(classname)
Deletes the copy constructor and copy-assignment operator of classname.
Definition macros.h:184
ConvertTarget
Identifies the visualization backend that the plugin is converting for.
Definition message_convert_plugin.h:194
@ kRerun
Rerun Viewer (gRPC + Arrow IPC, plugin outputs JSON).
Definition message_convert_plugin.h:196
@ kFoxglove
Foxglove Studio (WebSocket + FlatBuffers/Protobuf).
Definition message_convert_plugin.h:195
SchemaType
Coarse runtime schema family used by discovery, bag metadata, and proxy routing.
Definition types.h:184
@ kUnknown
Decode category is not known.
Definition types.h:185
Type-safe dynamic plugin loader with version checking and lifecycle management.
#define VLINK_PLUGIN_REGISTER(InterfaceType)
Macro to register a plugin, automatically deriving its ID from the interface type name.
Definition plugin.h:343
VLink publish destination resolved for an inbound frontend message.
Definition message_convert_plugin.h:219
std::string url
Destination VLink URL (e.g. "dds://vehicle/cmd").
Definition message_convert_plugin.h:220
std::string serialization
Destination VLink serialisation type.
Definition message_convert_plugin.h:221
SchemaType schema_type
Coarse backend schema family for the published payload.
Definition message_convert_plugin.h:222
Describes a frontend-advertised publish channel.
Definition message_convert_plugin.h:207
std::string schema_encoding
Encoding of schema (if provided by the client).
Definition message_convert_plugin.h:211
std::string schema_name
Frontend schema/type name.
Definition message_convert_plugin.h:210
std::string topic
Frontend channel topic as advertised by the client.
Definition message_convert_plugin.h:208
std::string schema
Raw schema string/binary payload (transport-specific).
Definition message_convert_plugin.h:212
std::string encoding
Frontend payload encoding (e.g. json/protobuf/flatbuffers).
Definition message_convert_plugin.h:209
Core type definitions shared across all VLink node implementations.