10#ifndef IOMANAGER_INCLUDE_IOMANAGER_NETWORKMANAGER_HPP_
11#define IOMANAGER_INCLUDE_IOMANAGER_NETWORKMANAGER_HPP_
31#include <unordered_map>
44 void configure (
const std::string& session_name,
const std::vector<const confmodel::NetworkConnection*>& connections,
60 std::set<std::string>
get_datatypes(std::string
const& uid)
const;
81 std::shared_ptr<dunedaq::opmonlib::OpMonLink>
m_sender_opmon_link{ std::make_shared<dunedaq::opmonlib::OpMonLink>() };
83 std::make_shared<dunedaq::opmonlib::OpMonLink>()
86 std::shared_ptr<opmonlib::OpMonLink> link,
87 const std::string& name,
ConnectionResponse get_preconfigured_connections(ConnectionId const &conn_id) const
void configure(const std::string &session_name, const std::vector< const confmodel::NetworkConnection * > &connections, const confmodel::ConnectivityService *conn_svc, dunedaq::opmonlib::OpMonManager &)
std::atomic< bool > m_subscriber_update_thread_running
std::unordered_map< ConnectionId, std::shared_ptr< ipm::Receiver > > m_receiver_plugins
std::shared_ptr< ipm::Receiver > create_receiver(std::vector< ConnectionInfo > connections, ConnectionId const &conn_id)
std::mutex m_receiver_plugin_map_mutex
NetworkManager(NetworkManager const &)=delete
std::unordered_map< ConnectionId, std::shared_ptr< ipm::Sender > > m_sender_plugins
std::unordered_map< ConnectionId, const confmodel::NetworkConnection * > m_preconfigured_connections
std::unique_ptr< std::thread > m_subscriber_update_thread
std::set< std::string > get_datatypes(std::string const &uid) const
static NetworkManager & get()
std::shared_ptr< dunedaq::opmonlib::OpMonLink > m_sender_opmon_link
std::shared_ptr< ipm::Sender > create_sender(ConnectionInfo connection)
std::shared_ptr< ipm::Sender > get_sender(ConnectionId const &conn_id)
std::unique_ptr< ConfigClient > m_config_client
static void register_monitorable_node(std::shared_ptr< opmonlib::MonitorableObject > conn, std::shared_ptr< opmonlib::OpMonLink > link, const std::string &name, bool is_pubsub)
NetworkManager(NetworkManager &&)=delete
NetworkManager & operator=(NetworkManager &&)=delete
std::mutex m_sender_plugin_map_mutex
ConnectionResponse get_connections(ConnectionId const &conn_id, bool restrict_single=false) const
bool is_pubsub_connection(ConnectionId const &conn_id) const
static std::unique_ptr< NetworkManager > s_instance
std::chrono::milliseconds m_config_client_interval
std::mutex m_subscriber_plugin_map_mutex
std::shared_ptr< ipm::Receiver > get_receiver(ConnectionId const &conn_id)
std::vector< std::string > get_pubsub_connection_strings(std::vector< ConnectionInfo > const &connections)
NetworkManager & operator=(NetworkManager const &)=delete
void remove_sender(ConnectionId const &conn_id)
void update_subscribers()
std::unordered_map< ConnectionId, std::shared_ptr< ipm::Subscriber > > m_subscriber_plugins
std::shared_ptr< dunedaq::opmonlib::OpMonLink > m_receiver_opmon_link