20 #ifndef _FBXSDK_CORE_ARCH_ALLOC_H_    21 #define _FBXSDK_CORE_ARCH_ALLOC_H_    25 #if defined(_DEBUG) && defined(FBXSDK_ENV_WIN)    29 #if defined(FBXSDK_ENV_MAC)    30     #include <malloc/malloc.h>    37 #if defined(FBXSDK_CPU_32) && !defined(FBXSDK_ENV_IOS)    38     #define FBXSDK_MEMORY_ALIGNMENT ((size_t)8U)    40     #define FBXSDK_MEMORY_ALIGNMENT ((size_t)16U)    43 #define FBXSDK_MEMORY_COPY(dst, src, size) {memcpy(dst,src,size);}    45 typedef void*   (*FbxMallocProc)(size_t);           
    46 typedef void*   (*FbxCallocProc)(size_t, size_t);   
    47 typedef void*   (*FbxReallocProc)(
void*, size_t);   
   101 #ifndef DOXYGEN_SHOULD_SKIP_THIS   103     FBXSDK_DLL void* FbxCalloc(
size_t pCount, 
size_t pSize);
   104     FBXSDK_DLL void* FbxRealloc(
void* pData, 
size_t pSize);
   106     FBXSDK_DLL char* FbxStrDup(
const char* pString);
   107     FBXSDK_DLL wchar_t* FbxStrDupWC(
const wchar_t* pString);
   111     FBXSDK_DLL void* FbxMallocDebug(
size_t pSize, 
int pBlock, 
const char* pFile, 
int pLine);
   112     FBXSDK_DLL void* FbxCallocDebug(
size_t pCount, 
size_t pSize, 
int pBlock, 
const char* pFile, 
int pLine);
   113     FBXSDK_DLL void* FbxReallocDebug(
void* pData, 
size_t pSize, 
int pBlock, 
const char* pFile, 
int pLine);
   114     FBXSDK_DLL void FbxFreeDebug(
void* pData, 
int pBlock);
   117     #if defined(FBXSDK_ALLOC_DEBUG)   118         #define FbxMalloc(s) FbxMallocDebug(s, _NORMAL_BLOCK, __FILE__, __LINE__)   119         #define FbxCalloc(c, s) FbxCallocDebug(c, s, _NORMAL_BLOCK, __FILE__, __LINE__)   120         #define FbxRealloc(p, s) FbxReallocDebug(p, s, _NORMAL_BLOCK, __FILE__, __LINE__)   121         #define FbxFree(p) FbxFreeDebug(p, _NORMAL_BLOCK)   141 template<
typename T> 
void FbxDelete(T* p);
   142 template<
typename T> 
void FbxDelete(
const T* p);
   190 template<
class Type, 
class Policy=FbxDeletionPolicyDefault<Type> > 
class FbxAutoPtr   200     inline Type* 
Get()
 const { 
return mPtr; }
   206     inline operator Type* () 
const { 
return mPtr; }
   215     inline operator bool ()
 const { 
return mPtr != 0; }
   220         FBX_ASSERT(pPtr == 0 || pPtr != mPtr);  
   227         Type* TmpPtr = pOther.mPtr;
   243 #ifndef DOXYGEN_SHOULD_SKIP_THIS   288     int     DecRef() { count--; 
if (count < 0) count = 0; 
return count; }
   294 template<
class Type, 
class Policy=FbxDeletionPolicyDefault<Type> > 
class FbxSharedPtr   321         if (pSPtr.mPtr != 0 && mRef != 0) 
   336                 FBX_ASSERT(mRef != 
NULL);
   349     inline Type* 
Get()
 const { 
return mPtr; }
   355     inline operator Type* () 
const { 
return mPtr; }
   364     inline operator bool ()
 const { 
return mPtr != 0; }
   370 #ifndef DOXYGEN_SHOULD_SKIP_THIS   376             FBX_ASSERT(mPtr != 0);
   377             if (mRef->DecRef() == 0)
   379                 Policy::DeleteIt(&mPtr); 
 void Reset(Type *pPtr=0)
