⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pluginmanager.cpp

📁 这是国外的resip协议栈
💻 CPP
字号:
#include <cppunit/config/SourcePrefix.h>#include <cppunit/XmlOutputterHook.h>#if !defined(CPPUNIT_NO_TESTPLUGIN)#include <cppunit/extensions/TestFactoryRegistry.h>#include <cppunit/plugin/PlugInManager.h>#include <cppunit/plugin/TestPlugIn.h>#include <cppunit/plugin/DynamicLibraryManager.h>CPPUNIT_NS_BEGINPlugInManager::PlugInManager(){}PlugInManager::~PlugInManager(){  for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )    unload( *it );}voidPlugInManager::load( const std::string &libraryFileName,                     const PlugInParameters &parameters ){  PlugInInfo info;  info.m_fileName = libraryFileName;  info.m_manager = new DynamicLibraryManager( libraryFileName );  TestPlugInSignature plug = (TestPlugInSignature)info.m_manager->findSymbol(         CPPUNIT_STRINGIZE( CPPUNIT_PLUGIN_EXPORTED_NAME ) );  info.m_interface = (*plug)();  m_plugIns.push_back( info );    info.m_interface->initialize( &TestFactoryRegistry::getRegistry(), parameters );}void PlugInManager::unload( const std::string &libraryFileName ){  for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )  {    if ( (*it).m_fileName == libraryFileName )    {      unload( *it );      m_plugIns.erase( it );      break;    }  }}void PlugInManager::addListener( TestResult *eventManager ){  for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )    (*it).m_interface->addListener( eventManager );}void PlugInManager::removeListener( TestResult *eventManager ){  for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )    (*it).m_interface->removeListener( eventManager );}void PlugInManager::unload( PlugInInfo &plugIn ){  try  {    plugIn.m_interface->uninitialize( &TestFactoryRegistry::getRegistry() );    delete plugIn.m_manager;  }  catch (...)  {    delete plugIn.m_manager;    plugIn.m_manager = NULL;    throw;  }}void PlugInManager::addXmlOutputterHooks( XmlOutputter *outputter ){  for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )    (*it).m_interface->addXmlOutputterHooks( outputter );}void PlugInManager::removeXmlOutputterHooks(){  for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )    (*it).m_interface->removeXmlOutputterHooks();}CPPUNIT_NS_END#endif // !defined(CPPUNIT_NO_TESTPLUGIN)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -