14#pragma clang diagnostic push
15#pragma clang diagnostic ignored "-Wdeprecated-declarations"
25#if KCENON_WITH_CONTAINER_SYSTEM
52#if KCENON_WITH_CONTAINER_SYSTEM
53 std::shared_ptr<container_module::value_container> active_container_;
54 std::function<void(
const container_module::value_container&)> container_handler_;
57#if KCENON_WITH_THREAD_SYSTEM
58 std::shared_ptr<kcenon::thread::thread_pool> thread_pool_;
81 "messaging_bridge already initialized",
82 "messaging_bridge::initialize");
86 auto enabled_it =
config.properties.find(
"enabled");
87 if (enabled_it !=
config.properties.end() && enabled_it->second ==
"false") {
90 "Bridge is disabled in configuration",
91 "messaging_bridge::initialize");
139 const std::string& server_id
141 return std::make_shared<kcenon::network::core::messaging_server>(server_id);
145 const std::string& client_id
147 return std::make_shared<kcenon::network::core::messaging_client>(client_id);
150#if KCENON_WITH_CONTAINER_SYSTEM
151void messaging_bridge::set_container(
152 std::shared_ptr<container_module::value_container> container
154 pimpl_->active_container_ = container;
157void messaging_bridge::set_container_message_handler(
158 std::function<
void(
const container_module::value_container&)> handler
160 pimpl_->container_handler_ = handler;
164#if KCENON_WITH_THREAD_SYSTEM
165void messaging_bridge::set_thread_pool(
166 std::shared_ptr<kcenon::thread::thread_pool> pool
168 pimpl_->thread_pool_ = pool;
179 std::shared_ptr<thread_pool_interface> pool
194#pragma clang diagnostic pop
internal_metrics metrics_
std::mutex metrics_mutex_
std::atomic< bool > initialized_
BridgeMetrics bridge_metrics_
std::shared_ptr< thread_pool_interface > thread_pool_interface_
BridgeMetrics get_metrics() const override
Get current metrics.
VoidResult initialize(const BridgeConfig &config) override
Initialize the bridge with configuration.
bool is_initialized() const override
Check if the bridge is initialized.
std::shared_ptr< kcenon::network::core::messaging_client > create_client(const std::string &client_id)
Create a messaging client with messaging_system compatible API.
messaging_bridge()
Default constructor.
std::shared_ptr< kcenon::network::core::messaging_server > create_server(const std::string &server_id)
Create a messaging server with messaging_system compatible API.
void set_thread_pool_interface(std::shared_ptr< thread_pool_interface > pool)
Set thread pool using the integration interface.
void reset_metrics()
Reset performance metrics.
~messaging_bridge() override
Destructor.
VoidResult shutdown() override
Shutdown the bridge.
std::unique_ptr< impl > pimpl_
std::shared_ptr< thread_pool_interface > get_thread_pool_interface() const
Get the 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.
Feature flags for network_system.
Bridge for messaging_system compatibility implementing INetworkBridge.
constexpr int invalid_argument
constexpr int already_exists
VoidResult error_void(int code, const std::string &message, const std::string &source="network_system", const std::string &details="")
Network-specific error and result type definitions.
Configuration for bridge initialization.
Metrics and health information for a bridge.
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.
uint64_t messages_received
uint64_t connections_active
std::chrono::steady_clock::time_point start_time
std::chrono::milliseconds avg_latency
Thread system integration interface for network_system.