EgtGeomKernel :

- aggiunta possibilità di avere lista nomi dei gestori di ObjUser.
This commit is contained in:
Dario Sassi
2015-05-26 15:49:14 +00:00
parent 82e8ab60b3
commit dc29bb23af
2 changed files with 22 additions and 3 deletions
+18 -3
View File
@@ -15,18 +15,20 @@
#include "stdafx.h"
#include "/EgtDev/Include/EGkObjUserFactory.h"
using namespace std ;
//----------------------------------------------------------------------------
bool
ObjUserFactory::Register( const std::string& sName, ObjUserCreator Creator)
ObjUserFactory::Register( const string& sName, ObjUserCreator Creator)
{
return GetCreatorMap().emplace( sName, Creator).second ;
}
//----------------------------------------------------------------------------
IObjUser*
ObjUserFactory::Create( const std::string& sName)
ObjUserFactory::Create( const string& sName)
{
CreatorMap::iterator Iter = GetCreatorMap().find( sName) ;
auto Iter = GetCreatorMap().find( sName) ;
if ( Iter != GetCreatorMap().end()) {
if ( Iter->second != nullptr)
return Iter->second() ;
@@ -34,6 +36,19 @@ ObjUserFactory::Create( const std::string& sName)
return nullptr ;
}
//----------------------------------------------------------------------------
bool
ObjUserFactory::GetList( STRVECTOR& vsList)
{
// verifico parametro di ritorno
if ( &vsList == nullptr)
return false ;
// ciclo sugli oggetti registrati
for ( auto Iter = GetCreatorMap().cbegin() ; Iter != GetCreatorMap().cend() ; ++ Iter)
vsList.emplace_back( Iter->first) ;
return true ;
}
//----------------------------------------------------------------------------
ObjUserFactory::CreatorMap&
ObjUserFactory::GetCreatorMap( void)