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_LOADING_STRATEGY_H_ 00014 #define _FBXSDK_CORE_LOADING_STRATEGY_H_ 00015 00016 #include <fbxsdk/fbxsdk_def.h> 00017 00018 #include <fbxsdk/core/fbxplugin.h> 00019 #include <fbxsdk/core/fbxplugincontainer.h> 00020 00021 #include <fbxsdk/fbxsdk_nsbegin.h> 00022 00029 class FBXSDK_DLL FbxLoadingStrategy : public FbxPluginContainer 00030 { 00031 public: 00034 enum EState 00035 { 00036 eAllLoaded, 00037 eNoneLoaded, 00038 eAllFailed, 00039 eSomeFailed 00040 }; 00041 00050 EState Load(FbxPluginData& pData); 00051 00054 void Unload(); 00056 00057 protected: 00066 virtual bool SpecificLoad(FbxPluginData& pData) = 0; 00067 00070 virtual void SpecificUnload() = 0; 00072 00074 EState mPluginsLoadedState; 00075 00076 private: 00077 FbxPluginData mData; 00078 }; 00079 00080 #include <fbxsdk/fbxsdk_nsend.h> 00081 00082 #endif /* _FBXSDK_CORE_LOADING_STRATEGY_H_ */