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

Abstract base class for all transport-specific client (RPC caller) implementations. More...

#include <chrono>
#include <memory>
#include "./node_impl.h"
Include dependency graph for client_impl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

 Transport-agnostic base for client (RPC caller) node implementations. More...

Namespaces

Detailed Description

Abstract base class for all transport-specific client (RPC caller) implementations.

ClientImpl is the intermediate layer between the generic Client<Req,Resp> template and a concrete transport backend (e.g. DdsClientImpl, ShmClientImpl). It inherits from NodeImpl and adds method-client semantics:

  • Server-connection detection and notification via detect_connected() / update_connected().
  • Blocking wait for server availability with wait_for_connected().
  • Synchronous (blocking) RPC call via call().
Connection Detection Flow
// Transport detects server appearance or disappearance:
client_impl->update_connected();
// -> compares is_connected() against cached state
// -> notifies the condition variable
// -> fires the ConnectCallback registered via detect_connected()
Note
Concrete subclasses must implement is_connected() and call().