00001
00002
00003
00004
00005
00006
00007
00008
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