fbxscopedloadingdirectory.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 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_SCOPED_LOADING_DIRECTORY_H_
00014 #define _FBXSDK_CORE_SCOPED_LOADING_DIRECTORY_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 // Local includes
00019 #include <fbxsdk/core/fbxloadingstrategy.h>
00020 
00021 // FBX includes
00022 #include <fbxsdk/core/base/fbxstring.h>
00023 #include <fbxsdk/core/fbxmodule.h>
00024 
00025 
00026 #include <fbxsdk/fbxsdk_nsbegin.h>
00027 
00028 class FbxPluginHandle;
00029 
00034 class FBXSDK_DLL FbxScopedLoadingDirectory : public FbxLoadingStrategy
00035 {
00036 public:
00041 
00046     FbxScopedLoadingDirectory(const char* pDirectoryPath, const char* pPluginExtension);
00047 
00050     virtual ~FbxScopedLoadingDirectory();
00051 
00053 
00054 private:
00056     //
00057     //  WARNING!
00058     //
00059     //  Anything beyond these lines may not be documented accurately and is 
00060     //  subject to change without notice.
00061     //
00063 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00064     FbxString mDirectoryPath;
00065     FbxString mExtension;
00066 
00067     // From FbxLoadingStrategy
00068     virtual bool SpecificLoad(FbxPluginData& pData);
00069     virtual void SpecificUnload();
00070 
00071     // Plug-in management
00072     typedef FbxIntrusiveList<FbxPluginHandle> FbxPluginHandleList;
00073     FbxPluginHandleList mPluginHandles;
00074 
00075 #endif
00076 };
00077 
00078 
00079 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00080 class FbxPluginHandle
00081 {
00082     FBXSDK_INTRUSIVE_LIST_NODE(FbxPluginHandle, 1);
00083 
00084 public:
00085     FbxPluginHandle(FbxModule pInstance=NULL) : mInstance(pInstance){}
00086     FbxModule mInstance;
00087 };
00088 #endif //DOXYGEN_SHOULD_SKIP_THIS
00089 
00090 #include <fbxsdk/fbxsdk_nsend.h>
00091 
00092 #endif /* _FBXSDK_CORE_SCOPED_LOADING_DIRECTORY_H_ */