LCOV - code coverage report
Current view: top level - appmodel/apps - get_apps_arguments.cxx (source / functions) Coverage Total Hit
Test: code.result Lines: 0.0 % 35 0
Test Date: 2025-12-21 13:07:08 Functions: 0.0 % 2 0

            Line data    Source code
       1              : #include "logging/Logging.hpp"
       2              : 
       3              : #include "conffwk/Configuration.hpp"
       4              : 
       5              : #include "confmodel/DaqApplication.hpp"
       6              : #include "confmodel/RCApplication.hpp"
       7              : #include "confmodel/DaqModule.hpp"
       8              : #include "confmodel/ResourceSet.hpp"
       9              : #include "confmodel/Segment.hpp"
      10              : #include "confmodel/Session.hpp"
      11              : 
      12              : #include "appmodel/SmartDaqApplication.hpp"
      13              : 
      14              : #include <iostream>
      15              : #include <string>
      16              : 
      17              : using namespace dunedaq;
      18              : 
      19              : 
      20            0 : void print_segment_application_commandline(
      21              :   const dunedaq::confmodel::Segment* segment,
      22              :   const dunedaq::confmodel::Session* session,
      23              :   conffwk::Configuration* db) {
      24              : 
      25            0 :   auto const* controller = segment->get_controller();
      26              : 
      27            0 :     std::cout << "\n" << controller->UID() << "\n";
      28            0 :     for (auto const& CLA: controller->construct_commandline_parameters(*db, session))
      29            0 :       std::cout << "CLA: " << CLA << "\n";
      30              : 
      31            0 :     for (auto const& app: segment->get_applications()) {
      32            0 :       std::cout << "\n" << app->UID() << "\n";
      33            0 :       std::vector<std::string> CLAs;
      34            0 :       if (app->castable("SmartDaqApplication")) {
      35            0 :         auto const* sdapp = db->get<dunedaq::appmodel::SmartDaqApplication>(app->UID());
      36            0 :         CLAs = sdapp->construct_commandline_parameters(*db, session);
      37            0 :       } else if (app->castable("DaqApplication")) {
      38            0 :         auto const* dapp = db->get<dunedaq::appmodel::SmartDaqApplication>(app->UID());
      39            0 :         CLAs = dapp->construct_commandline_parameters(*db, session);
      40              :       } else {
      41            0 :         CLAs = app->get_commandline_parameters();
      42              :       }
      43              : 
      44            0 :       for (auto const& CLA: CLAs)
      45            0 :         std::cout << "CLA: " << CLA << "\n";
      46            0 :     }
      47              : 
      48            0 :   for (auto const& segment: segment->get_segments())
      49            0 :     print_segment_application_commandline(segment, session, db);
      50              : 
      51            0 : }
      52              : 
      53              : 
      54            0 : int main(int argc, char* argv[]) {
      55              : 
      56            0 :   if (argc < 3) {
      57            0 :     std::cout << "Usage: " << argv[0] << " session database-file\n";
      58            0 :     return 0;
      59              :   }
      60              : 
      61            0 :   std::string sessionName(argv[1]);
      62            0 :   dunedaq::logging::Logging::setup(sessionName, "get_apps_arguments");
      63              : 
      64            0 :   std::string confimpl = "oksconflibs:" + std::string(argv[2]);
      65            0 :   auto confdb = new conffwk::Configuration(confimpl);
      66              : 
      67            0 :   auto session = confdb->get<confmodel::Session>(sessionName);
      68            0 :   if (session==nullptr) {
      69            0 :     std::cerr << "Session " << sessionName << " not found in database\n";
      70            0 :     return -1;
      71              :   }
      72              : 
      73            0 :   print_segment_application_commandline(session->get_segment(), session, confdb);
      74            0 : }
        

Generated by: LCOV version 2.0-1