Hi everyone! Viresh Kumar wrote: > I have following test case, i need to capture data using powertop > for some time and then analyse it. > > There are two formats in which this is done as of today > - html > - csv > > I believe we must also have a plain text version for it. Any cons > of that? I agree with that. Also I think that report system with many places like: if (html) printf(something); else printf(nearly-the-same); that needs to be redesigned. I use something like CSV-generator in my yet to be merged MALI GPU support patch because generated CVS's doesn't conform to any CSV standards: there are no quotes for empty values, also quote symbols are not escaped inside the values. Commas are not escaped too. So it is impossible to parse generated CSV's with traditional parsers. I think that we could design generalized reporting system that could output data in any desired format (HTML, CSV and probably TXT). Since all results are contained inside the tables, that system could have interface like create_report(type); report.add_table(...); report.add_column_name(const char *name, bool last_in_line = false); report.add_column_val(const char *value, bool last_in_line = false); report.get_result(); Now there are a lots of code like that: if (reporttype) fprintf(reportout.http_report, "%s%s%s%s%s\n", process_class(lines), power, usage, events, name, pretty_print(all_power[i]->description(), descr, 128)); else fprintf(reportout.csv_report, "%s,%s,%s,%s,%s \n", power, usage, events, name, pretty_print(all_power[i]->description(), descr, 128)); I think that we could separate CSV/HTML generation code from processing logic. What you think? -- Best regards, Igor Zhbanov, Expert Software Engineer, phone: +7 (495) 797 25 00 ext 3806 e-mail: i.zhbanov(a)samsung.com ASWG, Moscow R&D center, Samsung Electronics 12 Dvintsev street, building 1 127018, Moscow, Russian Federation