|
VLink 2.0.0
A high-performance communication middleware
|
命名空间 | |
| namespace | Exception |
| Container namespace for all VLink exception types. | |
| namespace | format |
Lightweight header-only {} placeholder formatter. | |
| namespace | Helpers |
| Stateless string, number, hash and formatting helper functions. | |
| namespace | NameDetector |
| Compile-time type-name and enum-name detection utilities. | |
| namespace | Traits |
| Collection of compile-time type-trait helpers for VLink. | |
| namespace | Utils |
| Platform-agnostic system utility functions. | |
| namespace | QosProfile |
Pre-built Qos constant instances covering common communication patterns. | |
| namespace | Status |
| DDS-compatible status type enumeration, base class, and type-safe cast utilities. | |
| namespace | Serializer |
| namespace | zerocopy |
类 | |
| class | Bytes |
| Versatile 128-byte byte buffer with SBO, five ownership modes and compression helpers. 更多... | |
| class | CachedTimestamp |
| Cached, thread-safe formatted timestamp generator. 更多... | |
| class | CpuProfiler |
| Tracks CPU active time as a percentage of total elapsed wall-clock time. 更多... | |
| class | CpuProfilerGuard |
RAII scope guard that brackets a CpuProfiler active interval. 更多... | |
| class | DeadlineTimer |
| Atomic absolute-deadline timer for lock-free timeout detection. 更多... | |
| class | ElapsedTimer |
| Atomic, high-resolution elapsed-time timer. 更多... | |
| class | FastStream |
High-performance std::ostream with an embedded resizable string buffer. 更多... | |
| class | GraphTask |
| Node in a directed acyclic task graph supporting condition branching and parallel execution. 更多... | |
| class | Logger |
| Global singleton logger supporting three output styles and configurable log levels. 更多... | |
| class | LoggerPluginInterface |
| Pure-virtual interface for a custom logger backend loaded as a dynamic plugin. 更多... | |
| class | MessageLoop |
| Single-threaded serial task dispatcher with integrated timer support. 更多... | |
| class | MpmcQueue |
| Fixed-capacity, lock-free, cache-line-aligned MPMC ring buffer. 更多... | |
| class | MultiLoop |
Multi-threaded variant of MessageLoop running tasks on a worker-thread pool. 更多... | |
| class | ObjectPool |
Thread-safe object pool for type T with RAII acquisition and configurable reset policy. 更多... | |
| class | Plugin |
| Type-safe dynamic plugin loader with version verification and lifecycle management. 更多... | |
| class | Process |
| Cross-platform child process with async I/O and state notification. 更多... | |
| struct | Schedule |
| Non-constructible utility struct providing task scheduling primitives. 更多... | |
| class | Semaphore |
| In-process counting semaphore with optional acquire timeout. 更多... | |
| class | SpinLock |
| Adaptive, cache-line-aligned spin lock. 更多... | |
| class | SpinLockGuard |
RAII guard that acquires a SpinLock on construction and releases it on destruction. 更多... | |
| class | SysSemaphore |
| Named cross-process counting semaphore. 更多... | |
| class | SysSharemem |
| Named cross-process shared memory backed by the OS IPC layer. 更多... | |
| class | ThreadPool |
| Fixed-size thread pool for parallel task execution. 更多... | |
| class | Timer |
| Event-loop-driven repeating or one-shot timer. 更多... | |
| class | Uint128 |
| 128-bit unsigned integer stored as two 64-bit halves with full operator support. 更多... | |
| class | WheelTimer |
| O(1) hash-wheel timer backed by a fixed-size circular slot array. 更多... | |
| class | Client |
| Type-safe client for the VLink method (RPC) communication model. 更多... | |
| class | SecurityClient |
Convenience alias for Client with message security enabled. 更多... | |
| class | BagReader |
| Abstract VLink bag file player with time control, seeking, and integrity tools. 更多... | |
| class | BagReaderPluginInterface |
| Abstract plugin interface for custom bag reading, URL conversion, and message relay. 更多... | |
| class | BagReaderProcessor |
| Time-sorted message relay that buffers and orders messages before delivery. 更多... | |
| class | BagWriter |
Abstract asynchronous message recorder backed by a MessageLoop event queue. 更多... | |
| class | DatabaseReader |
| Concrete SQLite-backed bag file player. 更多... | |
| class | DatabaseWriter |
| Concrete SQLite-backed bag file recorder with transactional write caching. 更多... | |
| class | DiscoveryReporter |
Background MessageLoop that reports active nodes to the discovery subsystem. 更多... | |
| class | DiscoveryViewer |
Background MessageLoop that aggregates live VLink endpoint discovery data. 更多... | |
| class | DynamicData |
| Runtime-typed container that serializes any VLink-compatible message type. 更多... | |
| class | McapReader |
| Concrete MCAP-format bag file player. 更多... | |
| class | McapWriter |
| Concrete MCAP-format bag file recorder. 更多... | |
| struct | WebChannel |
| Describes a frontend-advertised publish channel. 更多... | |
| struct | VlinkPublish |
| VLink publish destination resolved for an inbound frontend message. 更多... | |
| class | MessageConvertPlugin |
| Abstract interface for VLink/webviz message conversion plugins supporting multiple visualization backends. 更多... | |
| struct | Qos |
| Aggregate Quality of Service policy for a VLink communication endpoint. 更多... | |
| class | RunablePluginInterface |
Abstract plugin interface that provides its own MessageLoop event thread. 更多... | |
| class | SchemaPluginBase |
| Default mixed-schema plugin base class for Protobuf and FlatBuffers. 更多... | |
| class | SchemaPluginInterface |
| Abstract interface for runtime schema lookup and dynamic object creation. 更多... | |
| class | SchemaPluginManager |
Singleton manager that owns and provides access to the SchemaPluginInterface. 更多... | |
| class | Security |
| Thread-safe AES-128-CBC encryption/decryption utility with custom callback support. 更多... | |
| class | TerminalStream |
| Singleton buffered stdout writer with thread-safety and TTY detection. 更多... | |
| class | UrlRemap |
| Loads a JSON remap file and translates VLink URL strings at runtime. 更多... | |
| class | ProxyAPI |
| Client-side proxy monitoring and control API backed by a MessageLoop. 更多... | |
| class | ProxyServer |
| VLink proxy server daemon backed by a MessageLoop. 更多... | |
| class | Getter |
| Type-safe field reader for the VLink field communication model. 更多... | |
| class | SecurityGetter |
Convenience alias for Getter with message security enabled. 更多... | |
| class | AbstractObject |
Per-topic registry of NodeImpl instances and their associated callbacks. 更多... | |
| class | AbstractFactory |
Topic-keyed factory that creates and caches AbstractObject instances. 更多... | |
| class | AckManager |
| Thread-safe request/acknowledgement synchronisation manager. 更多... | |
| class | CalculateSample |
| Thread-safe, per-GUID cumulative sample loss counter. 更多... | |
| class | ClientImpl |
| Transport-agnostic base for client (RPC caller) node implementations. 更多... | |
| struct | Conf |
| Abstract base class for VLink transport configuration objects. 更多... | |
| struct | ConfPluginInterface |
Pure-virtual plugin interface for external transport Conf factories. 更多... | |
| class | GetterImpl |
| Transport-agnostic base for getter (field reader) node implementations. 更多... | |
| struct | IntraDataType |
| Polymorphic base for all typed in-process message containers. 更多... | |
| class | AbstractNode |
| Minimal interface for accessing the underlying native transport handle. 更多... | |
| class | NodeImpl |
| Abstract base for all VLink transport backend node implementations. 更多... | |
| class | PublisherImpl |
| Transport-agnostic base for publisher node implementations. 更多... | |
| class | ServerImpl |
| Transport-agnostic base for server (RPC responder) node implementations. 更多... | |
| class | SetterImpl |
| Transport-agnostic base for setter (field writer) node implementations. 更多... | |
| struct | SslOptions |
| Aggregate of SSL/TLS settings for transport-layer encryption. 更多... | |
| class | SubscriberImpl |
| Transport-agnostic base for subscriber node implementations. 更多... | |
| struct | Timeout |
| Compile-time timeout constants used by blocking wait methods. 更多... | |
| struct | SampleLostInfo |
| Cumulative sample delivery statistics for a subscriber or getter. 更多... | |
| struct | SchemaData |
| Carries one serialized schema blob for runtime registration or embedding. 更多... | |
| struct | Version |
| Semantic version number with comparison and string conversion utilities. 更多... | |
| struct | Protocol |
Parsed URL components used to select and configure a transport Conf. 更多... | |
| struct | Url |
URL-based Conf dispatcher that routes to the correct transport backend. 更多... | |
| class | UrlParser |
| Immutable RFC-3986 URL parser. 更多... | |
| class | Node |
| Transport-agnostic CRTP base for all VLink communication nodes. 更多... | |
| class | Publisher |
| Type-safe publisher for the VLink event communication model. 更多... | |
| class | SecurityPublisher |
Convenience alias for Publisher with message security enabled. 更多... | |
| class | Server |
| Type-safe server for the VLink method (RPC) communication model. 更多... | |
| class | SecurityServer |
Convenience alias for Server with message security enabled. 更多... | |
| class | Setter |
| Type-safe field writer for the VLink field communication model. 更多... | |
| class | SecuritySetter |
Convenience alias for Setter with message security enabled. 更多... | |
| class | Subscriber |
| Type-safe subscriber for the VLink event communication model. 更多... | |
| class | SecuritySubscriber |
Convenience alias for Subscriber with message security enabled. 更多... | |
类型定义 | |
| using | ConditionVariable = std::condition_variable |
| using | ConditionVariableAny = std::condition_variable_any |
| using | condition_variable = ConditionVariable |
| using | condition_variable_any = ConditionVariableAny |
| using | GraphTaskPtr = std::shared_ptr<GraphTask> |
| using | uint128_t = Uint128 |
| using | IntraData = std::shared_ptr<IntraDataType> |
Shared-ownership handle for an IntraDataType payload. | |
枚举 | |
| enum class | ConvertTarget : uint8_t { kFoxglove = 0 , kRerun = 1 } |
| Identifies the visualization backend that the plugin is converting for. 更多... | |
| enum | ImplType : uint8_t { kUnknownImplType = 0 , kServer = 16 , kClient = 32 , kPublisher = 1 , kSubscriber = 2 , kSetter = 4 , kGetter = 8 } |
| Bitmask identifying the role of a VLink node implementation. 更多... | |
| enum class | TransportType : uint8_t { kUnknown = 0 , kIntra = 1 , kShm = 2 , kShm2 = 3 , kZenoh = 4 , kDds = 5 , kDdsc = 6 , kDdsr = 7 , kDdst = 8 , kSomeip = 9 , kMqtt = 10 , kFdbus = 11 , kQnx = 12 } |
| Enumeration of all supported transport backends. 更多... | |
| enum class | InitType : uint8_t { kWithoutInit = 0 , kWithInit = 1 } |
| Controls whether a node is initialised immediately at construction. 更多... | |
| enum class | SecurityType : uint8_t { kWithoutSecurity = 0 , kWithSecurity = 1 } |
| Controls whether a node uses encrypted/authenticated transport. 更多... | |
| enum class | ActionType : uint8_t { kUnknownAction = 0 , kClientRequest = 1 , kClientResponse = 2 , kServerRequest = 3 , kServerResponse = 4 , kPublish = 5 , kSubscribe = 6 , kSet = 7 , kGet = 8 } |
| Identifies the type of message action for recording purposes. 更多... | |
| enum class | SchemaType : uint8_t { kUnknown = 0 , kRaw = 1 , kZeroCopy = 2 , kProtobuf = 3 , kFlatbuffers = 4 } |
| Coarse runtime schema family used by discovery, bag metadata, and proxy routing. 更多... | |
| using vlink::ConditionVariable = std::condition_variable |
| using vlink::ConditionVariableAny = std::condition_variable_any |
| using vlink::GraphTaskPtr = std::shared_ptr<GraphTask> |
| using vlink::IntraData = std::shared_ptr<IntraDataType> |
Shared-ownership handle for an IntraDataType payload.
Passed between the publisher and subscriber in the same process by reference counting, avoiding any serialisation or data copy. Downcast to the concrete declareNameType via std::static_pointer_cast<> or use the typed declare_name wrapper generated by VLINK_INTRA_DATA_DECLARE.
| using vlink::uint128_t = Uint128 |
|
strong |
Identifies the type of message action for recording purposes.
Used by NodeImpl::try_record() to tag each captured message with its originating operation so that the bag writer can reconstruct message flow during playback.
| 枚举值 | |
|---|---|
| kUnknownAction | Action type not classified. |
| kClientRequest | RPC request sent by a Client node. |
| kClientResponse | RPC response received by a Client node. |
| kServerRequest | RPC request received by a Server node. |
| kServerResponse | RPC response sent by a Server node. |
| kPublish | Message published by a Publisher node. |
| kSubscribe | Message received by a Subscriber node. |
| kSet | Field value written by a Setter node. |
| kGet | Field value read by a Getter node. |
|
strong |
Identifies the visualization backend that the plugin is converting for.
Passed to can_convert(), get_schema_info(), and convert() so that a single plugin implementation can produce the appropriate output format for each backend.
| 枚举值 | |
|---|---|
| kFoxglove | Foxglove Studio (WebSocket + FlatBuffers/Protobuf) |
| kRerun | Rerun Viewer (gRPC + Arrow IPC, plugin outputs JSON) |
| enum vlink::ImplType : uint8_t |
Bitmask identifying the role of a VLink node implementation.
Values can be combined with bitwise-OR to represent compound roles, e.g. (kPublisher | kSubscriber) for a topic that has both publisher and subscriber endpoints. The VLINK_ALLOW_IMPL_TYPE macro uses these combined flags to restrict which node types a transport Conf may serve.
|
strong |
Controls whether a node is initialised immediately at construction.
Pass kWithoutInit to defer initialisation until init() is called explicitly, allowing properties (e.g. DDS QoS, IP binding) to be set before the underlying transport is started.
| 枚举值 | |
|---|---|
| kWithoutInit | Defer initialisation; call init() manually. |
| kWithInit | Initialise immediately in the constructor. |
|
strong |
Coarse runtime schema family used by discovery, bag metadata, and proxy routing.
ser_type stores the concrete wire/type identifier (for example a protobuf full name or a FlatBuffers table name), while SchemaType captures only the high-level runtime decoding category so tools can choose the correct decode stack without maintaining a second parallel enum.
| 枚举值 | |
|---|---|
| kUnknown | Decode category is not known. |
| kRaw | Treat the payload as opaque/raw bytes. |
| kZeroCopy | Decode using VLink zero-copy message structs. |
| kProtobuf | Decode using the Protocol Buffers stack. |
| kFlatbuffers | Decode using the FlatBuffers stack. |
|
strong |
Controls whether a node uses encrypted/authenticated transport.
Selects the security variant at compile time via the template parameter of Publisher<T, SecurityType>, Subscriber<T, SecurityType>, etc. kWithSecurity enables AES-128-CBC encryption on the serialised message payload. Supported on all transports except intra:// and dds:// with CDR serialisation, which trigger a fatal log if security is enabled.
| 枚举值 | |
|---|---|
| kWithoutSecurity | Plain (unauthenticated) transport. |
| kWithSecurity | Encrypted and authenticated transport. |
|
strong |
Enumeration of all supported transport backends.
Determined at URL construction time from the transport prefix string. Concrete transport Conf classes use this enum to identify themselves.