VLink  2.0.0
A high-performance communication middleware
types.h File Reference

Core enumerations and small value types shared by the entire VLink implementation layer. More...

#include <chrono>
#include <cstdint>
#include <iostream>
#include <string>
#include <string_view>
#include "../base/bytes.h"
#include "../base/functional.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

struct  vlink::Frame
 One recorded or replayed message as it flows through the bag pipeline. More...
 
struct  vlink::Timeout
 Compile-time timeout constants used by the public blocking wait helpers. More...
 
struct  vlink::SampleLostInfo
 Aggregate of cumulative delivered / lost sample counts. More...
 
struct  vlink::SchemaData
 Wire-format-neutral wrapper around one serialised schema blob. More...
 
struct  vlink::Version
 Semantic version number with comparison and string-conversion helpers. More...
 

Namespaces

 

Typedefs

using vlink::FrameCallback = MoveFunction< void(const Frame &)>
 Frame sink reused by every bag frame interface. More...
 

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 every transport backend recognised by VLink. More...
 
enum class  vlink::InitType : uint8_t { vlink::kWithoutInit = 0 , vlink::kWithInit = 1 }
 Selects between immediate and deferred node initialisation. More...
 
enum class  vlink::SecurityType : uint8_t { vlink::kWithoutSecurity = 0 , vlink::kWithSecurity = 1 }
 Compile-time selector for the per-node message security variant. 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
}
 Labels for messages captured by the recording infrastructure. 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 enumerations and small value types shared by the entire VLink implementation layer.

This is an internal implementation header consumed by every node template (Publisher, Subscriber, Client, Server, Setter, Getter), every Conf subclass and every NodeImpl backend. It is also re-exported to applications via vlink.h so that user code can refer to enums such as SecurityType when instantiating the public node templates.

ImplType
Role bitmask consumed by VLINK_ALLOW_IMPL_TYPE to restrict which node categories a given Conf can produce.
Value Hex Meaning
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.
TransportType
Resolved at URL construction time from the URI scheme.
Value URL prefix Backend
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 through vsomeip.
kMqtt mqtt:// MQTT publish / subscribe.
kFdbus fdbus:// FDBus IPC.
kQnx qnx:// QNX IPC (QNX only).
InitType
Controls whether the public Node<> template runs init() immediately or defers it so the user can adjust properties beforehand.
Value Meaning
kWithoutInit Defer initialisation; call init() manually.
kWithInit Initialise immediately in the constructor.
Cross-references
  • ImplType – chosen at the NodeImpl base level; surfaced via NodeImpl::impl_type.
  • SecurityType – second template parameter on every public node type (Publisher<T, SecurityType>, Subscriber<T, SecurityType>, ...).
  • InitType – argument to the public node constructors that toggles immediate versus deferred initialisation.