fbxsdk/core/fbxsymbol.h Source File
 
 
 
fbxsdk/core/fbxsymbol.h
Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
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(const char* pName, const char* 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 /* _FBXSDK_CORE_SYMBOL_H_ */