00001
00002 #ifndef XSIL_EVENTTABLE_HH
00003 #define XSIL_EVENTTABLE_HH
00004
00005 #include <time.h>
00006 #include <string>
00007 #include <list>
00008 #include <iosfwd>
00009
00010 namespace xsil {
00011
00012 class XSIL;
00013 class table;
00014 class Stream;
00015
00016
00024 class EventTable {
00025
00028 struct eventcolumn {
00029
00032 eventcolumn(void);
00033
00036 ~eventcolumn(void);
00037 std::string data_Type;
00038 const void* data_Addr;
00039 };
00040
00041 typedef std::list<eventcolumn> ColumnList;
00042 typedef ColumnList::const_iterator col_iter;
00043
00044 public:
00045
00049 EventTable(void);
00050
00055 EventTable(const char* Title);
00056
00060 ~EventTable(void);
00061
00066 void makeTable(const char* Name, const char* Type);
00067
00085 void addColumn(const char* Name, const char* Type, const void* Addr=0);
00086
00091 void putEvent(void);
00092
00098 void putTable(std::ostream& out);
00099
00103 void resetStream(void);
00104
00105 private:
00106 std::string mTitle;
00107 ColumnList mCList;
00108 XSIL* mDoc;
00109 table* mTable;
00110 };
00111
00112 }
00113
00114 inline
00115 xsil::EventTable::eventcolumn::eventcolumn(void) {}
00116
00117 inline
00118 xsil::EventTable::eventcolumn::~eventcolumn(void) {}
00119
00120
00121 #endif // XSIL_EVENTTABLE_HH
00122