|
VLink
2.0.0
A high-performance communication middleware
|
Single umbrella entry point for the public VLink communication SDK. More...
#include "./client.h"#include "./server.h"#include "./publisher.h"#include "./subscriber.h"#include "./getter.h"#include "./setter.h"#include "./base/message_loop.h"#include "./base/utils.h"Go to the source code of this file.
Single umbrella entry point for the public VLink communication SDK.
Including <vlink/vlink.h> pulls in every primitive of the three VLink communication models together with the MessageLoop dispatcher and a small set of base utilities. Application code should rarely need to include any other VLink header directly; transport-specific configuration types are brought in transitively through the primitive headers.
| Header | Public Primitive(s) | Model | Role |
|---|---|---|---|
client.h | Client<ReqT,RespT> | Method | RPC caller side |
server.h | Server<ReqT,RespT> | Method | RPC handler side |
publisher.h | Publisher<MsgT> | Event | Topic emitter |
subscriber.h | Subscriber<MsgT> | Event | Topic listener |
getter.h | Getter<ValueT> | Field | Latest-value reader |
setter.h | Setter<ValueT> | Field | Latest-value writer |
base/message_loop.h | MessageLoop | Dispatch | Callback re-routing |
base/utils.h | sleep_for, env helpers, etc. | Utilities | General-purpose helpers |
* +----------------------+ +-----------------------+ +-------------------------+ * | EVENT MODEL | | METHOD MODEL | | FIELD MODEL | * | (pub/sub stream) | | (request/response) | | (latest-value sync) | * +----------------------+ +-----------------------+ +-------------------------+ * | Publisher<MsgT> | | Client<Req,Resp> | | Setter<ValueT> | * | | | | | | | | | * | v publish() | | v invoke() | | v set() | * | transport | | transport | | transport | * | | | | | | | (retains latest) | * | v | | v | | | | * | Subscriber<MsgT> | | Server<Req,Resp> | | v | * | on each msg | | handler fills resp | | Getter<ValueT> | * | | | | | | get() / listen() | * | | | v reply | | | * | | | Client receives | | | * +----------------------+ +-----------------------+ +-------------------------+ *
| Prefix | Back-end | Typical use case |
|---|---|---|
intra:// | In-process pub/sub | Same-process zero-copy fan-out |
shm:// | Iceoryx shared memory | Inter-process zero-copy on one host |
shm2:// | Native VLink shared memory | Lightweight inter-process IPC |
dds:// | FastDDS (CDR) | Standards-compliant DDS distribution |
ddsc:// | CycloneDDS | CycloneDDS-based deployments |
ddsr:// | RTI Connext DDS | RTI-licensed deployments |
ddst:// | TravoDDS | TravoDDS-based deployments |
zenoh:// | Eclipse Zenoh | Pub/sub-storage-query, edge to cloud |
someip:// | SOME/IP | Automotive AUTOSAR adaptive services |
fdbus:// | FDBus | Linux/Android service bus |
qnx:// | QNX native IPC | QNX safety-critical platforms |
mqtt:// | MQTT | Telemetry to cloud brokers |
Security* counterpart (SecurityPublisher, SecuritySubscriber, SecurityClient, SecurityServer, SecuritySetter, SecurityGetter) that transparently encrypts and decrypts the payload using a Security::Config aggregate.