Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00013 #ifndef _FBXSDK_CORE_SYMBOL_H_
00014 #define _FBXSDK_CORE_SYMBOL_H_
00015
00016 #include <fbxsdk/fbxsdk_def.h>
00017
00018 #include <fbxsdk/core/base/fbxstring.h>
00019 #include <fbxsdk/core/base/fbxmap.h>
00020
00021 #include <fbxsdk/fbxsdk_nsbegin.h>
00022
00025 class FBXSDK_DLL FbxSymbol
00026 {
00027 public:
00032
00038 FbxSymbol(char const* pName, char const* pRealm);
00039
00041 ~FbxSymbol();
00043
00052 unsigned int GetID() const;
00054
00062 bool operator==(FbxSymbol const& pSymbol) const;
00063
00067 bool operator!=(FbxSymbol const& pSymbol) const;
00069
00070 private:
00071 unsigned int mID;
00072 };
00073
00074 typedef FbxMap< FbxString, int, FbxStringCompare > FbxStringSymbolMap;
00075
00076
00081 class FBXSDK_DLL FbxStringSymbol
00082 {
00083 public:
00088
00090 FbxStringSymbol();
00091
00096 FbxStringSymbol(const char* pName);
00097
00099 FbxStringSymbol(const FbxStringSymbol& pOther);
00100
00102 ~FbxStringSymbol();
00104
00106 inline operator const char*() const { return mItem ? ((const char*) mItem->GetKey()) : NULL; }
00107
00108
00112 inline bool IsEmpty() const
00113 {
00114 return !mItem || mItem->GetKey().IsEmpty();
00115 }
00116
00118 static void AllocateGlobalStringSymbolMap();
00119
00121 static void FreeGlobalStringSymbolMap();
00122
00127 FbxStringSymbol& operator=(const char* pName);
00128
00129 private:
00130 FbxStringSymbolMap::RecordType* mItem;
00131 };
00132
00133 #include <fbxsdk/fbxsdk_nsend.h>
00134
00135 #endif