Network System 0.1.1
High-performance modular networking library for scalable client-server applications
Loading...
Searching...
No Matches
kcenon::network::integration::messaging_bridge Class Reference

Bridge class for messaging_system compatibility implementing INetworkBridge. More...

#include <messaging_bridge.h>

Inheritance diagram for kcenon::network::integration::messaging_bridge:
Inheritance graph
Collaboration diagram for kcenon::network::integration::messaging_bridge:
Collaboration graph

Classes

class  impl
 

Public Member Functions

 messaging_bridge ()
 Default constructor.
 
 ~messaging_bridge () override
 Destructor.
 
VoidResult initialize (const BridgeConfig &config) override
 Initialize the bridge with configuration.
 
VoidResult shutdown () override
 Shutdown the bridge.
 
bool is_initialized () const override
 Check if the bridge is initialized.
 
BridgeMetrics get_metrics () const override
 Get current metrics.
 
std::shared_ptr< kcenon::network::core::messaging_servercreate_server (const std::string &server_id)
 Create a messaging server with messaging_system compatible API.
 
std::shared_ptr< kcenon::network::core::messaging_clientcreate_client (const std::string &client_id)
 Create a messaging client with messaging_system compatible API.
 
void set_thread_pool_interface (std::shared_ptr< thread_pool_interface > pool)
 Set thread pool using the integration interface.
 
std::shared_ptr< thread_pool_interfaceget_thread_pool_interface () const
 Get the thread pool interface.
 
void reset_metrics ()
 Reset performance metrics.
 
- Public Member Functions inherited from kcenon::network::integration::INetworkBridge
virtual ~INetworkBridge ()=default
 

Private Attributes

std::unique_ptr< implpimpl_
 

Detailed Description

Bridge class for messaging_system compatibility implementing INetworkBridge.

This class provides a compatibility layer that allows existing messaging_system code to work with the new independent network_system without modification.

Lifecycle:

  1. Create using constructor or factory methods
  2. Call initialize() with configuration
  3. Use create_server() and create_client() to create messaging components
  4. Call shutdown() before destruction

Thread Safety:

Definition at line 67 of file messaging_bridge.h.

Constructor & Destructor Documentation

◆ messaging_bridge()

kcenon::network::integration::messaging_bridge::messaging_bridge ( )

◆ ~messaging_bridge()

kcenon::network::integration::messaging_bridge::~messaging_bridge ( )
override

Destructor.

Automatically calls shutdown() if initialized

Definition at line 67 of file messaging_bridge.cpp.

67 {
68 if (is_initialized()) {
69 shutdown();
70 }
71}
bool is_initialized() const override
Check if the bridge is initialized.
VoidResult shutdown() override
Shutdown the bridge.

References is_initialized(), and shutdown().

Here is the call graph for this function:

Member Function Documentation

◆ create_client()

std::shared_ptr< kcenon::network::core::messaging_client > kcenon::network::integration::messaging_bridge::create_client ( const std::string & client_id)

Create a messaging client with messaging_system compatible API.

Parameters
client_idUnique identifier for the client
Returns
Shared pointer to the created client

Definition at line 144 of file messaging_bridge.cpp.

146 {
147 return std::make_shared<kcenon::network::core::messaging_client>(client_id);
148}

◆ create_server()

std::shared_ptr< kcenon::network::core::messaging_server > kcenon::network::integration::messaging_bridge::create_server ( const std::string & server_id)

Create a messaging server with messaging_system compatible API.

Parameters
server_idUnique identifier for the server
Returns
Shared pointer to the created server

Definition at line 138 of file messaging_bridge.cpp.

140 {
141 return std::make_shared<kcenon::network::core::messaging_server>(server_id);
142}

◆ get_metrics()

BridgeMetrics kcenon::network::integration::messaging_bridge::get_metrics ( ) const
overridevirtual

Get current metrics.

Returns
Bridge metrics including messaging statistics

Custom Metrics:

  • "messages_sent": Total messages sent
  • "messages_received": Total messages received
  • "bytes_sent": Total bytes sent
  • "bytes_received": Total bytes received
  • "connections_active": Number of active connections
  • "avg_latency_ms": Average message latency in milliseconds

Thread Safety: Safe to call concurrently

Implements kcenon::network::integration::INetworkBridge.

