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

Public Member Functions

 Impl ()=default
 
 ~Impl ()
 
VoidResult initialize (const NetworkSystemBridgeConfig &config)
 
VoidResult shutdown ()
 
bool is_initialized () const
 
BridgeMetrics get_metrics () const
 
std::shared_ptr< ThreadPoolBridgeget_thread_pool_bridge () const
 
std::shared_ptr< thread_pool_interfaceget_thread_pool () const
 
std::shared_ptr< logger_interfaceget_logger () const
 
std::shared_ptr< monitoring_interfaceget_monitoring () const
 
VoidResult set_thread_pool_bridge (std::shared_ptr< ThreadPoolBridge > bridge)
 
VoidResult set_logger (std::shared_ptr< logger_interface > logger)
 
VoidResult set_monitoring (std::shared_ptr< monitoring_interface > monitoring)
 

Private Attributes

std::mutex mutex_
 
std::atomic< bool > initialized_ {false}
 
NetworkSystemBridgeConfig config_
 
std::vector< std::string > initialized_bridges_
 
std::shared_ptr< ThreadPoolBridgethread_pool_bridge_
 
std::shared_ptr< logger_interfacelogger_
 
std::shared_ptr< monitoring_interfacemonitoring_
 

Detailed Description

Definition at line 18 of file network_system_bridge.cpp.

Constructor & Destructor Documentation

◆ Impl()

kcenon::network::integration::NetworkSystemBridge::Impl::Impl ( )
default

◆ ~Impl()

kcenon::network::integration::NetworkSystemBridge::Impl::~Impl ( )
inline

Definition at line 22 of file network_system_bridge.cpp.

References initialized_, and shutdown().

Here is the call graph for this function:

Member Function Documentation

◆ get_logger()

std::shared_ptr< logger_interface > kcenon::network::integration::NetworkSystemBridge::Impl::get_logger ( ) const
inline

Definition at line 134 of file network_system_bridge.cpp.

134 {
135 std::lock_guard<std::mutex> lock(mutex_);
136 return logger_;
137 }

References logger_, and mutex_.

◆ get_metrics()

BridgeMetrics kcenon::network::integration::NetworkSystemBridge::Impl::get_metrics ( ) const
inline

Definition at line 99 of file network_system_bridge.cpp.

99 {
100 std::lock_guard<std::mutex> lock(mutex_);
101
102 BridgeMetrics aggregated;
103 aggregated.is_healthy = true;
104 aggregated.last_activity = std::chrono::steady_clock::now();
105
106 // Aggregate thread pool metrics
107 if (thread_pool_bridge_ && thread_pool_bridge_->is_initialized()) {
108 auto thread_metrics = thread_pool_bridge_->get_metrics();
109 aggregated.is_healthy &= thread_metrics.is_healthy;
110
111 for (const auto& [key, value] : thread_metrics.custom_metrics) {
112 aggregated.custom_metrics["thread_pool." + key] = value;
113 }
114 }
115
116 // Future: Aggregate logger and monitoring metrics
117
118 return aggregated;
119 }

References kcenon::network::integration::BridgeMetrics::custom_metrics, kcenon::network::integration::BridgeMetrics::is_healthy, kcenon::network::integration::BridgeMetrics::last_activity, mutex_, and thread_pool_bridge_.

◆ get_monitoring()

std::shared_ptr< monitoring_interface > kcenon::network::integration::NetworkSystemBridge::Impl::get_monitoring ( ) const
inline

Definition at line 139 of file network_system_bridge.cpp.

139 {
140 std::lock_guard<std::mutex> lock(mutex_);
141 return monitoring_;
142 }

References monitoring_, and mutex_.

◆ get_thread_pool()

std::shared_ptr< thread_pool_interface > kcenon::network::integration::NetworkSystemBridge::Impl::get_thread_pool ( ) const
inline

Definition at line 126 of file network_system_bridge.cpp.

