DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
dbe
include
dbe
gtool.hpp
Go to the documentation of this file.
1
// DUNE DAQ modification notice:
2
// This file has been modified from the original ATLAS dbe source for the DUNE DAQ project.
3
// Fork baseline commit: dbe-02-12-17 (2022-05-12).
4
// Renamed since fork: yes (from dbe/gtool.h to include/dbe/gtool.hpp).
5
6
/************************************************************
7
* gtool.h
8
*
9
* Created on: Jun 10, 2016
10
* Author: Leonidas Georgopoulos
11
************************************************************/
12
13
#ifndef SRC_GTOOL_H_
14
#define SRC_GTOOL_H_
15
16
#include "
dbe/config_reference.hpp
"
17
#include "
dbe/messenger.hpp
"
18
#include "
dbe/dbinfo.hpp
"
19
#include "
dbe/tref.hpp
"
20
21
#include <boost/graph/graph_traits.hpp>
22
#include <boost/graph/adjacency_list.hpp>
23
#include <boost/graph/dijkstra_shortest_paths.hpp>
24
#include <boost/graph/labeled_graph.hpp>
25
26
#include <string>
27
#include <vector>
28
#include <set>
29
30
namespace
dbe
31
{
32
namespace
tool
33
{
34
namespace
graph
35
{
36
37
//------------------------------------------------------------------------------------------
38
class
gtool
39
{
40
public
:
41
42
// struct edge_label
43
// {
44
// std::string uid;
45
// };
46
47
struct
vertex_label
48
{
49
std::string
uid
;
50
std::string
cname
;
51
std::string
label
;
52
};
53
54
typedef
boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS,
55
vertex_label
>
t_graph
;
56
57
typedef
boost::graph_traits<t_graph>::edge_descriptor
t_edge
;
58
typedef
boost::graph_traits<t_graph>::vertex_descriptor
t_vertex
;
59
60
typedef
std::map<std::string, t_vertex>
t_registry
;
61
69
gtool
( std::string
const
& rl,
dbinfo
dbtype );
70
71
template
<
typename
ALGO>
inline
int
load_and_run
( ALGO
const
& );
72
78
t_graph
const
&
getgraph
()
const
;
79
86
static
t_vertex
add_object_and_friends
(
t_graph
&,
tref
const
&,
t_registry
& registry );
87
98
static
t_vertex
add_object
(
t_graph
& g,
tref
const
& o,
bool
uniqueness =
true
);
99
112
static
t_vertex
add_object
(
t_graph
& g,
tref
const
& o,
t_registry
& registry );
113
114
typedef
std::pair<bool, boost::graph_traits<gtool::t_graph>::vertex_iterator>
t_lookup_ret
;
121
static
t_lookup_ret
lookup
(
t_graph
const
& g,
vertex_label
const
& l );
122
private
:
123
124
void
load_all
();
125
void
load_all_class_objects
( std::string
const
& cname );
126
127
void
create_graph
();
128
129
typedef
std::vector<tref>
t_objects
;
130
131
t_graph
this_graph
;
132
t_objects
this_all_objects
;
133
t_registry
already_processed
;
134
135
std::string
this_src
;
136
};
137
//------------------------------------------------------------------------------------------
138
139
//------------------------------------------------------------------------------------------
145
class
writegraph
146
{
147
public
:
148
writegraph
( std::string
const
& );
149
int
operator()
(
gtool
const
& )
const
;
150
private
:
151
void
write
(
gtool::t_graph
const
& )
const
;
152
std::string
this_dest
;
153
};
154
//------------------------------------------------------------------------------------------
155
156
//------------------------------------------------------------------------------------------
164
void
write
(
gtool::t_graph
const
&, std::string
const
& );
170
void
write_to_cout
(
gtool::t_graph
const
& );
178
void
write_to_file
(
gtool::t_graph
const
&, std::string
const
& );
179
//------------------------------------------------------------------------------------------
180
181
//------------------------------------------------------------------------------------------
182
template
<
typename
ALGO>
inline
int
gtool::load_and_run
( ALGO
const
& algo )
183
{
184
load_all
();
185
create_graph
();
186
return
algo (
static_cast<
gtool
const
&
>
( *
this
) );
187
}
188
//------------------------------------------------------------------------------------------
189
}
/* namespace graph */
190
}
/* namespace tool */
191
}
/* namespace dbe */
192
193
#endif
/* SRC_GTOOL_H_ */
dbe::tool::graph::gtool
Definition
gtool.hpp:39
dbe::tool::graph::gtool::t_vertex
boost::graph_traits< t_graph >::vertex_descriptor t_vertex
Definition
gtool.hpp:58
dbe::tool::graph::gtool::create_graph
void create_graph()
Definition
gtool.cpp:105
dbe::tool::graph::gtool::this_all_objects
t_objects this_all_objects
Definition
gtool.hpp:132
dbe::tool::graph::gtool::t_registry
std::map< std::string, t_vertex > t_registry
Definition
gtool.hpp:60
dbe::tool::graph::gtool::gtool
gtool(std::string const &rl, dbinfo dbtype)
Definition
gtool.cpp:37
dbe::tool::graph::gtool::t_graph
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, vertex_label > t_graph
Definition
gtool.hpp:55
dbe::tool::graph::gtool::lookup
static t_lookup_ret lookup(t_graph const &g, vertex_label const &l)
Definition
gtool.cpp:188
dbe::tool::graph::gtool::t_lookup_ret
std::pair< bool, boost::graph_traits< gtool::t_graph >::vertex_iterator > t_lookup_ret
Definition
gtool.hpp:114
dbe::tool::graph::gtool::t_edge
boost::graph_traits< t_graph >::edge_descriptor t_edge
Definition
gtool.hpp:57
dbe::tool::graph::gtool::this_src
std::string this_src
Definition
gtool.hpp:135
dbe::tool::graph::gtool::t_objects
std::vector< tref > t_objects
Definition
gtool.hpp:129
dbe::tool::graph::gtool::already_processed
t_registry already_processed
Definition
gtool.hpp:133
dbe::tool::graph::gtool::load_and_run
int load_and_run(ALGO const &)
Definition
gtool.hpp:182
dbe::tool::graph::gtool::this_graph
t_graph this_graph
Definition
gtool.hpp:131
dbe::tool::graph::gtool::add_object
static t_vertex add_object(t_graph &g, tref const &o, bool uniqueness=true)
Definition
gtool.cpp:118
dbe::tool::graph::gtool::load_all_class_objects
void load_all_class_objects(std::string const &cname)
Definition
gtool.cpp:89
dbe::tool::graph::gtool::add_object_and_friends
static t_vertex add_object_and_friends(t_graph &, tref const &, t_registry ®istry)
Definition
gtool.cpp:166
dbe::tool::graph::gtool::load_all
void load_all()
Definition
gtool.cpp:73
dbe::tool::graph::gtool::getgraph
t_graph const & getgraph() const
Definition
gtool.cpp:68
dbe::tool::graph::writegraph::write
void write(gtool::t_graph const &) const
Definition
gtool.cpp:219
dbe::tool::graph::writegraph::operator()
int operator()(gtool const &) const
Definition
gtool.cpp:211
dbe::tool::graph::writegraph::writegraph
writegraph(std::string const &)
Definition
gtool.cpp:205
dbe::tool::graph::writegraph::this_dest
std::string this_dest
Definition
gtool.hpp:152
config_reference.hpp
dbinfo.hpp
messenger.hpp
dbe::tool::graph
Definition
gtool.hpp:35
dbe::tool::graph::write
void write(gtool::t_graph const &, std::string const &)
Definition
gtool.cpp:226
dbe::tool::graph::write_to_cout
void write_to_cout(gtool::t_graph const &)
Definition
gtool.cpp:238
dbe::tool::graph::write_to_file
void write_to_file(gtool::t_graph const &, std::string const &)
Definition
gtool.cpp:245
dbe::tool
Definition
gtool.hpp:33
dbe
Include QT Headers.
Definition
BatchChangeWidget.hpp:18
dbe::tref
inner::configobject::tref tref
Definition
tref.hpp:35
dbe::dbinfo
dbinfo
Definition
dbinfo.hpp:20
dbe::tool::graph::gtool::vertex_label
Definition
gtool.hpp:48
dbe::tool::graph::gtool::vertex_label::cname
std::string cname
Definition
gtool.hpp:50
dbe::tool::graph::gtool::vertex_label::uid
std::string uid
Definition
gtool.hpp:49
dbe::tool::graph::gtool::vertex_label::label
std::string label
Definition
gtool.hpp:51
tref.hpp
Generated on
for DUNE-DAQ by
1.17.0