Definition at line 120 of file messaging_bridge.cpp.

120 {
121 std::lock_guard<std::mutex> lock(pimpl_->metrics_mutex_);
122
123 // Update bridge metrics from performance metrics
125 pimpl_->bridge_metrics_.last_activity = std::chrono::steady_clock::now();
126 pimpl_->bridge_metrics_.custom_metrics["messages_sent"] = static_cast<double>(pimpl_->metrics_.messages_sent);
127 pimpl_->bridge_metrics_.custom_metrics["messages_received"] = static_cast<double>(pimpl_->metrics_.messages_received);
128 pimpl_->bridge_metrics_.custom_metrics["bytes_sent"] = static_cast<double>(pimpl_->metrics_.bytes_sent);
129 pimpl_->bridge_metrics_.custom_metrics["bytes_received"] = static_cast<double>(pimpl_->metrics_.bytes_received);
130 pimpl_->bridge_metrics_.custom_metrics["connections_active"] = static_cast<double>(pimpl_->metrics_.connections_active);
131 pimpl_->bridge_metrics_.custom_metrics["avg_latency_ms"] = static_cast<double>(pimpl_->metrics_.avg_latency.count());
132
133 return pimpl_->bridge_metrics_;
134}
std::chrono::steady_clock::time_point last_activity
Timestamp of last activity or health check.
std::map< std::string, double > custom_metrics
Bridge-specific custom metrics.
bool is_healthy
Overall health status of the bridge.

References kcenon::network::integration::messaging_bridge::impl::internal_metrics::avg_latency, kcenon::network::integration::messaging_bridge::impl::bridge_metrics_, kcenon::network::integration::messaging_bridge::impl::internal_metrics::bytes_received, kcenon::network::integration::messaging_bridge::impl::internal_metrics::bytes_sent, kcenon::network::integration::messaging_bridge::impl::internal_metrics::connections_active, kcenon::network::integration::BridgeMetrics::custom_metrics, kcenon::network::integration::messaging_bridge::impl::initialized_, kcenon::network::integration::BridgeMetrics::is_healthy, kcenon::network::integration::BridgeMetrics::last_activity, kcenon::network::integration::messaging_bridge::impl::internal_metrics::messages_received, kcenon::network::integration::messaging_bridge::impl::internal_metrics::messages_sent, kcenon::network::integration::messaging_bridge::impl::metrics_, kcenon::network::integration::messaging_bridge::impl::metrics_mutex_, and pimpl_.

◆ get_thread_pool_interface()

std::shared_ptr< thread_pool_interface > kcenon::network::integration::messaging_bridge::get_thread_pool_interface ( ) const

Get the thread pool interface.

Returns
Current thread pool interface

Definition at line 184 of file messaging_bridge.cpp.

184 {
186 // Return the global thread integration manager's pool
188 }
190}
std::shared_ptr< thread_pool_interface > thread_pool_interface_
static thread_integration_manager & instance()
Get the singleton instance.
std::shared_ptr< thread_pool_interface > get_thread_pool()
Get the current thread pool.

References kcenon::network::integration::thread_integration_manager::get_thread_pool(), kcenon::network::integration::thread_integration_manager::instance(), pimpl_, and kcenon::network::integration::messaging_bridge::impl::thread_pool_interface_.

Here is the call graph for this function:

◆ initialize()

VoidResult kcenon::network::integration::messaging_bridge::initialize ( const BridgeConfig & config)
overridevirtual

Initialize the bridge with configuration.

Parameters
configConfiguration parameters
Returns
ok() on success, error_info on failure

Configuration Properties:

  • "enabled": "true" or "false" (default: "true")
  • "server_id": Default server identifier (optional)
  • "client_id": Default client identifier (optional)

Error Conditions:

  • Already initialized
  • Invalid configuration

Example:

config.integration_name = "messaging_system";
config.properties["enabled"] = "true";
auto result = bridge->initialize(config);
if (result.is_err()) {
std::cerr << "Init failed: " << result.error().message << std::endl;
}
tracing_config config
Definition exporters.cpp:29
Configuration for bridge initialization.

Implements kcenon::network::integration::INetworkBridge.

Definition at line 75 of file messaging_bridge.cpp.

