00001 /**************************************************************************\ 00002 * 00003 * FILE: Table.h 00004 * 00005 * This source file is part of DIME. 00006 * Copyright (C) 1998-1999 by Systems In Motion. All rights reserved. 00007 * 00008 * This library is free software; you can redistribute it and/or modify it 00009 * under the terms of the GNU General Public License, version 2, as 00010 * published by the Free Software Foundation. 00011 * 00012 * This library is distributed in the hope that it will be useful, but 00013 * WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 * General Public License (the accompanying file named COPYING) for more 00016 * details. 00017 * 00018 ************************************************************************** 00019 * 00020 * If you need DIME for a non-GPL project, contact Systems In Motion 00021 * to acquire a Professional Edition License: 00022 * 00023 * Systems In Motion http://www.sim.no/ 00024 * Prof. Brochs gate 6 sales@sim.no 00025 * N-7030 Trondheim Voice: +47 22114160 00026 * NORWAY Fax: +47 67172912 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 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 const char *tableName() const; 00055 00056 int getNumTableEntries() const; 00057 dimeTableEntry *getTableEntry(const int idx); 00058 void insertTableEntry(dimeTableEntry * const tableEntry, const int idx = -1); 00059 void removeTableEntry(const int idx); 00060 00061 int getNumTableRecords() const; 00062 dimeRecord *getTableRecord(const int idx); 00063 void insertTableRecord(dimeRecord * const record, const int idx = -1); 00064 void removeTableRecord(const int idx); 00065 00066 private: 00067 int16 maxEntries; // dummy variable read from file 00068 dimeArray <dimeTableEntry*> tableEntries; 00069 dimeArray <dimeRecord*> records; 00070 dimeMemHandler *memHandler; 00071 00072 }; // class dimeTable 00073 00074 #endif // ! DIME_TABLE_H 00075