- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# 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_ */