00001 /* 00002 * Copyright (c) 1999, University of Amsterdam, The Netherlands. 00003 * All rights reserved. 00004 * 00005 * Author(s): 00006 * Edo Poll (poll@wins.uva.nl) 00007 * Marc Navarro (mnavarro@wins.uva.nl) 00008 * Dennis Koelma (koelma@wins.uva.nl) 00009 */ 00010 00011 #ifndef HxImgFtorKeyNameTable_h 00012 #define HxImgFtorKeyNameTable_h 00013 00014 #include "HxNameTable.h" 00015 00016 00019 class HxImgFtorKeyNameTable 00020 { 00021 public: 00022 00023 typedef size_t SizeType; 00024 00025 static HxImgFtorKeyNameTable& instance(); 00026 00027 HxString getClassName(SizeType id); 00028 SizeType getClassNameId(HxString name); 00029 HxString getName(SizeType id); 00030 SizeType getNameId(HxString name); 00031 HxString getTypeName(SizeType id); 00032 SizeType getTypeNameId(HxString name); 00033 00034 STD_OSTREAM& put(STD_OSTREAM& os) const; 00035 00036 ~HxImgFtorKeyNameTable(); 00037 00038 private: 00039 00040 HxImgFtorKeyNameTable(); 00041 HxImgFtorKeyNameTable(const HxImgFtorKeyNameTable&); 00042 00043 HxNameTable _nameTable; 00044 HxNameTable _typeNameTable; 00045 HxNameTable _classNameTable; 00046 }; 00047 00048 inline STD_OSTREAM& 00049 operator<<(STD_OSTREAM& os, const HxImgFtorKeyNameTable& t) { 00050 return t.put(os); 00051 } 00052 00053 #endif