Main Page   Class Overview   Pixels   Images   Geometry   Quick Index  

HxNameTable.h

00001 /*
00002  *  Copyright (c) 1998, University of Amsterdam, The Netherlands.
00003  *  All rights reserved.
00004  *
00005  *
00006  *  Author(s):
00007  *  Dennis Koelma (koelma@wins.uva.nl)
00008  *  Edo Poll (poll@wins.uva.nl)
00009  */
00010 
00011 #ifndef HxNameTable_h
00012 #define HxNameTable_h
00013 
00014 #include "HxIoFwd.h"
00015 #include "HxString.h"
00016 
00017 #include <vector>
00018 #include <map>
00019 
00020 #pragma warning (disable : 4786)
00021 
00022 //#include "HxTracedObject.h"
00023 
00024 class L_HXBASIS HxNameTable// TRACED_OBJECT
00025 {
00026 public:
00027     typedef size_t  sizeType;
00028 
00029                     HxNameTable();
00030     virtual         ~HxNameTable();
00031     void            insert(HxString, sizeType);
00032     sizeType        getId(HxString);
00033     HxString        getName(sizeType) const;
00034 
00035     STD_OSTREAM&    put(STD_OSTREAM&) const;
00036 
00037 private:
00038     typedef std::map<HxString, sizeType, std::less<HxString> >    Map;
00039     typedef Map::value_type                             Entry;
00040     typedef std::vector<HxString>                       Index;
00041 
00042 #pragma warning (disable : 4251 4786)
00043     Map         _map;
00044     Index       _index;
00045 #pragma warning (default : 4251)
00046 };
00047 
00048 inline STD_OSTREAM&
00049 operator<<(STD_OSTREAM& os, const HxNameTable& nameTable)
00050 {
00051     return nameTable.put(os);
00052 }
00053 
00054 #endif

Generated on Tue Jan 8 13:59:15 2002 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001