42 virtual bool send(
const void*
data,
size_t len, uint64_t timeout_ns) = 0;
65 virtual void release(
size_t message_size) = 0;
Abstract interface for IPC client.
virtual bool send(const void *data, size_t len, uint64_t timeout_ns)=0
Send a message to the server.
virtual bool connect()=0
Connect to the server.
virtual void close()=0
Close the connection.
IpcClient & operator=(IpcClient &&)=delete
IpcClient(const IpcClient &)=delete
virtual std::span< const uint8_t > receive(uint64_t timeout_ns)=0
Receive a message from the server (zero-copy for shared memory)
virtual ~IpcClient()=default
virtual void release(size_t message_size)=0
Release the previously received message.
IpcClient(IpcClient &&)=delete
static std::unique_ptr< IpcClient > create_socket(const std::string &socket_path)
IpcClient & operator=(const IpcClient &)=delete
static std::unique_ptr< IpcClient > create_shm(const std::string &base_name)
const std::vector< MemoryValue > data
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept