Monitoring System 0.1.0
System resource monitoring with pluggable collectors and alerting
Loading...
Searching...
No Matches
kcenon::monitoring::stub_udp_transport Class Reference

Stub UDP transport for testing. More...

#include <udp_transport.h>

Inheritance diagram for kcenon::monitoring::stub_udp_transport:
Inheritance graph
Collaboration diagram for kcenon::monitoring::stub_udp_transport:
Collaboration graph

Public Member Functions

 stub_udp_transport ()=default
 
void set_simulate_success (bool success)
 Set whether to simulate success or failure.
 
common::VoidResult connect (const std::string &host, uint16_t port) override
 Connect to a remote UDP endpoint.
 
common::VoidResult send (std::span< const uint8_t > data) override
 Send data to the connected endpoint.
 
bool is_connected () const override
 Check if connected to an endpoint.
 
void disconnect () override
 Disconnect from the current endpoint.
 
bool is_available () const override
 Check if transport is available.
 
std::string name () const override
 Get transport name.
 
udp_statistics get_statistics () const override
 Get transport statistics.
 
void reset_statistics () override
 Reset statistics.
 
std::string get_host () const
 
uint16_t get_port () const
 
common::VoidResult send (const std::string &data)
 Send string data to the connected endpoint.
 
- Public Member Functions inherited from kcenon::monitoring::udp_transport
virtual ~udp_transport ()=default
 
common::VoidResult send (const std::string &data)
 Send string data to the connected endpoint.
 

Private Attributes

std::string host_
 
uint16_t port_ {0}
 
bool connected_ {false}
 
bool simulate_success_ {true}
 
std::atomic< std::size_t > packets_sent_ {0}
 
std::atomic< std::size_t > bytes_sent_ {0}
 
std::atomic< std::size_t > send_failures_ {0}
 

Detailed Description

Stub UDP transport for testing.

This implementation simulates UDP sends without actual network calls. Useful for unit testing and when network is unavailable.

Definition at line 127 of file udp_transport.h.

Constructor & Destructor Documentation

◆ stub_udp_transport()

kcenon::monitoring::stub_udp_transport::stub_udp_transport ( )
default

Member Function Documentation

◆ connect()

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

Connect to a remote UDP endpoint.

Parameters
hostRemote hostname or IP address
portRemote port number
Returns
common::VoidResult indicating success or failure

Implements kcenon::monitoring::udp_transport.

Definition at line 150 of file udp_transport.h.

150 {
151 if (!simulate_success_) {
152 return common::VoidResult::err(error_info(
154 "Simulated connection failure",
155 "stub_udp_transport"
156 ).to_common_error());
157 }
158 host_ = host;
159 port_ = port;
160 connected_ = true;
161 return common::ok();
162 }

References connected_, kcenon::monitoring::host, host_, kcenon::monitoring::network_error, port_, and simulate_success_.

◆ disconnect()

void kcenon::monitoring::stub_udp_transport::disconnect ( )
inlineoverridevirtual

Disconnect from the current endpoint.

Implements kcenon::monitoring::udp_transport.

Definition at line 192 of file udp_transport.h.

192 {
193 connected_ = false;
194 host_.clear();
195 port_ = 0;
196 }

References connected_, host_, and port_.

◆ get_host()

std::string kcenon::monitoring::stub_udp_transport::get_host ( ) const
inline

Definition at line 221 of file udp_transport.h.

221{ return host_; }

References host_.

◆ get_port()

uint16_t kcenon::monitoring::stub_udp_transport::get_port ( ) const
inline

Definition at line 222 of file udp_transport.h.

222{ return port_; }

References port_.

◆ get_statistics()

udp_statistics kcenon::monitoring::stub_udp_transport::get_statistics ( ) const
inlineoverridevirtual

Get transport statistics.

Returns
Current statistics

Implements kcenon::monitoring::udp_transport.

Definition at line 206 of file udp_transport.h.

206 {
207 return {
208 packets_sent_.load(std::memory_order_relaxed),
209 bytes_sent_.load(std::memory_order_relaxed),
210 send_failures_.load(std::memory_order_relaxed)
211 };
212 }
std::atomic< std::size_t > packets_sent_
std::atomic< std::size_t > bytes_sent_
std::atomic< std::size_t > send_failures_

References bytes_sent_, packets_sent_, and send_failures_.

◆ is_available()

bool kcenon::monitoring::stub_udp_transport::is_available ( ) const
inlineoverridevirtual

Check if transport is available.

Returns
true if transport can send data

Implements kcenon::monitoring::udp_transport.

Definition at line 198 of file udp_transport.h.

198 {
199 return true;
200 }

◆ is_connected()

bool kcenon::monitoring::stub_udp_transport::is_connected ( ) const
inlineoverridevirtual