Reset the scoped pointer by swapping with another pointer. 
FbxAutoPtr mimics the auto_ptr class template implementation available in the C++ Standard Library...
FbxSharedDestroyPtr(Type *pPtr=0)
Construct from a pointer. 
FBX SDK environment definition. 
FbxSharedPtr(Type *pPtr)
Construct from a pointer. 
void FbxSetFreeHandler(FbxFreeProc pHandler)
Set the global memory freeing function used internally by the FBX SDK. 
FbxReallocProc FbxGetDefaultReallocHandler()
Get the default global memory re-allocation function used internally by the FBX SDK. 
Deletion policy for pointer template classes that uses the FbxFree() function. 
FbxReallocProc FbxGetReallocHandler()
Get the global memory re-allocation function used internally by the FBX SDK. 
FbxSharedPtr class describes an object that stores a pointer to a single allocated object of type Typ...
FbxCallocProc FbxGetDefaultCallocHandler()
Get the default global zero'd memory allocation function used internally by the FBX SDK...
FbxSharedPtr(const FbxSharedPtr &pSPtr)
Copy constructor. 
FbxMallocProc FbxGetMallocHandler()
Get the global memory allocation function used internally by the FBX SDK. 
~FbxSharedPtr()
Destructor. 
Type * operator->() const
Member access operator. 
static void DeleteIt(Type **pPtr)
Destruction policy implementation. 
FbxAutoDeletePtr(Type *pPtr=0)
Construct from a pointer. 
Deletion policy for pointer template classes that uses the Destroy() function. 
Type * Get() const
Retrieve the pointer it holds. 
FbxAutoDestroyPtr(Type *pPtr=0)
Construct from a pointer. 
void FbxDelete(T *p)
Deletion policy for pointer template classes that uses the FbxDelete() function. 
FbxSharedDeletePtr(Type *pPtr=0)
Construct from a pointer. 
bool operator!() const
Logical not operator. 
Type & operator*() const
Dereference operator. 
void *(* FbxReallocProc)(void *, size_t)
Function pointer signature used to replace "calloc". 
FbxCallocProc FbxGetCallocHandler()
Get the global zero'd memory allocation function used internally by the FBX SDK. 
static void DeleteIt(Type **pPtr)
Destruction policy implementation. 
FbxFreeProc FbxGetDefaultFreeHandler()
Get the default global memory freeing function used internally by the FBX SDK. 
void *(* FbxMallocProc)(size_t)
static void DeleteIt(Type **pPtr)
Destruction policy implementation. 
Type & operator*() const
Dereference operator. 
void *(* FbxCallocProc)(size_t, size_t)
Function pointer signature used to replace "malloc". 
Scoped pointer for FbxNew allocations, which call FbxDelete() to deallocate. 
void FbxSetMallocHandler(FbxMallocProc pHandler)
Function pointer signature used to replace "free". 
FbxFreeProc FbxGetFreeHandler()
Get the global memory freeing function used internally by the FBX SDK. 
void FbxSetReallocHandler(FbxReallocProc pHandler)
Set the global memory re-allocation function used internally by the FBX SDK. 
Scoped pointer for FbxMalloc allocations, which call FbxFree() to deallocate. 
void FbxSetCallocHandler(FbxCallocProc pHandler)
Set the global zero'd memory allocation function used internally by the FBX SDK. 
Scoped pointer for FbxObject derived classes, which call Destroy() to deallocate. ...
Type * Get() const
Retrieve the pointer it holds. 
bool operator!() const
Logical not operator. 
Deletion policy for pointer template classes that uses the delete operator. 
Scoped pointer for FbxNew allocations, which call FbxDelete() to deallocate. 
FbxAutoFreePtr(Type *pPtr=0)
Construct from a pointer. 
FbxMallocProc FbxGetDefaultMallocHandler()
Get the default global memory allocation function used internally by the FBX SDK. ...
void(* FbxFreeProc)(void *)
Function pointer signature used to replace "realloc". 
Scoped pointer for FbxMalloc allocations, which call FbxFree() to deallocate. 
FbxAutoPtr(Type *pPtr=0)
Construct from a pointer. 
FbxSharedPtr & operator=(const FbxSharedPtr &pSPtr)
Scoped pointer for FbxObject derived classes, which call Destroy() to deallocate. ...
void Swap(FbxAutoPtr &pOther)
Swap with another pointer. 
FbxSharedFreePtr(Type *pPtr=0)
Construct from a pointer. 
Type * operator->() const
Member access operator. 
static void DeleteIt(Type **mPtr)
Destruction policy implementation. 
Type * Release()
Release the pointer, so that it won't perform deletion in its destruction.