00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef DIME_TABLE_H
00031 #define DIME_TABLE_H
00032
00033 #include <dime/Base.h>
00034 #include <dime/util/Array.h>
00035
00036 class dimeInput;
00037 class dimeModel;
00038 class dimeOutput;
00039 class dimeTableEntry;
00040 class dimeRecord;
00041
00042 class DIME_DLL_API dimeTable : public dimeBase
00043 {
00044 public:
00045 dimeTable(dimeMemHandler * const memhandler);
00046 virtual ~dimeTable();
00047
00048 bool read(dimeInput * const in);
00049 bool write(dimeOutput * const out);
00050 dimeTable *copy(dimeModel * const model) const;
00051 int typeId() const;
00052 int countRecords() const;
00053 int tableType() const;
00054
00055 void setTableName(const char * name);
00056 const char * tableName() const;
00057
00058 int getNumTableEntries() const;
00059 dimeTableEntry *getTableEntry(const int idx);
00060 void insertTableEntry(dimeTableEntry * const tableEntry, const int idx = -1);
00061 void removeTableEntry(const int idx);
00062
00063 int getNumTableRecords() const;
00064 dimeRecord *getTableRecord(const int idx);
00065 void insertTableRecord(dimeRecord * const record, const int idx = -1);
00066 void removeTableRecord(const int idx);
00067
00068 private:
00069 int16 maxEntries;
00070 char * tablename;
00071 dimeArray <dimeTableEntry*> tableEntries;
00072 dimeArray <dimeRecord*> records;
00073 dimeMemHandler *memHandler;
00074 };
00075
00076 #endif // ! DIME_TABLE_H
00077