126 {
127 std::lock_guard<std::mutex> lock(mutex_);
129 return thread_pool_bridge_->get_thread_pool();
130 }
131 return nullptr;
132 }

References mutex_, and thread_pool_bridge_.

◆ get_thread_pool_bridge()

std::shared_ptr< ThreadPoolBridge > kcenon::network::integration::NetworkSystemBridge::Impl::get_thread_pool_bridge ( ) const
inline

Definition at line 121 of file network_system_bridge.cpp.

121 {
122 std::lock_guard<std::mutex> lock(mutex_);
123 return thread_pool_bridge_;
124 }

References mutex_, and thread_pool_bridge_.

◆ initialize()

VoidResult kcenon::network::integration::NetworkSystemBridge::Impl::initialize ( const NetworkSystemBridgeConfig & config)
inline

Definition at line 28 of file network_system_bridge.cpp.

28 {
29 std::lock_guard<std::mutex> lock(mutex_);
30
31 if (initialized_.load()) {
32 return error_void(
34 "NetworkSystemBridge already initialized",
35 "NetworkSystemBridge::initialize");
36 }
37
38 // Store configuration
40
41 // Initialize thread pool bridge if enabled
42 if (config.enable_thread_pool && thread_pool_bridge_) {
43 BridgeConfig thread_config;
44 thread_config.integration_name = config.integration_name;
45 thread_config.properties = config.thread_pool_properties;
46
47 auto result = thread_pool_bridge_->initialize(thread_config);
48 if (result.is_err()) {
49 return error_void(
51 "Failed to initialize thread pool bridge: " + result.error().message,
52 "NetworkSystemBridge::initialize");
53 }
54 initialized_bridges_.push_back("thread_pool");
55 }
56
57 // Future: Initialize logger bridge if enabled
58 if (config.enable_logger && logger_) {
59 // Logger initialization logic here
60 initialized_bridges_.push_back("logger");
61 }
62
63 // Future: Initialize monitoring bridge if enabled
64 if (config.enable_monitoring && monitoring_) {
65 // Monitoring initialization logic here
66 initialized_bridges_.push_back("monitoring");
67 }
68
69 initialized_.store(true);
70 return ok();
71 }
tracing_config config
Definition exporters.cpp:29
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, config, config_, kcenon::network::error_void(), initialized_, initialized_bridges_, kcenon::network::integration::BridgeConfig::integration_name, kcenon::network::error_codes::common_errors::internal_error, logger_, monitoring_, mutex_, kcenon::network::ok(), kcenon::network::integration::BridgeConfig::properties, and thread_pool_bridge_.

Here is the call graph for this function:

◆ is_initialized()

bool kcenon::network::integration::NetworkSystemBridge::Impl::is_initialized ( ) const
inline

Definition at line 95 of file network_system_bridge.cpp.

95 {
96 return initialized_.load();
97 }

References initialized_.

◆ set_logger()

VoidResult kcenon::network::integration::NetworkSystemBridge::Impl::set_logger ( std::shared_ptr< logger_interface > logger)
inline

Definition at line 165 of file network_system_bridge.cpp.

165 {
166 std::lock_guard<std::mutex> lock(mutex_);
167
168 if (initialized_.load()) {
169 return error_void(
171 "Cannot set logger after initialization",
172 "NetworkSystemBridge::set_logger");
173 }
174
175 logger_ = std::move(logger);
176 return ok();
177 }

References kcenon::network::error_codes::common_errors::already_exists, kcenon::network::error_void(), initialized_, logger_, mutex_, and kcenon::network::ok().

Here is the call graph for this function:

◆ set_monitoring()

VoidResult kcenon::network::integration::NetworkSystemBridge::Impl::set_monitoring ( std::shared_ptr< monitoring_interface > monitoring)
inline

Definition at line 179 of file network_system_bridge.cpp.

