diff --git a/lib/tdm_datatype.hpp b/lib/tdm_datatype.hpp index 5baccf8..b177986 100644 --- a/lib/tdm_datatype.hpp +++ b/lib/tdm_datatype.hpp @@ -302,7 +302,7 @@ const std::vector tdm_datatypes = { {"eFloat32Usi","DT_FLOAT",3,"float_sequence",4,"32 bit float"}, {"eFloat64Usi","DT_DOUBLE",7,"double_sequence",8,"64 bit double"}, - {"eStringUsi","DT_STRING",1,"string_sequence",0,"text"} + // {"eStringUsi","DT_STRING",1,"string_sequence",0,"text"} }; diff --git a/lib/tdm_reaper.cpp b/lib/tdm_reaper.cpp index 40764e1..7e9752e 100644 --- a/lib/tdm_reaper.cpp +++ b/lib/tdm_reaper.cpp @@ -408,10 +408,6 @@ void tdm_reaper::process_localcolumns(bool showlog) } std::string dt = tdmchannels_.at(locc.measurement_quantity_).datatype_; std::string sequence_type; - // for( auto itd = std::begin(tdm_datatypes); itd != std::end(tdm_datatypes); ++itd) - // { - // if ( dt == itd->channel_datatype_ ) sequence_type = itd->value_sequence_; - // } if ( tdmdt_chan_.count(dt) != 1 ) { throw std::runtime_error(std::string("datatype: ") + dt @@ -484,37 +480,8 @@ std::string tdm_reaper::get_channel_overview(format chformatter) return channels_summary; } -std::string tdm_reaper::get_submatrix_overview(format formatter) -{ - // summarize all output in single string - std::string submatrix_summary; - - // set tabular mode of formatter - formatter.set_tabular(true); - - // compose header - formatter.set_header(true); - submatrix sbm; - submatrix_summary += sbm.get_info(formatter); - std::string rule; - for ( unsigned long int i = 0; i < submatrix_summary.size(); i++ ) - { - rule += std::string("-"); - } - submatrix_summary += std::string("\n") + rule + std::string("\n"); - - formatter.set_header(false); - for (std::map::iterator it=submatrices_.begin(); - it!=submatrices_.end(); ++it) - { - submatrix_summary += it->second.get_info(formatter); - submatrix_summary += std::string("\n"); - } - - return submatrix_summary; -} - -std::string tdm_reaper::get_localcolumn_overview(format formatter) +template +std::string tdm_reaper::get_overview(format formatter) { // summarize all output in single string std::string summary; @@ -524,8 +491,8 @@ std::string tdm_reaper::get_localcolumn_overview(format formatter) // compose header formatter.set_header(true); - localcolumn lc; - summary += lc.get_info(formatter); + tdmelement tdmel; + summary += tdmel.get_info(formatter); std::string rule; for ( unsigned long int i = 0; i < summary.size(); i++ ) { @@ -533,90 +500,46 @@ std::string tdm_reaper::get_localcolumn_overview(format formatter) } summary += std::string("\n") + rule + std::string("\n"); + // write body of summary with data formatter.set_header(false); - for (std::map::iterator it=localcolumns_.begin(); - it!=localcolumns_.end(); ++it) - { - summary += it->second.get_info(formatter); - summary += std::string("\n"); - } + this->summarize_member(tdmel,summary,formatter); return summary; } -std::string tdm_reaper::get_block_overview(format formatter) +template std::string tdm_reaper::get_overview(format formatter); +template std::string tdm_reaper::get_overview(format formatter); +template std::string tdm_reaper::get_overview(format formatter); + +void tdm_reaper::summarize_member(submatrix sbm, std::string& summary, format& formatter) { - // summarize all output in single string - std::string summary; - - // set tabular mode of formatter - formatter.set_tabular(true); - - // compose header - formatter.set_header(true); - block blk; - summary += blk.get_info(formatter); - std::string rule; - for ( unsigned long int i = 0; i < summary.size(); i++ ) - { - rule += std::string("-"); - } - summary += std::string("\n") + rule + std::string("\n"); - - formatter.set_header(false); - for (std::map::iterator it=tdx_blocks_.begin(); - it!=tdx_blocks_.end(); ++it) + for ( std::map::iterator it=this->submatrices_.begin(); + it!=this->submatrices_.end(); ++it) { summary += it->second.get_info(formatter); summary += std::string("\n"); } - - return summary; } -// template -// std::string tdm_reaper::get_overview(format formatter) -// { -// // summarize all output in single string -// std::string summary; -// -// // set tabular mode of formatter -// formatter.set_tabular(true); -// -// // compose header -// formatter.set_header(true); -// tdmelement tdmel; -// summary += tdmel.get_info(formatter); -// std::string rule; -// for ( unsigned long int i = 0; i < summary.size(); i++ ) -// { -// rule += std::string("-"); -// } -// summary += std::string("\n") + rule + std::string("\n"); -// -// formatter.set_header(false); -// std::map thedat = this->get_tdm_member(tdmel); -// for ( std::map el: thedat ) -// { -// summary += el->second.get_info(formatter) + std::string("\n"); -// } -// // for (std::map::iterator it=thedat.begin(); -// // it!=thedat.end(); ++it) -// // { -// // summary += it->second.get_info(formatter); -// // summary += std::string("\n"); -// // } -// -// return summary; -// } -// -// template -// std::map tdm_reaper::get_tdm_member(block blk) -// { -// return this->tdx_blocks_; -// } -// -// template std::string tdm_reaper::get_overview(format formatter); +void tdm_reaper::summarize_member(localcolumn lcc, std::string& summary, format& formatter) +{ + for ( std::map::iterator it=this->localcolumns_.begin(); + it!=this->localcolumns_.end(); ++it) + { + summary += it->second.get_info(formatter); + summary += std::string("\n"); + } +} + +void tdm_reaper::summarize_member(block blk, std::string& summary, format& formatter) +{ + for ( std::map::iterator it=this->tdx_blocks_.begin(); + it!=this->tdx_blocks_.end(); ++it) + { + summary += it->second.get_info(formatter); + summary += std::string("\n"); + } +} // -------------------------------------------------------------------------- // diff --git a/lib/tdm_reaper.hpp b/lib/tdm_reaper.hpp index 3fbe7f5..3c0d53a 100644 --- a/lib/tdm_reaper.hpp +++ b/lib/tdm_reaper.hpp @@ -155,13 +155,11 @@ public: std::string get_channel_overview(format chformatter); // get block/submatrix/localcolumn overview - // template - // std::string get_overview(format formatter); - // template - // std::map get_tdm_member(block blk); - std::string get_submatrix_overview(format formatter); - std::string get_localcolumn_overview(format formatter); - std::string get_block_overview(format formatter); + template + std::string get_overview(format formatter); + void summarize_member(submatrix sbm, std::string& summary, format& formatter); + void summarize_member(localcolumn lcc, std::string& summary, format& formatter); + void summarize_member(block blk, std::string& summary, format& formatter); // get list of channelgroup ids std::vector get_channelgroup_ids() @@ -184,12 +182,8 @@ public: } // extract channel by id - // template std::vector get_channel(std::string& id); - // (TODO introduce template T to reference specific datatype instead of double in general) - // std::vector get_channel(std::string &id); - void print_channel(std::string &id, const char* filename); private: diff --git a/src/main.cpp b/src/main.cpp index ea6cf09..1b84161 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -197,9 +197,9 @@ int main(int argc, char* argv[]) // get complete submatrix/localcolumns overview format formatter(18,false,false,' '); - std::cout<(formatter)<<"\n"; + std::cout<(formatter)<<"\n"; + std::cout<(formatter)<<"\n"; std::string chid("usi14"); std::vector chdata = jack.get_channel(chid);