On (10/03/12 21:05), Igor Zhbanov wrote:
+
+#include "report-maker.h"
+
+class report_formatter /* Interface */
+{
+public:
+ virtual void finish_report() = 0;
+ virtual const char *get_result() = 0;
+ virtual void clear_result() = 0;
+
+ virtual void add(const char *str) = 0;
+ virtual void addv(const char *fmt, va_list ap) = 0;
+
+ virtual void add_header(const char *header, int level) = 0;
+
+ virtual void begin_section(section_type stype) = 0;
+ virtual void end_section() = 0;
+
+ virtual void begin_table(table_type ttype) = 0;
+ virtual void end_table() = 0;
+
+ virtual void begin_row(row_type rtype) = 0;
+ virtual void end_row() = 0;
+
+ virtual void begin_cell(cell_type ctype) = 0;
+ virtual void end_cell() = 0;
+ virtual void add_empty_cell() = 0;
+
+ virtual void begin_paragraph() = 0;
+ virtual void end_paragraph() = 0;
+
+ /* For quad-colouring CPU tables in HTML */
+ virtual void set_cpu_number(int nr) = 0;
+};
+
it's better have a destructor in abstract class.
-ss