kfbxscopedloadingdirectory.h

Go to the documentation of this file.
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