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 : }