Table.h

Go to the documentation of this file.
00001 /*
00002 Copyright (C) 2000  Dancer A.L Vesperman
00003 
00004 This program is free software; you can redistribute it and/or
00005 modify it under the terms of the GNU General Public License
00006 as published by the Free Software Foundation; either version 2
00007 of the License, or (at your option) any later version.
00008 
00009 This program is distributed in the hope that it will be useful,
00010 but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 GNU General Public License for more details.
00013 
00014 You should have received a copy of the GNU General Public License
00015 along with this program; if not, write to the Free Software
00016 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00017 */
00018 
00019 #ifndef _TABLE_H_
00020 #define _TABLE_H_
00021 
00022 #include <vector>
00023 #include <string>
00024 #include "U7file.h"
00025 #include "common_types.h"
00026 
00027 
00028 class Table : public U7file
00029 {
00030 protected:
00031   struct Reference
00032     {
00033     uint32 offset;
00034     uint16 size;
00035     Reference() : offset(0),size(0) {};
00036     };
00037   std::vector<Reference> object_list;
00038 public:
00039   Table(const std::string &name);
00040   Table(const Table &t) : object_list(t.object_list)
00041     {  }
00042   Table &operator=(const Table &t)
00043     {
00044     object_list=t.object_list;
00045     return *this;
00046     }
00047 
00048     virtual uint32  number_of_objects(void) { return object_list.size(); };
00049     virtual char *  retrieve(uint32 objnum,std::size_t &len); // To a memory block
00050     virtual const char *get_archive_type() { return "TABLE"; };
00051 private:
00052   void IndexTableFile(void);
00053   Table();
00054 };
00055 
00056 #endif

Generated on Mon Jul 9 14:42:45 2007 for ExultEngine by  doxygen 1.5.1