VLink 2.0.0
A high-performance communication middleware
Loading...
Searching...
No Matches
types.h File Reference

Core type definitions shared across all VLink node implementations. More...

#include <chrono>
#include <cstdint>
#include <iostream>
#include <string>
#include <string_view>
#include "../base/bytes.h"
#include "../base/macros.h"
Include dependency graph for types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

 Compile-time timeout constants used by blocking wait methods. More...
 Cumulative sample delivery statistics for a subscriber or getter. More...
 Carries one serialized schema blob for runtime registration or embedding. More...
 Semantic version number with comparison and string conversion utilities. More...

Namespaces

Enumerations

enum  vlink::ImplType : uint8_t {
  vlink::kUnknownImplType = 0 , vlink::kServer = 16 , vlink::kClient = 32 , vlink::kPublisher = 1 ,
  vlink::kSubscriber = 2 , vlink::kSetter = 4 , vlink::kGetter = 8
}
 Bitmask identifying the role of a VLink node implementation. More...
enum class  vlink::TransportType : uint8_t {
  vlink::kUnknown = 0 , vlink::kIntra = 1 , vlink::kShm = 2 , vlink::kShm2 = 3 ,
  vlink::kZenoh = 4 , vlink::kDds = 5 , vlink::kDdsc = 6 , vlink::kDdsr = 7 ,
  vlink::kDdst = 8 , vlink::kSomeip = 9 , vlink::kMqtt = 10 , vlink::kFdbus = 11 ,
  vlink::kQnx = 12
}
 Enumeration of all supported transport backends. More...
enum class  vlink::InitType : uint8_t { vlink::kWithoutInit = 0 , vlink::kWithInit = 1 }
 Controls whether a node is initialised immediately at construction. More...
enum class  vlink::SecurityType : uint8_t { vlink::kWithoutSecurity = 0 , vlink::kWithSecurity = 1 }
 Controls whether a node uses encrypted/authenticated transport. More...
enum class  vlink::ActionType : uint8_t {
  vlink::kUnknownAction = 0 , vlink::kClientRequest = 1 , vlink::kClientResponse = 2 , vlink::kServerRequest = 3 ,
  vlink::kServerResponse = 4 , vlink::kPublish = 5 , vlink::kSubscribe = 6 , vlink::kSet = 7 ,
  vlink::kGet = 8
}
 Identifies the type of message action for recording purposes. More...
enum class  vlink::SchemaType : uint8_t {
  vlink::kUnknown = 0 , vlink::kRaw = 1 , vlink::kZeroCopy = 2 , vlink::kProtobuf = 3 ,
  vlink::kFlatbuffers = 4
}
 Coarse runtime schema family used by discovery, bag metadata, and proxy routing. More...

Detailed Description

Core type definitions shared across all VLink node implementations.

Defines the fundamental enumerations and plain-data structs that are used throughout the VLink implementation layer. These types are part of the internal ABI between the Node<> template, the transport Conf implementations, and the NodeImpl backend classes.

Node Type Bitmask (ImplType)
ImplType values can be bitwise-OR'd together when querying combined roles:
Value Hex Description
kUnknownImplType 0x00 Type not yet determined.
kPublisher 0x01 Event publisher node.
kSubscriber 0x02 Event subscriber node.
kSetter 0x04 Field setter node.
kGetter 0x08 Field getter node.
kServer 0x10 Method server node.
kClient 0x20 Method client node.
Transport Types (TransportType)
Value URL Prefix Transport
kUnknown (none) Unknown or unsupported.
kIntra intra:// In-process queue (no serialisation).
kShm shm:// Iceoryx shared memory.
kShm2 shm2:// Iceoryx2 shared memory.
kZenoh zenoh:// Zenoh publish/subscribe.
kDds dds:// Fast-DDS RTPS.
kDdsc ddsc:// CycloneDDS.
kDdsr ddsr:// RTI DDS.
kDdst ddst:// TravoDDS.
kSomeip someip:// SOME/IP via vsomeip.
kMqtt mqtt:// MQTT publish/subscribe.
kFdbus fdbus:// FDBus IPC.
kQnx qnx:// QNX IPC (QNX only).