179 {
180 std::lock_guard<std::mutex> lock(mutex_);
181
182 if (initialized_.load()) {
183 return error_void(
185 "Cannot set monitoring after initialization",
186 "NetworkSystemBridge::set_monitoring");
187 }
188
189 monitoring_ = std::move(monitoring);
190 return ok();
191 }

References kcenon::network::error_codes::common_errors::already_exists, kcenon::network::error_void(), initialized_, monitoring_, mutex_, and kcenon::network::ok().

Here is the call graph for this function:

◆ set_thread_pool_bridge()

VoidResult kcenon::network::integration::NetworkSystemBridge::Impl::set_thread_pool_bridge ( std::shared_ptr< ThreadPoolBridge > bridge)
inline

Definition at line 144 of file network_system_bridge.cpp.

144 {
145 std::lock_guard<std::mutex> lock(mutex_);
146
147 if (initialized_.load()) {
148 return error_void(
150 "Cannot set thread pool bridge after initialization",
151 "NetworkSystemBridge::set_thread_pool_bridge");
152 }
153
154 if (!bridge) {
155 return error_void(
157 "Thread pool bridge cannot be null",
158 "NetworkSystemBridge::set_thread_pool_bridge");
159 }
160
161 thread_pool_bridge_ = std::move(bridge);
162 return ok();
163 }

References kcenon::network::error_codes::common_errors::already_exists, kcenon::network::error_void(), initialized_, kcenon::network::error_codes::common_errors::invalid_argument, mutex_, kcenon::network::ok(), and thread_pool_bridge_.

Here is the call graph for this function:

◆ shutdown()

VoidResult kcenon::network::integration::NetworkSystemBridge::Impl::shutdown ( )
inline

Definition at line 73 of file network_system_bridge.cpp.

73 {
74 std::lock_guard<std::mutex> lock(mutex_);
75
76 if (!initialized_.load()) {
77 return ok(); // Idempotent
78 }
79
80 // Shutdown in reverse order
81 std::reverse(initialized_bridges_.begin(), initialized_bridges_.end());
82
83 for (const auto& bridge_name : initialized_bridges_) {
84 if (bridge_name == "thread_pool" && thread_pool_bridge_) {
85 thread_pool_bridge_->shutdown();
86 }
87 // Future: Handle other bridges
88 }
89
91 initialized_.store(false);
92 return ok();
93 }

References initialized_, initialized_bridges_, mutex_, kcenon::network::ok(), and thread_pool_bridge_.

Referenced by ~Impl().

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

Member Data Documentation

◆ config_

NetworkSystemBridgeConfig kcenon::network::integration::NetworkSystemBridge::Impl::config_
private

Definition at line 196 of file network_system_bridge.cpp.

Referenced by initialize().

◆ initialized_

std::atomic<bool> kcenon::network::integration::NetworkSystemBridge::Impl::initialized_ {false}
private

◆ initialized_bridges_

std::vector<std::string> kcenon::network::integration::NetworkSystemBridge::Impl::initialized_bridges_
private

Definition at line 197 of file network_system_bridge.cpp.

Referenced by initialize(), and shutdown().

◆ logger_

std::shared_ptr<logger_interface> kcenon::network::integration::NetworkSystemBridge::Impl::logger_
private

Definition at line 200 of file network_system_bridge.cpp.

Referenced by get_logger(), initialize(), and set_logger().

◆ monitoring_

std::shared_ptr<monitoring_interface> kcenon::network::integration::NetworkSystemBridge::Impl::monitoring_
private

Definition at line 201 of file network_system_bridge.cpp.

Referenced by get_monitoring(), initialize(), and set_monitoring().

◆ mutex_

std::mutex kcenon::network::integration::NetworkSystemBridge::Impl::mutex_
mutableprivate

◆ thread_pool_bridge_

std::shared_ptr<ThreadPoolBridge> kcenon::network::integration::NetworkSystemBridge::Impl::thread_pool_bridge_
private

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