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