91int main(
int argc,
char *argv[])
95 const char * db_name =
nullptr;
96 const char * object_id =
nullptr;
97 const char * query =
"";
98 std::string class_name;
99 bool init_children =
false;
101 for(
int i = 1; i < argc; i++) {
102 const char * cp = argv[i];
103 if(!strcmp(cp,
"-h") || !strcmp(cp,
"--help")) {
107 if(!strcmp(cp,
"-t") || !strcmp(cp,
"--init-children")) {
108 init_children =
true;
110 else if(!strcmp(cp,
"-d") || !strcmp(cp,
"--data")) {
111 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { db_name = argv[i]; }
113 else if(!strcmp(cp,
"-c") || !strcmp(cp,
"--class-name")) {
114 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { class_name = argv[i]; }
116 else if(!strcmp(cp,
"-i") || !strcmp(cp,
"--object-id")) {
117 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { object_id = argv[i]; }
119 else if(!strcmp(cp,
"-q") || !strcmp(cp,
"--query")) {
120 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { query = argv[i]; }
123 std::cerr <<
"ERROR: bad parameter " << cp << std::endl;
125 return (EXIT_FAILURE);
129 if(db_name ==
nullptr) {
130 std::cerr <<
"ERROR: no database name provided\n";
131 return (EXIT_FAILURE);
134 if(class_name.empty()) {
135 std::cerr <<
"ERROR: no class name provided\n";
136 return (EXIT_FAILURE);
139 if(*query != 0 && object_id !=
nullptr) {
140 std::cerr <<
"ERROR: only one parameter -i or -q can be provided\n";
141 return (EXIT_FAILURE);
145std::cout << std::boolalpha;
151 std::cerr <<
"Can not load database: " << db_name << std::endl;
152 return (EXIT_FAILURE);
155 std::vector< dunedaq::conffwk::ConfigObject > objects;
160 conf.
get(class_name, object_id, obj, 1);
163 std::cerr <<
"Can not get object \'" << object_id <<
"\' of class \'" << class_name <<
"\':\n" << ex << std::endl;
164 return (EXIT_FAILURE);
166 objects.push_back(obj);
170 conf.
get(class_name, objects, query, 1);
173 std::cerr <<
"Can not get objects of class \'" << class_name <<
"\':\n" << ex << std::endl;
174 return (EXIT_FAILURE);
180 return (o1->
UID() < o2->
UID());
184 std::set< dunedaq::conffwk::ConfigObject *, SortByUId > sorted_objects;
186 for(
auto& i : objects)
187 sorted_objects.insert(&i);
189 for(
auto& i : sorted_objects) {
190 if(class_name ==
"ActionPlan") {
193 else if(class_name ==
"Application") {
196 else if(class_name ==
"Connection") {
199 else if(class_name ==
"ConnectionService") {
202 else if(class_name ==
"ConnectivityService") {
205 else if(class_name ==
"DaqApplication") {
208 else if(class_name ==
"DaqModule") {
211 else if(class_name ==
"DaqModulesGroup") {
214 else if(class_name ==
"DaqModulesGroupById") {
217 else if(class_name ==
"DaqModulesGroupByType") {
220 else if(class_name ==
"DetDataReceiver") {
223 else if(class_name ==
"DetDataSender") {
226 else if(class_name ==
"DetectorConfig") {
229 else if(class_name ==
"DetectorStream") {
232 else if(class_name ==
"DetectorToDaqConnection") {
235 else if(class_name ==
"DummyApplication") {
238 else if(class_name ==
"DummyD2D") {
241 else if(class_name ==
"DummyReceiver") {
244 else if(class_name ==
"DummyResource") {
247 else if(class_name ==
"DummyResourceSet") {
250 else if(class_name ==
"DummyResourceSetAND") {
253 else if(class_name ==
"DummySender") {
256 else if(class_name ==
"DummyStream") {
259 else if(class_name ==
"FSMCommand") {
262 else if(class_name ==
"FSMaction") {
265 else if(class_name ==
"FSMconfiguration") {
268 else if(class_name ==
"FSMsequence") {
271 else if(class_name ==
"FSMtransition") {
274 else if(class_name ==
"FSMxTransition") {
277 else if(class_name ==
"GeoId") {
280 else if(class_name ==
"HostComponent") {
283 else if(class_name ==
"Jsonable") {
286 else if(class_name ==
"JsonableTest") {
289 else if(class_name ==
"NetworkConnection") {
292 else if(class_name ==
"NetworkDevice") {
295 else if(class_name ==
"NetworkInterface") {
298 else if(class_name ==
"OpMonConf") {
301 else if(class_name ==
"OpMonURI") {
304 else if(class_name ==
"PhysicalHost") {
307 else if(class_name ==
"ProcessingResource") {
310 else if(class_name ==
"Queue") {
313 else if(class_name ==
"QueueWithSourceId") {
316 else if(class_name ==
"RCApplication") {
319 else if(class_name ==
"RCBroadcaster") {
322 else if(class_name ==
"Resource") {
325 else if(class_name ==
"ResourceSet") {
328 else if(class_name ==
"ResourceSetDisableAND") {
331 else if(class_name ==
"ResourceSetDisableOR") {
334 else if(class_name ==
"ResourceTree") {
337 else if(class_name ==
"Segment") {
340 else if(class_name ==
"Service") {
343 else if(class_name ==
"Session") {
346 else if(class_name ==
"StorageDevice") {
349 else if(class_name ==
"Variable") {
352 else if(class_name ==
"VariableBase") {
355 else if(class_name ==
"VariableSet") {
358 else if(class_name ==
"VirtualHost") {
362 std::cerr <<
"ERROR: do not know how to dump object of " << class_name <<
" class\n";
363 return (EXIT_FAILURE);
367 catch (dunedaq::conffwk::Exception & ex) {
368 std::cerr <<
"Caught " << ex << std::endl;
369 return (EXIT_FAILURE);