📄 dynamicfactory.cpp
字号:
#include "dynamicfactory.h"
#include "factory.h"
DynamicFactory::DynamicFactory( const string& __filename, const string& __getFactory_func_name )
: _filename(__filename), _getFactory_func_name(__getFactory_func_name)
{
_factory= NULL;
}
DynamicFactory::~DynamicFactory()
{
unload();
}
bool DynamicFactory::load(void)//return true if succeeded
{
if( !_factory ){
bool ret= _lib.load( _filename );
if( ret ){//loaded
GetFactoryFunc getFactory= static_cast<GetFactoryFunc>( _lib.getSymbol( _getFactory_func_name ) );
if( getFactory ){
_factory= getFactory();
if( _factory ){
return true;
}
}
}
}
return false;
}
void* DynamicFactory::newInstance( const string& __name ){ if( _factory ){ return _factory->newInstance( __name ); }else{ return NULL; }}void* DynamicFactory::newInstance( const int __type ){ if( _factory ){ return _factory->newInstance( __type ); }else{ return NULL; }}void DynamicFactory::parse_types( string& __typetab_filename ){ if( _factory ){ _factory->parse_types( __typetab_filename ); }}void DynamicFactory::unload(void)
{
_factory= NULL;
_lib.unload();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -