LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ModuleGraph.h
Go to the documentation of this file.
1 #ifndef art_Framework_Core_detail_ModuleGraph_h
2 #define art_Framework_Core_detail_ModuleGraph_h
3 
4 #include "boost/graph/adjacency_list.hpp"
5 #include "boost/graph/graphviz.hpp"
6 #include "boost/graph/subgraph.hpp"
7 
8 #include <string>
9 
10 namespace art::detail {
11  using vertex_property = boost::property<boost::vertex_name_t, std::string>;
12  using edge_property =
13  boost::property<boost::edge_index_t,
14  int,
15  boost::property<boost::edge_name_t, std::string>>;
16  using graph_property = boost::property<boost::graph_name_t, std::string>;
17  using Graph = boost::adjacency_list<boost::vecS,
18  boost::vecS,
19  boost::bidirectionalS,
23  using ModuleGraph = boost::subgraph<Graph>;
24  using Edge = boost::graph_traits<ModuleGraph>::edge_descriptor;
25  using Vertex = boost::graph_traits<ModuleGraph>::vertex_descriptor;
26 }
27 
28 #endif /* art_Framework_Core_detail_ModuleGraph_h */
29 
30 // Local Variables:
31 // mode: c++
32 // End:
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, vertex_property, edge_property, graph_property > Graph
Definition: ModuleGraph.h:22
boost::property< boost::edge_index_t, int, boost::property< boost::edge_name_t, std::string >> edge_property
Definition: ModuleGraph.h:15
boost::property< boost::graph_name_t, std::string > graph_property
Definition: ModuleGraph.h:16
boost::graph_traits< ModuleGraph >::edge_descriptor Edge
Definition: ModuleGraph.h:24
boost::subgraph< Graph > ModuleGraph
Definition: ModuleGraph.h:23
boost::graph_traits< ModuleGraph >::vertex_descriptor Vertex
Definition: ModuleGraph.h:25
boost::property< boost::vertex_name_t, std::string > vertex_property
Definition: ModuleGraph.h:11