00001 /**************************************************************************************** 00002 00003 Copyright (C) 2010 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 00015 #ifndef FBXFILESDK_KFBXMODULES_KFBXSCOPEDLOADINGDIRECTORY_H 00016 #define FBXFILESDK_KFBXMODULES_KFBXSCOPEDLOADINGDIRECTORY_H 00017 00018 00019 #include <fbxfilesdk/fbxfilesdk_def.h> 00020 00021 // Local includes 00022 #include <fbxfilesdk/kfbxmodules/kfbxloadingstrategy.h> 00023 00024 // FBX includes 00025 #include <fbxfilesdk/components/kbaselib/klib/kstring.h> 00026 #include <fbxfilesdk/components/kbaselib/object/klibrary.h> 00027 00028 // FBX begin namespace 00029 #include <fbxfilesdk/fbxfilesdk_nsbegin.h> 00030 00031 class KFbxPluginHandle; 00032 00033 00038 class KFBX_DLL KFbxScopedLoadingDirectory : public KFbxLoadingStrategy 00039 { 00040 public: 00045 00050 KFbxScopedLoadingDirectory(const char* pDirectoryPath, const char* pPluginExtension); 00051 00054 virtual ~KFbxScopedLoadingDirectory(); 00055 00057 00058 private: 00060 // 00061 // WARNING! 00062 // 00063 // Anything beyond these lines may not be documented accurately and is 00064 // subject to change without notice. 00065 // 00067 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00068 KString mDirectoryPath; 00069 KString mExtension; 00070 00071 // From KFbxLoadingStrategy 00072 virtual bool SpecificLoad(KFbxPluginData& pData); 00073 virtual void SpecificUnload(); 00074 00075 // Plug-in management 00076 typedef KIntrusiveList<KFbxPluginHandle> PluginHandleList; 00077 PluginHandleList mPluginHandles; 00078 00079 #endif 00080 }; 00081 00082 00083 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00084 class KFbxPluginHandle 00085 { 00086 KFBX_LISTNODE(KFbxPluginHandle, 1); 00087 00088 public: 00089 KFbxPluginHandle(kLibHandle pInstance=NULL) : mInstance(pInstance){} 00090 kLibHandle mInstance; 00091 }; 00092 #endif //DOXYGEN_SHOULD_SKIP_THIS 00093 00094 00095 // FBX end namespace 00096 #include <fbxfilesdk/fbxfilesdk_nsend.h> 00097 00098 #endif // FBXFILESDK_KFBXMODULES_KFBXSCOPEDLOADINGDIRECTORY_H 00099