24#ifndef DAQCONF_APPS_GRAPHBUILDER_HPP_
25#define DAQCONF_APPS_GRAPHBUILDER_HPP_
33#include "boost/graph/adjacency_list.hpp"
34#include "boost/graph/graph_traits.hpp"
35#include "boost/graph/labeled_graph.hpp"
38#include <unordered_map>
54 using Graph_t = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, VertexLabel, EdgeLabel>;
55 using Edge_t = boost::graph_traits<Graph_t>::edge_descriptor;
56 using Vertex_t = boost::graph_traits<Graph_t>::vertex_descriptor;
87 explicit GraphBuilder(
const std::string& oksfilename,
const std::string& sessionname);
90 void write_graph(
const std::string& outputfilename)
const;
#define ERS_DECLARE_ISSUE(namespace_name, class_name, message, attributes)
GraphBuilder & operator=(GraphBuilder &&)=delete
dunedaq::confmodel::Session * m_session
boost::graph_traits< Graph_t >::vertex_descriptor Vertex_t
GraphBuilder(const GraphBuilder &)=delete
void find_objects_and_connections(const ConfigObject &object)
std::unordered_map< std::string, std::vector< std::string > > m_incoming_connections
std::vector< ConfigObject > m_all_objects
void find_candidate_objects()
std::unordered_map< std::string, std::vector< std::string > > m_outgoing_connections
void construct_graph(std::string root_obj_uid)
const std::unordered_map< ObjectKind, std::vector< std::string > > m_included_classes
std::unordered_map< std::string, EnhancedObject > m_objects_for_graph
ObjectKind m_root_object_kind
void write_graph(const std::string &outputfilename) const
dunedaq::conffwk::Configuration * m_confdb
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, VertexLabel, EdgeLabel > Graph_t
std::vector< ConfigObject > m_candidate_objects
std::vector< std::string > m_ignored_application_uids
void calculate_graph(const std::string &root_obj_uid)
std::vector< dunedaq::conffwk::ConfigObject > find_child_objects(const ConfigObject &parent_obj)
std::string m_session_name
const std::string m_oksfilename
boost::graph_traits< Graph_t >::edge_descriptor Edge_t
GraphBuilder(const std::string &oksfilename, const std::string &sessionname)
void calculate_network_connections()
GraphBuilder(GraphBuilder &&)=delete
GraphBuilder & operator=(const GraphBuilder &)=delete
Represents database objects.
Defines base class for cache of template objects.
constexpr GraphBuilder::ObjectKind get_object_kind(const std::string &class_name)
const std::string displaylabel
bool operator==(const ReceivingInfo &other) const =default
std::string connection_name
std::string receiver_label
std::vector< std::string > child_object_names
ConfigObject config_object
std::vector< ReceivingInfo > receiving_object_infos
EnhancedObject(const ConfigObject &config_object_arg, ObjectKind kind_arg)
const std::string displaylabel
VertexLabel(const std::string &uid, const std::string &classname)