LCOV - code coverage report
Current view: top level - src/Tools/Help - Help.cpp (source / functions) Hit Total Coverage
Test: streampu_clean.info Lines: 60 69 87.0 %
Date: 2024-07-31 15:48:41 Functions: 4 6 66.7 %

          Line data    Source code
       1             : #include "Tools/Help/Help.hpp"
       2             : 
       3             : using namespace spu;
       4             : using namespace spu::tools;
       5             : 
       6             : void
       7           8 : spu::tools::help(const spu::module::Module& mdl, const bool& verbose, std::ostream& stream)
       8             : {
       9           8 :     stream << get_help(mdl, verbose) << std::endl;
      10           8 : }
      11             : 
      12             : void
      13           0 : spu::tools::help(const spu::runtime::Task& tsk, const bool& verbose, std::ostream& stream)
      14             : {
      15           0 :     stream << get_help(tsk, verbose) << std::endl;
      16           0 : }
      17             : 
      18             : void
      19           0 : spu::tools::help(const spu::runtime::Socket& sck, const bool& verbose, std::ostream& stream)
      20             : {
      21           0 :     stream << get_help(sck, verbose) << std::endl;
      22           0 : }
      23             : 
      24             : std::string
      25           8 : spu::tools::get_help(const spu::module::Module& mdl, const bool& verbose)
      26             : {
      27           8 :     std::stringstream message;
      28           8 :     message << "# module:\n";
      29           8 :     message << "# |- name: " << mdl.get_name() << std::endl;
      30           8 :     message << "# |- short name: " << mdl.get_short_name() << std::endl;
      31           8 :     if (!mdl.get_custom_name().empty()) message << "# |- custom name: " << mdl.get_custom_name() << std::endl;
      32           8 :     if (verbose) message << "# |- address: " << std::hex << static_cast<const void*>(&mdl) << std::endl;
      33           8 :     message << "# |- n_frames: " << mdl.get_n_frames() << "\n";
      34           8 :     if (mdl.tasks.size() > 0)
      35             :     {
      36           8 :         message << "# |- tasks:\n";
      37             : 
      38          22 :         for (size_t i = 0; i < mdl.tasks.size(); i++)
      39             :         {
      40          14 :             std::string tsk_msg = get_help(*mdl.tasks[i], verbose);
      41          14 :             std::string line;
      42          14 :             std::istringstream isstr(tsk_msg);
      43          89 :             while (std::getline(isstr, line))
      44          75 :                 message << "# |  " << line.c_str() << "\n";
      45          14 :         }
      46             :     }
      47          16 :     return message.str();
      48           8 : }
      49             : 
      50             : std::string
      51          14 : spu::tools::get_help(const spu::runtime::Task& tsk, const bool& verbose)
      52             : {
      53          14 :     std::stringstream message;
      54             : 
      55          14 :     message << "|- name: " << tsk.get_name() << std::endl;
      56          14 :     if (verbose) message << "|  |- address: " << std::hex << static_cast<const void*>(&tsk) << std::endl;
      57             : 
      58          14 :     if (tsk.sockets.size() > 0)
      59             :     {
      60          14 :         std::stringstream message_inputs;
      61          14 :         std::stringstream message_outputs;
      62          14 :         int n_inputs = 0;
      63          14 :         int n_outputs = 0;
      64          14 :         message_inputs << "|  |- sockets in:\n";
      65          14 :         message_outputs << "|  |- sockets out:\n";
      66          48 :         for (size_t i = 0; i < tsk.sockets.size(); i++)
      67             :         {
      68          34 :             std::string sck_msg = get_help(*tsk.sockets[i], verbose);
      69          34 :             auto sck_type = tsk.sockets[i]->get_type();
      70          34 :             std::string line;
      71          34 :             std::istringstream isstr(sck_msg);
      72          34 :             if (sck_type == runtime::socket_t::SIN || sck_type == runtime::socket_t::SFWD)
      73             :             {
      74          13 :                 n_inputs++;
      75          26 :                 while (std::getline(isstr, line))
      76          13 :                     message_inputs << "|  |  " << line.c_str() << "\n";
      77             :             }
      78             :             else
      79             :             {
      80          21 :                 n_outputs++;
      81          42 :                 while (std::getline(isstr, line))
      82          21 :                     message_outputs << "|  |  " << line.c_str() << "\n";
      83             :             }
      84          34 :         }
      85          14 :         if (n_inputs > 0) message << message_inputs.str();
      86          14 :         if (n_outputs > 0) message << message_outputs.str();
      87          14 :     }
      88          28 :     return message.str();
      89          14 : }
      90             : 
      91             : std::string
      92          34 : spu::tools::get_help(const spu::runtime::Socket& sck, const bool& verbose)
      93             : {
      94          34 :     std::stringstream message;
      95          34 :     message << "|- " << sck.get_name() << ": ";
      96          34 :     message << "{ n_elts = " << sck.get_n_elmts() / sck.get_task().get_module().get_n_frames();
      97          34 :     message << ", datatype = " << sck.get_datatype_string();
      98          34 :     if (verbose)
      99             :     {
     100           0 :         message << ", databytes = " << sck.get_databytes();
     101           0 :         message << ", dataptr = " << std::hex << sck.get_dataptr();
     102           0 :         message << ", address = " << std::hex << static_cast<const void*>(&sck);
     103             :     }
     104          34 :     message << " }\n";
     105          68 :     return message.str();
     106          34 : }

Generated by: LCOV version 1.14