/
jiteman
/
jsd-foreign-libreoffice-cppunit
Обзор
Документация
Войти
/
jiteman
/
jsd-foreign-libreoffice-cppunit
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
include/cppunit/plugin/PlugInManager.h
113 строк
3 KB
jiteman
initial commit has been done
14 апр 2024, 15:49
14 апр 2024, 15:49
4c53812
Код
Авторство
О чём код?
#ifndef CPPUNIT_PLUGIN_PLUGINMANAGER_H #define CPPUNIT_PLUGIN_PLUGINMANAGER_H #include <cppunit/Portability.h> #if !defined(CPPUNIT_NO_TESTPLUGIN) #if CPPUNIT_NEED_DLL_DECL #pragma warning( push ) #pragma warning( disable: 4251 ) // X needs to have dll-interface to be used by clients of class Z #endif #include <cppunit/plugin/PlugInParameters.h> struct CppUnitTestPlugIn; CPPUNIT_NS_BEGIN class DynamicLibraryManager; class TestResult; class XmlOutputter; /*! \brief Manges TestPlugIn. */ class CPPUNIT_API PlugInManager { public: /*! Constructs a PlugInManager object. */ PlugInManager(); /// Destructor. virtual ~PlugInManager(); /*! \brief Loads the specified plug-in. * * After being loaded, the CppUnitTestPlugIn::initialize() is called. * * \param libraryFileName Name of the file that contains the TestPlugIn. * \param parameters List of string passed to the plug-in. * \return Pointer on the DynamicLibraryManager associated to the library. * Valid until the library is unloaded. Never \c nullptr. * \exception DynamicLibraryManagerException is thrown if an error occurs during loading. */ void load( const std::string &libraryFileName, const PlugInParameters ¶meters = PlugInParameters() ); /*! \brief Unloads the specified plug-in. * \param libraryFileName Name of the file that contains the TestPlugIn passed * to a previous call to load(). */ void unload( const std::string &libraryFileName ); /*! \brief Gives a chance to each loaded plug-in to register TestListener. * * For each plug-in, call CppUnitTestPlugIn::addListener(). */ void addListener( TestResult *eventManager ); /*! \brief Gives a chance to each loaded plug-in to unregister TestListener. * For each plug-in, call CppUnitTestPlugIn::removeListener(). */ void removeListener( TestResult *eventManager ); /*! \brief Provides a way for the plug-in to register some XmlOutputterHook. */ void addXmlOutputterHooks( XmlOutputter *outputter ); /*! \brief Called when the XmlOutputter is destroyed. * * Can be used to free some resources allocated by addXmlOutputterHooks(). */ void removeXmlOutputterHooks(); protected: /*! \brief (INTERNAL) Information about a specific plug-in. */ struct PlugInInfo { std::string m_fileName; DynamicLibraryManager *m_manager; CppUnitTestPlugIn *m_interface; }; /*! Unloads the specified plug-in. * \param plugIn Information about the plug-in. */ void unload( PlugInInfo &plugIn ); private: /// Prevents the use of the copy constructor. PlugInManager( const PlugInManager © ); /// Prevents the use of the copy operator. void operator =( const PlugInManager © ); private: typedef std::deque<PlugInInfo> PlugIns; PlugIns m_plugIns; }; CPPUNIT_NS_END #if CPPUNIT_NEED_DLL_DECL #pragma warning( pop ) #endif #endif // !defined(CPPUNIT_NO_TESTPLUGIN) #endif // CPPUNIT_PLUGIN_PLUGINMANAGER_H