fbxplugincontainer.h 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /****************************************************************************************
  2. Copyright (C) 2015 Autodesk, Inc.
  3. All rights reserved.
  4. Use of this software is subject to the terms of the Autodesk license agreement
  5. provided at the time of installation or download, or which otherwise accompanies
  6. this software in either electronic or hard copy form.
  7. ****************************************************************************************/
  8. //! \file fbxplugincontainer.h
  9. #ifndef _FBXSDK_CORE_PLUGIN_CONTAINER_H_
  10. #define _FBXSDK_CORE_PLUGIN_CONTAINER_H_
  11. #include <fbxsdk/fbxsdk_def.h>
  12. #ifndef FBXSDK_ENV_WINSTORE
  13. #include <fbxsdk/core/fbxplugin.h>
  14. #include <fbxsdk/core/fbxemitter.h>
  15. #include <fbxsdk/fbxsdk_nsbegin.h>
  16. /** Manages registration and ownership of FBX SDK plug-ins (FbxPlugin).
  17. * The FBX SDK will provide a pointer to FbxPluginContainer as an argument
  18. * to the FBXPluginRegistration() function exported from a plug-in's DLL.
  19. * A plug-in must register itself explicitly with the FbxPluginContainer
  20. * by calling FbxPluginContainer::Register() after it is constructed.
  21. * For an example of this process see the code example in the FbxPlugin
  22. * class documentation.
  23. * \see FbxPlugin
  24. */
  25. class FBXSDK_DLL FbxPluginContainer : public FbxEmitter
  26. {
  27. public:
  28. //! Definition of a plug-in list.
  29. typedef FbxIntrusiveList<FbxPlugin> PluginList;
  30. /** The registration function that must be called when the module containing the plug-in is loaded.
  31. * \param pPlugin The plug-in to register.
  32. */
  33. void Register(FbxPlugin& pPlugin);
  34. /** The unregistration function that must be called when the module containing the plug-in is unloaded.
  35. * \param pPlugin The plug-in to unregister.
  36. */
  37. void Unregister(FbxPlugin& pPlugin);
  38. /** Const accessor to the list of plug-ins owned by the container.
  39. * \return A list of plug-in registered to this container.
  40. */
  41. const PluginList& GetPlugins() const;
  42. /** Accessor to the list of plug-ins owned by the container.
  43. * \return A list of plug-in registered to this container.
  44. */
  45. PluginList& GetPlugins();
  46. /*****************************************************************************************************************************
  47. ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
  48. *****************************************************************************************************************************/
  49. #ifndef DOXYGEN_SHOULD_SKIP_THIS
  50. protected:
  51. virtual ~FbxPluginContainer();
  52. PluginList mPlugins;
  53. #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
  54. };
  55. #include <fbxsdk/fbxsdk_nsend.h>
  56. #endif /* !FBXSDK_ENV_WINSTORE */
  57. #endif /* _FBXSDK_CORE_PLUGIN_CONTAINER_H_ */