fbxsdk/core/base/fbxcharptrset.h Source File
 
 
 
fbxsdk/core/base/fbxcharptrset.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_BASE_CHARPTRSET_H_
00014 #define _FBXSDK_CORE_BASE_CHARPTRSET_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/fbxsdk_nsbegin.h>
00019 
00022 class FBXSDK_DLL FbxCharPtrSet
00023 {
00024 public:
00027         FbxCharPtrSet(int pItemPerBlock=20);
00028 
00030         ~FbxCharPtrSet();
00031 
00035         void Add(const char* pReference, FbxHandle pItem);
00036 
00040         bool Remove(const char* pReference);
00041 
00046         FbxHandle Get(const char* pReference, int* PIndex=NULL);
00047 
00051         FbxHandle& operator[](int pIndex);
00052 
00057         FbxHandle GetFromIndex(int pIndex, const char** pReference=NULL);
00058 
00061         void RemoveFromIndex(int pIndex);
00062 
00065         inline int GetCount() const { return mCharPtrSetCount; }
00066 
00068         void Sort();
00069 
00071         void Clear();
00072 
00073 /*****************************************************************************************************************************
00074 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00075 *****************************************************************************************************************************/
00076 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00077         struct CharPtrSet;
00078 
00079         inline void SetCaseSensitive(bool pIsCaseSensitive){ mIsCaseSensitive = pIsCaseSensitive; }
00080 
00081 private:
00082         CharPtrSet*     FindEqual(const char* pReference) const;
00083 
00084         CharPtrSet*     mCharPtrSetArray;
00085         int                     mCharPtrSetCount;
00086         int                     mBlockCount;
00087         int                     mItemPerBlock;
00088         bool            mIsChanged;
00089         bool            mIsCaseSensitive;
00090 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00091 };
00092 
00093 #include <fbxsdk/fbxsdk_nsend.h>
00094 
00095 #endif /* _FBXSDK_CORE_BASE_CHARPTRSET_H_ */