Check if connected to an endpoint.

Returns
true if connected

Implements kcenon::monitoring::udp_transport.

Definition at line 188 of file udp_transport.h.

188 {
189 return connected_;
190 }

References connected_.

◆ name()

std::string kcenon::monitoring::stub_udp_transport::name ( ) const
inlineoverridevirtual

Get transport name.

Returns
Transport implementation identifier

Implements kcenon::monitoring::udp_transport.

Definition at line 202 of file udp_transport.h.

202 {
203 return "stub";
204 }

◆ reset_statistics()

void kcenon::monitoring::stub_udp_transport::reset_statistics ( )
inlineoverridevirtual

Reset statistics.

Implements kcenon::monitoring::udp_transport.

Definition at line 214 of file udp_transport.h.

214 {
215 packets_sent_.store(0, std::memory_order_relaxed);
216 bytes_sent_.store(0, std::memory_order_relaxed);
217 send_failures_.store(0, std::memory_order_relaxed);
218 }

References bytes_sent_, packets_sent_, and send_failures_.

◆ send() [1/2]

common::VoidResult kcenon::monitoring::udp_transport::send ( const std::string & data)
inline

Send string data to the connected endpoint.

Parameters
dataString data to send
Returns
common::VoidResult indicating success or failure

Definition at line 79 of file udp_transport.h.

79 {
80 return send(std::span<const uint8_t>(
81 reinterpret_cast<const uint8_t*>(data.data()),
82 data.size()));
83 }
common::VoidResult send(std::span< const uint8_t > data) override
Send data to the connected endpoint.

◆ send() [2/2]

common::VoidResult kcenon::monitoring::stub_udp_transport::send ( std::span< const uint8_t > data)
inlineoverridevirtual

Send data to the connected endpoint.

Parameters
dataData to send
Returns
common::VoidResult indicating success or failure

Implements kcenon::monitoring::udp_transport.

Definition at line 164 of file udp_transport.h.

164 {
165 if (!connected_) {
166 send_failures_.fetch_add(1, std::memory_order_relaxed);
167 return common::VoidResult::err(error_info(
169 "Not connected",
170 "stub_udp_transport"
171 ).to_common_error());
172 }
173
174 if (!simulate_success_) {
175 send_failures_.fetch_add(1, std::memory_order_relaxed);
176 return common::VoidResult::err(error_info(
178 "Simulated send failure",
179 "stub_udp_transport"
180 ).to_common_error());
181 }
182
183 packets_sent_.fetch_add(1, std::memory_order_relaxed);
184 bytes_sent_.fetch_add(data.size(), std::memory_order_relaxed);
185 return common::ok();
186 }

References bytes_sent_, connected_, kcenon::monitoring::network_error, packets_sent_, send_failures_, and simulate_success_.

◆ set_simulate_success()

void kcenon::monitoring::stub_udp_transport::set_simulate_success ( bool success)
inline

Set whether to simulate success or failure.

Definition at line 146 of file udp_transport.h.

References simulate_success_, and kcenon::monitoring::success.

Member Data Documentation

◆ bytes_sent_

std::atomic<std::size_t> kcenon::monitoring::stub_udp_transport::bytes_sent_ {0}
mutableprivate

Definition at line 134 of file udp_transport.h.

134{0};

Referenced by get_statistics(), reset_statistics(), and send().

◆ connected_

bool kcenon::monitoring::stub_udp_transport::connected_ {false}
private

Definition at line 131 of file udp_transport.h.

131{false};

Referenced by connect(), disconnect(), is_connected(), and send().

◆ host_

std::string kcenon::monitoring::stub_udp_transport::host_
private

Definition at line 129 of file udp_transport.h.

Referenced by connect(), disconnect(), and get_host().

◆ packets_sent_

std::atomic<std::size_t> kcenon::monitoring::stub_udp_transport::packets_sent_ {0}
mutableprivate

Definition at line 133 of file udp_transport.h.

133{0};

Referenced by get_statistics(), reset_statistics(), and send().

◆ port_

uint16_t kcenon::monitoring::stub_udp_transport::port_ {0}
private

Definition at line 130 of file udp_transport.h.

130{0};

Referenced by connect(), disconnect(), and get_port().

◆ send_failures_

std::atomic<std::size_t> kcenon::monitoring::stub_udp_transport::send_failures_ {0}
mutableprivate

Definition at line 135 of file udp_transport.h.

135{0};

Referenced by get_statistics(), reset_statistics(), and send().

◆ simulate_success_

bool kcenon::monitoring::stub_udp_transport::simulate_success_ {true}
private

Definition at line 132 of file udp_transport.h.

132{true};

Referenced by connect(), send(), and set_simulate_success().


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