VLink 2.0.0
A high-performance communication middleware
载入中...
搜索中...
未找到
vlink 命名空间参考

命名空间

namespace  Exception
namespace  format
namespace  Helpers
namespace  NameDetector
namespace  Traits
namespace  Utils
namespace  QosProfile
namespace  Status
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. 更多...

类型定义说明

◆ condition_variable

◆ condition_variable_any

◆ ConditionVariable

using vlink::ConditionVariable = std::condition_variable

◆ ConditionVariableAny

using vlink::ConditionVariableAny = std::condition_variable_any

◆ GraphTaskPtr

using vlink::GraphTaskPtr = std::shared_ptr<GraphTask>

◆ IntraData

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.

◆ uint128_t

枚举类型说明

◆ ActionType

enum class vlink::ActionType : uint8_t
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.

◆ ConvertTarget

enum class vlink::ConvertTarget : uint8_t
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)

◆ ImplType

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.

枚举值
kUnknownImplType 

Type not yet determined.

kServer 

Method server (RPC responder).

kClient 

Method client (RPC caller).

kPublisher 

Event publisher (N-to-N broadcast).

kSubscriber 

Event subscriber (receive broadcast).

kSetter 

Field setter (update latest value).

kGetter 

Field getter (retrieve latest value).

◆ InitType

enum class vlink::InitType : uint8_t
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.

◆ SchemaType

enum class vlink::SchemaType : uint8_t
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.

◆ SecurityType

enum class vlink::SecurityType : uint8_t
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.

◆ TransportType

enum class vlink::TransportType : uint8_t
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.

枚举值
kUnknown 

Unknown or unsupported transport.

kIntra 

In-process queue (intra://).

kShm 

Iceoryx shared memory (shm://).

kShm2 

Iceoryx2 shared memory (shm2://).

kZenoh 

Zenoh publish/subscribe (zenoh://).

kDds 

Fast-DDS RTPS (dds://).

kDdsc 

CycloneDDS (ddsc://).

kDdsr 

RTI DDS (ddsr://).

kDdst 

TravoDDS (ddst://).

kSomeip 

SOME/IP via vsomeip (someip://).

kMqtt 

MQTT (mqtt://).

kFdbus 

FDBus IPC (fdbus://).

kQnx 

QNX IPC (qnx://; QNX only).