21 std::string_view sender_addr)>;
111 [[nodiscard]]
virtual std::string
get_name()
const = 0;
166 virtual bool send(uint64_t endpoint_id,
const uint8_t* data,
size_t size) = 0;
181 virtual bool send_to(uint64_t endpoint_id,
const uint8_t* data,
size_t size,
182 const std::string& address, uint16_t port) = 0;
virtual std::string get_name() const =0
virtual bool send(uint64_t endpoint_id, const uint8_t *data, size_t size)=0
Send data through an endpoint.
virtual bool initialize()=0
Initialise backend resources (sockets, SHM segments, etc.)
virtual bool is_initialized() const =0
virtual std::string get_version() const =0
virtual ~INetworkBackend()=default
virtual void shutdown()=0
Release all resources, close all endpoints.
virtual uint64_t open_endpoint(const EndpointInfo &info)=0
Open a new endpoint.
virtual void close_endpoint(uint64_t endpoint_id)=0
Close an endpoint and release its resources.
virtual EndpointState get_endpoint_state(uint64_t endpoint_id) const =0
Query the current state of an endpoint.
virtual void start()=0
Start receive threads and accept connections.
virtual void stop()=0
Stop receive threads without releasing resources.
virtual bool is_running() const =0
virtual bool send_to(uint64_t endpoint_id, const uint8_t *data, size_t size, const std::string &address, uint16_t port)=0
Send data to a specific address through an endpoint.
virtual void set_state_callback(EndpointStateCallback callback)=0
Register the endpoint state change callback.
virtual std::vector< EndpointInfo > get_endpoints() const =0
List all endpoints currently managed by this backend.
virtual void set_receive_callback(NetworkReceiveCallback callback)=0
Register the receive callback.
virtual NetworkTransport get_transport() const =0
Abstract interface for network transport backends.
EndpointState
Observable connection state for an endpoint.
NetworkTransport
Identifies the transport protocol a backend implements.
std::function< void(uint64_t endpoint_id, const uint8_t *data, size_t size, std::string_view sender_addr)> NetworkReceiveCallback
Callback signature for inbound data on an endpoint.
std::function< void(const EndpointInfo &info, EndpointState previous, EndpointState current)> EndpointStateCallback
Callback signature for endpoint state changes.
Describes one logical send/receive endpoint managed by a backend.