Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::interfaces::null_udp_client Class Reference

Null implementation for when UDP transport is disabled. More...

#include <udp_client_interface.h>

Inheritance diagram for kcenon::common::interfaces::null_udp_client:
Inheritance graph
Collaboration diagram for kcenon::common::interfaces::null_udp_client:
Collaboration graph

Public Member Functions

::kcenon::common::VoidResult connect (const std::string &, uint16_t) override
 Connect to a remote endpoint for optimized sending.
 
::kcenon::common::VoidResult send (std::span< const uint8_t >) override
 Send data to the connected endpoint.
 
::kcenon::common::VoidResult send_to (std::span< const uint8_t >, const udp_endpoint &) override
 Send data to a specific endpoint (connectionless)
 
bool is_connected () const override
 Check if the client is connected to an endpoint.
 
void disconnect () override
 Disconnect from the current endpoint.
 
std::string get_implementation_name () const override
 Get the implementation name for logging/debugging.
 
- Public Member Functions inherited from kcenon::common::interfaces::IUdpClient
virtual ~IUdpClient ()=default
 
virtual::kcenon::common::VoidResult connect (const udp_endpoint &endpoint)
 Connect to a remote endpoint.
 
virtual::kcenon::common::VoidResult send (std::span< const uint8_t > data, const udp_send_options &options)
 Send data to the connected endpoint with options.
 
virtual std::optional< udp_endpointget_remote_endpoint () const
 Get the currently connected endpoint.
 
virtual udp_statistics get_statistics () const
 Get send statistics.
 
virtual void reset_statistics ()
 Reset statistics.
 
::kcenon::common::VoidResult send (const std::string &data)
 Send string data to the connected endpoint.
 
::kcenon::common::VoidResult send_to (const std::string &data, const udp_endpoint &endpoint)
 Send string data to a specific endpoint.
 

Detailed Description

Null implementation for when UDP transport is disabled.

This implementation always returns errors, useful for testing or when UDP functionality is intentionally disabled.

Definition at line 273 of file udp_client_interface.h.

Member Function Documentation

◆ connect()

::kcenon::common::VoidResult kcenon::common::interfaces::null_udp_client::connect ( const std::string & host,
uint16_t port )
inlineoverridevirtual

Connect to a remote endpoint for optimized sending.

This establishes a "connected" UDP socket, which allows the kernel to cache routing information and perform error checking.

Parameters
hostRemote hostname or IP address
portRemote port number
Returns
VoidResult indicating success or error

Implements kcenon::common::interfaces::IUdpClient.

Definition at line 275 of file udp_client_interface.h.

275 {
276 return ::kcenon::common::VoidResult(::kcenon::common::error_info{
278 "UDP client not available",
279 "null_udp_client"});
280 }
constexpr int NOT_INITIALIZED
Definition compat.h:36
Standard error information used by Result<T>.
Definition core.cppm:106

References kcenon::common::error_codes::NOT_INITIALIZED.

◆ disconnect()

void kcenon::common::interfaces::null_udp_client::disconnect ( )
inlineoverridevirtual

Disconnect from the current endpoint.

After disconnecting, send() will fail until connect() is called again. send_to() can still be used for connectionless sends.

Implements kcenon::common::interfaces::IUdpClient.

Definition at line 301 of file udp_client_interface.h.

301{}

◆ get_implementation_name()

std::string kcenon::common::interfaces::null_udp_client::get_implementation_name ( ) const
inlinenodiscardoverridevirtual

Get the implementation name for logging/debugging.

Returns
Implementation identifier string

Implements kcenon::common::interfaces::IUdpClient.

Definition at line 303 of file udp_client_interface.h.

303 {
304 return "null_udp_client";
305 }

◆ is_connected()

bool kcenon::common::interfaces::null_udp_client::is_connected ( ) const
inlinenodiscardoverridevirtual

Check if the client is connected to an endpoint.

Returns
true if connected, false otherwise

Implements kcenon::common::interfaces::IUdpClient.

Definition at line 297 of file udp_client_interface.h.

297 {
298 return false;
299 }

◆ send()

::kcenon::common::VoidResult kcenon::common::interfaces::null_udp_client::send ( std::span< const uint8_t > data)
inlineoverridevirtual

Send data to the connected endpoint.

Requires a prior successful call to connect().

Parameters
dataData to send
Returns
VoidResult indicating success or error

Implements kcenon::common::interfaces::IUdpClient.

Definition at line 282 of file udp_client_interface.h.

282 {
283 return ::kcenon::common::VoidResult(::kcenon::common::error_info{
285 "UDP client not available",
286 "null_udp_client"});
287 }

References kcenon::common::error_codes::NOT_INITIALIZED.

◆ send_to()

::kcenon::common::VoidResult kcenon::common::interfaces::null_udp_client::send_to ( std::span< const uint8_t > data,
const udp_endpoint & endpoint )
inlineoverridevirtual

Send data to a specific endpoint (connectionless)

Sends data without requiring a prior connect() call.

Parameters
dataData to send
endpointTarget endpoint
Returns
VoidResult indicating success or error

Implements kcenon::common::interfaces::IUdpClient.

Definition at line 289 of file udp_client_interface.h.

290 {
291 return ::kcenon::common::VoidResult(::kcenon::common::error_info{
293 "UDP client not available",
294 "null_udp_client"});
295 }

References kcenon::common::error_codes::NOT_INITIALIZED.


The documentation for this class was generated from the following file: