254int main(
int argc,
char *argv[])
258 const char * db_name =
nullptr;
259 const char * object_id =
nullptr;
260 const char * query =
"";
261 std::string class_name;
262 bool init_children =
false;
264 for(
int i = 1; i < argc; i++) {
265 const char * cp = argv[i];
266 if(!strcmp(cp,
"-h") || !strcmp(cp,
"--help")) {
270 if(!strcmp(cp,
"-t") || !strcmp(cp,
"--init-children")) {
271 init_children =
true;
273 else if(!strcmp(cp,
"-d") || !strcmp(cp,
"--data")) {
274 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { db_name = argv[i]; }
276 else if(!strcmp(cp,
"-c") || !strcmp(cp,
"--class-name")) {
277 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { class_name = argv[i]; }
279 else if(!strcmp(cp,
"-i") || !strcmp(cp,
"--object-id")) {
280 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { object_id = argv[i]; }
282 else if(!strcmp(cp,
"-q") || !strcmp(cp,
"--query")) {
283 if(++i == argc || argv[i][0] ==
'-') {
no_param(cp); }
else { query = argv[i]; }
286 std::cerr <<
"ERROR: bad parameter " << cp << std::endl;
288 return (EXIT_FAILURE);
292 if(db_name ==
nullptr) {
293 std::cerr <<
"ERROR: no database name provided\n";
294 return (EXIT_FAILURE);
297 if(class_name.empty()) {
298 std::cerr <<
"ERROR: no class name provided\n";
299 return (EXIT_FAILURE);
302 if(*query != 0 && object_id !=
nullptr) {
303 std::cerr <<
"ERROR: only one parameter -i or -q can be provided\n";
304 return (EXIT_FAILURE);
308std::cout << std::boolalpha;
314 std::cerr <<
"Can not load database: " << db_name << std::endl;
315 return (EXIT_FAILURE);
318 std::vector< dunedaq::conffwk::ConfigObject > objects;
323 conf.
get(class_name, object_id, obj, 1);
325 catch (dunedaq::conffwk::NotFound & ex) {
326 std::cerr <<
"Can not get object \'" << object_id <<
"\' of class \'" << class_name <<
"\':\n" << ex << std::endl;
327 return (EXIT_FAILURE);
329 objects.push_back(obj);
333 conf.
get(class_name, objects, query, 1);
335 catch (dunedaq::conffwk::NotFound & ex) {
336 std::cerr <<
"Can not get objects of class \'" << class_name <<
"\':\n" << ex << std::endl;
337 return (EXIT_FAILURE);
343 return (o1->
UID() < o2->
UID());
347 std::set< dunedaq::conffwk::ConfigObject *, SortByUId > sorted_objects;
349 for(
auto& i : objects)
350 sorted_objects.insert(&i);
352 for(
auto& i : sorted_objects) {
353 if(class_name ==
"AVXAbsRunSumProcessor") {
356 else if(class_name ==
"AVXFixedPedestalSubtractProcessor") {
359 else if(class_name ==
"AVXFrugalPedestalSubtractProcessor") {
362 else if(class_name ==
"AVXRunSumProcessor") {
365 else if(class_name ==
"AVXThresholdProcessor") {
368 else if(class_name ==
"CIBApplication") {
371 else if(class_name ==
"CIBCalibrationStream") {
374 else if(class_name ==
"CIBConf") {
377 else if(class_name ==
"CIBModule") {
380 else if(class_name ==
"CIBTrigger") {
383 else if(class_name ==
"CIBTriggerReport") {
386 else if(class_name ==
"CIBoardConf") {
389 else if(class_name ==
"CRTBernFrameBuilderConf") {
392 else if(class_name ==
"CRTBernFrameBuilderModule") {
395 else if(class_name ==
"CRTFrameBuilderApplication") {
398 else if(class_name ==
"CRTFrameBuilderConf") {
401 else if(class_name ==
"CRTGrenobleFrameBuilderConf") {
404 else if(class_name ==
"CRTGrenobleFrameBuilderModule") {
407 else if(class_name ==
"CTBApplication") {
410 else if(class_name ==
"CTBCRTSubsystem") {
413 else if(class_name ==
"CTBCalibrationStream") {
416 else if(class_name ==
"CTBConf") {
419 else if(class_name ==
"CTBCountLLT") {
422 else if(class_name ==
"CTBHLT") {
425 else if(class_name ==
"CTBLLT") {
428 else if(class_name ==
"CTBMisc") {
431 else if(class_name ==
"CTBModule") {
434 else if(class_name ==
"CTBMonitorSocket") {
437 else if(class_name ==
"CTBPDSLLT") {
440 else if(class_name ==
"CTBPDSSubsystem") {
443 else if(class_name ==
"CTBPulser") {
446 else if(class_name ==
"CTBRandomTrigger") {
449 else if(class_name ==
"CTBReceiverSocket") {
452 else if(class_name ==
"CTBSocket") {
455 else if(class_name ==
"CTBSockets") {
458 else if(class_name ==
"CTBStatisticsSocket") {
461 else if(class_name ==
"CTBSubsystem") {
464 else if(class_name ==
"CTBTiming") {
467 else if(class_name ==
"CTBTrigger") {
470 else if(class_name ==
"CTBTriggerReport") {
473 else if(class_name ==
"CTBoardConf") {
476 else if(class_name ==
"ColdADCSettings") {
479 else if(class_name ==
"DFApplication") {
482 else if(class_name ==
"DFHWConf") {
485 else if(class_name ==
"DFOApplication") {
488 else if(class_name ==
"DFOConf") {
491 else if(class_name ==
"DFOModule") {
494 else if(class_name ==
"DPDKPortConfiguration") {
497 else if(class_name ==
"DPDKReaderConf") {
500 else if(class_name ==
"DPDKReaderModule") {
503 else if(class_name ==
"DPDKReceiver") {
506 else if(class_name ==
"DTSHSIApplication") {
509 else if(class_name ==
"DaphneApplication") {
512 else if(class_name ==
"DaphneConf") {
515 else if(class_name ==
"DaphneControllerModule") {
518 else if(class_name ==
"DaphneMapEntry") {
521 else if(class_name ==
"DaphneV2ADC") {
524 else if(class_name ==
"DaphneV2AFE") {
527 else if(class_name ==
"DaphneV2BoardConf") {
530 else if(class_name ==
"DaphneV2Channel") {
533 else if(class_name ==
"DaphneV2ControllerModule") {
536 else if(class_name ==
"DaphneV2LNA") {
539 else if(class_name ==
"DaphneV2PGA") {
542 else if(class_name ==
"DaphneV3ControllerModule") {
545 else if(class_name ==
"DataHandlerConf") {
548 else if(class_name ==
"DataHandlerModule") {
551 else if(class_name ==
"DataMoveCallbackConf") {
554 else if(class_name ==
"DataMoveCallbackDescriptor") {
557 else if(class_name ==
"DataProcessor") {
560 else if(class_name ==
"DataReaderConf") {
563 else if(class_name ==
"DataReaderModule") {
566 else if(class_name ==
"DataRecorderConf") {
569 else if(class_name ==
"DataRecorderModule") {
572 else if(class_name ==
"DataStoreConf") {
575 else if(class_name ==
"DataSubscriberModule") {
578 else if(class_name ==
"DataWriterConf") {
581 else if(class_name ==
"DataWriterModule") {
584 else if(class_name ==
"DetectorFrameBuilderConf") {
587 else if(class_name ==
"DetectorFrameBuilderModule") {
590 else if(class_name ==
"FDDataHandlerModule") {
593 else if(class_name ==
"FDFakeReaderModule") {
596 else if(class_name ==
"FEMBSettings") {
599 else if(class_name ==
"FakeDataApplication") {
602 else if(class_name ==
"FakeDataProdConf") {
605 else if(class_name ==
"FakeDataProdModule") {
608 else if(class_name ==
"FakeDataReceiver") {
611 else if(class_name ==
"FakeDataSender") {
614 else if(class_name ==
"FakeHSIApplication") {
617 else if(class_name ==
"FakeHSIEventGeneratorConf") {
620 else if(class_name ==
"FakeHSIEventGeneratorModule") {
623 else if(class_name ==
"FelixCardControllerModule") {
626 else if(class_name ==
"FelixDataReceiver") {
629 else if(class_name ==
"FelixDataSender") {
632 else if(class_name ==
"FelixDetectorToDaqConnection") {
635 else if(class_name ==
"FelixInterface") {
638 else if(class_name ==
"FelixReaderConf") {
641 else if(class_name ==
"FelixReaderModule") {
644 else if(class_name ==
"FileReaderReceiver") {
647 else if(class_name ==
"FilenameParams") {
650 else if(class_name ==
"FixedTimeTCConf") {
653 else if(class_name ==
"FixedTimeTCMakerModule") {
656 else if(class_name ==
"FixedTimeTCMakerModuleConf") {
659 else if(class_name ==
"FragmentAggregatorConf") {
662 else if(class_name ==
"FragmentAggregatorModule") {
665 else if(class_name ==
"HDF5FileLayoutParams") {
668 else if(class_name ==
"HDF5PathParams") {
671 else if(class_name ==
"HSI2TCTranslatorConf") {
674 else if(class_name ==
"HSIDataHandlerModule") {
677 else if(class_name ==
"HSIEventSender") {
680 else if(class_name ==
"HSIEventToTCApplication") {
683 else if(class_name ==
"HSIFrameProcessor") {
686 else if(class_name ==
"HSIReadout") {
689 else if(class_name ==
"HSIReadoutConf") {
692 else if(class_name ==
"HSISignalWindow") {
695 else if(class_name ==
"HermesDataSender") {
698 else if(class_name ==
"HermesModule") {
701 else if(class_name ==
"HermesModuleConf") {
704 else if(class_name ==
"IpbusAddressTable") {
707 else if(class_name ==
"IpbusDevice") {
710 else if(class_name ==
"LatencyBuffer") {
713 else if(class_name ==
"MLTApplication") {
716 else if(class_name ==
"MLTConf") {
719 else if(class_name ==
"MLTModule") {
722 else if(class_name ==
"NICStatsConf") {
725 else if(class_name ==
"NP02ReadoutApplication") {
728 else if(class_name ==
"NWDetDataReceiver") {
731 else if(class_name ==
"NWDetDataSender") {
734 else if(class_name ==
"NetworkConnectionDescriptor") {
737 else if(class_name ==
"NetworkConnectionRule") {
740 else if(class_name ==
"NetworkDetectorToDaqConnection") {
743 else if(class_name ==
"PDSRawDataProcessor") {
746 else if(class_name ==
"ProcessingStep") {
749 else if(class_name ==
"QueueConnectionRule") {
752 else if(class_name ==
"QueueDescriptor") {
755 else if(class_name ==
"ROIGroupConf") {
758 else if(class_name ==
"RandomTCMakerConf") {
761 else if(class_name ==
"RandomTCMakerModule") {
764 else if(class_name ==
"RawDataProcessor") {
767 else if(class_name ==
"ReadoutApplication") {
770 else if(class_name ==
"ReadoutHost") {
773 else if(class_name ==
"RequestHandler") {
776 else if(class_name ==
"RoHwConfig") {
779 else if(class_name ==
"SNBBookkeeperApplication") {
782 else if(class_name ==
"SNBBookkeeperConf") {
785 else if(class_name ==
"SNBDataHandlerModule") {
788 else if(class_name ==
"SNBFileReaderConf") {
791 else if(class_name ==
"SNBFileReaderModule") {
794 else if(class_name ==
"SNBFileSourceParameters") {
797 else if(class_name ==
"SNBFileTransfer") {
800 else if(class_name ==
"SNBTransferApplication") {
803 else if(class_name ==
"SNBTransferBookkeeper") {
806 else if(class_name ==
"SNBTransferConf") {
809 else if(class_name ==
"SSPLEDCalibModule") {
812 else if(class_name ==
"SSPRegister") {
815 else if(class_name ==
"SamplesOverThresholdMinima") {
818 else if(class_name ==
"SmartDaqApplication") {
821 else if(class_name ==
"SocketDataSender") {
824 else if(class_name ==
"SocketDataWriterConf") {
827 else if(class_name ==
"SocketDataWriterModule") {
830 else if(class_name ==
"SocketDetectorToDaqConnection") {
833 else if(class_name ==
"SocketReaderConf") {
836 else if(class_name ==
"SocketReaderModule") {
839 else if(class_name ==
"SocketReceiver") {
842 else if(class_name ==
"SocketWriterConf") {
845 else if(class_name ==
"SocketWriterModule") {
848 else if(class_name ==
"SourceIDConf") {
851 else if(class_name ==
"SourceIDToNetworkConnection") {
854 else if(class_name ==
"StandaloneTCMakerConf") {
857 else if(class_name ==
"StandaloneTCMakerModule") {
860 else if(class_name ==
"StreamEmulationParameters") {
863 else if(class_name ==
"SubdetectorReadoutWindowMap") {
866 else if(class_name ==
"TAAlgorithm") {
869 else if(class_name ==
"TADataProcessor") {
872 else if(class_name ==
"TAMakerADCSimpleWindowAlgorithm") {
875 else if(class_name ==
"TAMakerBundleNAlgorithm") {
878 else if(class_name ==
"TAMakerChannelAdjacencyAlgorithm") {
881 else if(class_name ==
"TAMakerChannelDistanceAlgorithm") {
884 else if(class_name ==
"TAMakerDBSCANAlgorithm") {
887 else if(class_name ==
"TAMakerHorizontalMuonAlgorithm") {
890 else if(class_name ==
"TAMakerMichelElectronAlgorithm") {
893 else if(class_name ==
"TAMakerPlaneCoincidenceAlgorithm") {
896 else if(class_name ==
"TAMakerPrescaleAlgorithm") {
899 else if(class_name ==
"TCAlgorithm") {
902 else if(class_name ==
"TCDataProcessor") {
905 else if(class_name ==
"TCMakerADCSimpleWindowAlgorithm") {
908 else if(class_name ==
"TCMakerBundleNAlgorithm") {
911 else if(class_name ==
"TCMakerChannelAdjacencyAlgorithm") {
914 else if(class_name ==
"TCMakerChannelDistanceAlgorithm") {
917 else if(class_name ==
"TCMakerDBSCANAlgorithm") {
920 else if(class_name ==
"TCMakerHorizontalMuonAlgorithm") {
923 else if(class_name ==
"TCMakerMichelElectronAlgorithm") {
926 else if(class_name ==
"TCMakerPlaneCoincidenceAlgorithm") {
929 else if(class_name ==
"TCMakerPrescaleAlgorithm") {
932 else if(class_name ==
"TCReadoutMap") {
935 else if(class_name ==
"TDEAMCModule") {
938 else if(class_name ==
"TDEAMCModuleConf") {
941 else if(class_name ==
"TDECrateApplication") {
944 else if(class_name ==
"TPCRawDataProcessor") {
947 else if(class_name ==
"TPDataProcessor") {
950 else if(class_name ==
"TPReplayApplication") {
953 else if(class_name ==
"TPReplayModule") {
956 else if(class_name ==
"TPReplayModuleConf") {
959 else if(class_name ==
"TPStreamConf") {
962 else if(class_name ==
"TPStreamWriterApplication") {
965 else if(class_name ==
"TPStreamWriterConf") {
968 else if(class_name ==
"TPStreamWriterModule") {
971 else if(class_name ==
"TRBConf") {
974 else if(class_name ==
"TRBModule") {
977 else if(class_name ==
"TRMonReqApplication") {
980 else if(class_name ==
"TRMonRequestorConf") {
983 else if(class_name ==
"TRMonRequestorModule") {
986 else if(class_name ==
"TdeAmcDetDataSender") {
989 else if(class_name ==
"TriggerApplication") {
992 else if(class_name ==
"TriggerBitword") {
995 else if(class_name ==
"TriggerDataHandlerModule") {
998 else if(class_name ==
"WIBModule") {
1001 else if(class_name ==
"WIBModuleConf") {
1004 else if(class_name ==
"WIBPulserSettings") {
1007 else if(class_name ==
"WIBSettings") {
1010 else if(class_name ==
"WIECApplication") {
1014 std::cerr <<
"ERROR: do not know how to dump object of " << class_name <<
" class\n";
1015 return (EXIT_FAILURE);
1019 catch (dunedaq::conffwk::Exception & ex) {
1020 std::cerr <<
"Caught " << ex << std::endl;
1021 return (EXIT_FAILURE);