|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
IPC client implementation using Unix domain sockets. More...
#include <socket_client.hpp>
Public Member Functions | |
| SocketClient (std::string socket_path) | |
| ~SocketClient () override | |
| SocketClient (const SocketClient &)=delete | |
| SocketClient & | operator= (const SocketClient &)=delete |
| SocketClient (SocketClient &&)=delete | |
| SocketClient & | operator= (SocketClient &&)=delete |
| bool | connect () override |
| Connect to the server. | |
| bool | send (const void *data, size_t len, uint64_t timeout_ns) override |
| Send a message to the server. | |
| std::span< const uint8_t > | receive (uint64_t timeout_ns) override |
| Receive a message from the server (zero-copy for shared memory) | |
| void | release (size_t message_size) override |
| Release the previously received message. | |
| void | close () override |
| Close the connection. | |
Public Member Functions inherited from bb::ipc::IpcClient | |
| IpcClient ()=default | |
| virtual | ~IpcClient ()=default |
| IpcClient (const IpcClient &)=delete | |
| IpcClient & | operator= (const IpcClient &)=delete |
| IpcClient (IpcClient &&)=delete | |
| IpcClient & | operator= (IpcClient &&)=delete |
Private Member Functions | |
| void | close_internal () |
Private Attributes | |
| std::string | socket_path_ |
| int | fd_ = -1 |
| std::vector< uint8_t > | recv_buffer_ |
Additional Inherited Members | |
Static Public Member Functions inherited from bb::ipc::IpcClient | |
| static std::unique_ptr< IpcClient > | create_socket (const std::string &socket_path) |
| static std::unique_ptr< IpcClient > | create_shm (const std::string &base_name) |
IPC client implementation using Unix domain sockets.
Direct implementation with no wrapper layer - manages socket connection directly.
Definition at line 18 of file socket_client.hpp.
|
explicit |
Definition at line 14 of file socket_client.cpp.
|
override |
Definition at line 18 of file socket_client.cpp.
|
delete |
|
delete |
|
overridevirtual |
Close the connection.
Implements bb::ipc::IpcClient.
Definition at line 106 of file socket_client.cpp.
|
private |
Definition at line 111 of file socket_client.cpp.
|
overridevirtual |
Connect to the server.
Implements bb::ipc::IpcClient.
Definition at line 23 of file socket_client.cpp.
|
delete |
|
delete |
|
overridevirtual |
Receive a message from the server (zero-copy for shared memory)
| timeout_ns | Timeout in nanoseconds |
The span remains valid until release() is called or the next recv(). For shared memory: direct view into ring buffer (true zero-copy) For sockets: view into internal buffer (eliminates one copy)
Must be followed by release() to consume the message.
Implements bb::ipc::IpcClient.
Definition at line 73 of file socket_client.cpp.
|
overridevirtual |
Release the previously received message.
| message_size | Size of the message being released (from span.size()) |
Must be called after recv() to consume the message and free resources. For shared memory: releases space in the ring buffer For sockets: no-op (message already consumed during recv)
Implements bb::ipc::IpcClient.
Definition at line 101 of file socket_client.cpp.
|
overridevirtual |
Send a message to the server.
| data | Pointer to message data |
| len | Length of message in bytes |
| timeout_ns | Timeout in nanoseconds (0 = infinite) |
Implements bb::ipc::IpcClient.
Definition at line 50 of file socket_client.cpp.
|
private |
Definition at line 39 of file socket_client.hpp.
|
private |
Definition at line 40 of file socket_client.hpp.
|
private |
Definition at line 38 of file socket_client.hpp.