75 {
76 std::lock_guard<std::mutex> lock(pimpl_->metrics_mutex_);
77
78 if (pimpl_->initialized_.load()) {
79 return error_void(
81 "messaging_bridge already initialized",
82 "messaging_bridge::initialize");
83 }
84
85 // Process configuration properties
86 auto enabled_it = config.properties.find("enabled");
87 if (enabled_it != config.properties.end() && enabled_it->second == "false") {
88 return error_void(
90 "Bridge is disabled in configuration",
91 "messaging_bridge::initialize");
92 }
93
94 // Initialize bridge metrics
96 pimpl_->bridge_metrics_.last_activity = std::chrono::steady_clock::now();
98
99 pimpl_->initialized_.store(true);
100 return ok();
101}
VoidResult error_void(int code, const std::string &message, const std::string &source="network_system", const std::string &details="")
VoidResult ok()

References kcenon::network::error_codes::common_errors::already_exists, kcenon::network::integration::messaging_bridge::impl::bridge_metrics_, config, kcenon::network::integration::BridgeMetrics::custom_metrics, kcenon::network::error_void(), kcenon::network::integration::messaging_bridge::impl::initialized_, kcenon::network::error_codes::common_errors::invalid_argument, kcenon::network::integration::BridgeMetrics::is_healthy, kcenon::network::integration::BridgeMetrics::last_activity, kcenon::network::integration::messaging_bridge::impl::metrics_mutex_, kcenon::network::ok(), and pimpl_.

Here is the call graph for this function:

◆ is_initialized()

bool kcenon::network::integration::messaging_bridge::is_initialized ( ) const
overridevirtual

Check if the bridge is initialized.

Returns
true if initialized and ready, false otherwise

Implements kcenon::network::integration::INetworkBridge.

Definition at line 116 of file messaging_bridge.cpp.

116 {
117 return pimpl_->initialized_.load();
118}

References kcenon::network::integration::messaging_bridge::impl::initialized_, and pimpl_.

Referenced by ~messaging_bridge().

Here is the caller graph for this function:

◆ reset_metrics()

void kcenon::network::integration::messaging_bridge::reset_metrics ( )

Reset performance metrics.

Definition at line 172 of file messaging_bridge.cpp.

172 {
173 std::lock_guard<std::mutex> lock(pimpl_->metrics_mutex_);
174 pimpl_->metrics_ = impl::internal_metrics{};
175 pimpl_->metrics_.start_time = std::chrono::steady_clock::now();
176}

References kcenon::network::integration::messaging_bridge::impl::metrics_, kcenon::network::integration::messaging_bridge::impl::metrics_mutex_, pimpl_, and kcenon::network::integration::messaging_bridge::impl::internal_metrics::start_time.

◆ set_thread_pool_interface()

void kcenon::network::integration::messaging_bridge::set_thread_pool_interface ( std::shared_ptr< thread_pool_interface > pool)

Set thread pool using the integration interface.

Parameters
poolThread pool interface implementation

Definition at line 178 of file messaging_bridge.cpp.

180 {
182}

References pimpl_, and kcenon::network::integration::messaging_bridge::impl::thread_pool_interface_.

◆ shutdown()

VoidResult kcenon::network::integration::messaging_bridge::shutdown ( )
overridevirtual

Shutdown the bridge.

Returns
ok() on success, error_info on failure

Shuts down the bridge and releases resources. This method is idempotent - multiple calls are safe.

Implements kcenon::network::integration::INetworkBridge.

Definition at line 103 of file messaging_bridge.cpp.

103 {
104 std::lock_guard<std::mutex> lock(pimpl_->metrics_mutex_);
105
106 if (!pimpl_->initialized_.load()) {
107 return ok(); // Already shut down, idempotent
108 }
109
110 pimpl_->initialized_.store(false);
112
113 return ok();
114}

References kcenon::network::integration::messaging_bridge::impl::bridge_metrics_, kcenon::network::integration::messaging_bridge::impl::initialized_, kcenon::network::integration::BridgeMetrics::is_healthy, kcenon::network::integration::messaging_bridge::impl::metrics_mutex_, kcenon::network::ok(), and pimpl_.

Referenced by ~messaging_bridge().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ pimpl_

std::unique_ptr<impl> kcenon::network::integration::messaging_bridge::pimpl_
private

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