not enough information... skip it
444 const auto endLib = libs.end();
446 static const std::string gaudiSvc =
"GaudiCoreSvc";
447 const bool isGaudiSvc = (
std::find( libs.begin(), endLib, gaudiSvc ) != endLib );
451 cout <<
"ERROR: ApplicationMgr can not be created. Check environment" <<
endl;
457 Registry&
registry = Registry::instance();
459 auto bkgNames = registry.loadedFactoryNames();
468 for (
const auto& iLib : libs ) {
470 LOG_INFO <<
":::: processing library: " << iLib <<
"...";
487 for (
const auto& factoryName : registry.loadedFactoryNames() ) {
488 if ( bkgNames.find( factoryName ) != bkgNames.end() ) {
490 LOG_INFO <<
"\t==> skipping [" << factoryName <<
"]...";
495 const Registry::FactoryInfo info = registry.getInfo( factoryName );
499 if ( info.properties.find(
"ReflexName" ) != info.properties.end() )
continue;
506 LOG_WARNING <<
"library [" << iLib <<
"] exposes factory [" << factoryName <<
"] which is declared in [" 507 << DsoUtils::dsoName( info.ptr ) <<
"] !!";
512 if ( factoryName ==
"ApplicationMgr" )
513 type = component_t::ApplicationMgr;
515 type = component_t::IInterface;
517 type = component_t::Algorithm;
519 type = component_t::Service;
521 type = component_t::AlgTool;
523 type = component_t::Auditor;
525 type = component_t::Converter;
531 if ( type == component_t::IInterface ) {
542 if ( type == component_t::Unknown ) {
544 <<
" Component [" << factoryName <<
"] is skipped !";
548 LOG_INFO <<
" - component: " << info.className <<
" (" 549 << ( info.className != name ? ( name +
": " ) :
std::string() ) << type <<
")";
551 string cname =
"DefaultName";
555 case component_t::Algorithm:
558 case component_t::Service:
559 prop =
SmartIF<IService>( Service::Factory::create( factoryName, cname, svcLoc ) );
561 case component_t::AlgTool:
566 case component_t::Auditor:
567 prop =
SmartIF<IAuditor>( Auditor::Factory::create( factoryName, cname, svcLoc ) );
569 case component_t::ApplicationMgr:
576 LOG_ERROR <<
"Error instantiating " << name <<
" from " << iLib;
581 LOG_ERROR <<
"Error instantiating " << name <<
" from " << iLib;
591 LOG_ERROR <<
"could not cast IInterface* object to an IProperty* !";
592 LOG_ERROR <<
"return type from PluginSvc is [" << rtype <<
"]...";
593 LOG_ERROR <<
"NO Configurable will be generated for [" << name <<
"] !";
604 std::fstream py( pyName, std::ios_base::out | std::ios_base::trunc );
605 std::fstream db( dbName, std::ios_base::out | std::ios_base::trunc );
608 if ( !userModule.
empty() ) py <<
"from " << userModule <<
" import *" << endl;
617 return allGood ? EXIT_SUCCESS : EXIT_FAILURE;
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
The data converters are responsible to translate data from one representation into another...
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
void * ImageHandle
Definition of an image handle.
stringstream m_pyBuf
buffer of auto-generated configurables
GAUDIPS_API Logger & logger()
Return the current logger instance.
bool m_importDataObjectHandles
GAUDI_API ISvcLocator * svcLocator()
General service interface definition.
Definition of the basic interface.
void genHeader(std::ostream &pyOut, std::ostream &dbOut)
stringstream m_dbBuf
buffer of generated configurables informations for the "Db" file The "Db" file is holding information...
The IAlgorithm is the interface implemented by the Algorithm base class.
virtual const std::vector< Gaudi::Details::PropertyBase * > & getProperties() const =0
Get list of properties.
string m_outputDirName
absolute path to the directory where genconf will store auto-generated files (Configurables and Confi...
virtual unsigned long release()=0
Release Interface instance.
bool m_importGaudiHandles
switch to decide if the generated configurables need to import GaudiHandles (ie: if one of the compon...
In-memory database of the loaded factories.
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
static GAUDI_API void disableChecking()
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
void genTrailer(std::ostream &pyOut, std::ostream &dbOut)
GAUDI_API const std::string getLastErrorString()
Get last system error as string.
bool genComponent(const std::string &libName, const std::string &componentName, component_t componentType, const vector< PropertyBase * > &properties)
Base class for all services.
A DataObject is the base class of any identifiable object on any data store.
The IAuditor is the interface implmented by the AlgAuditor base class.
std::string libNativeName(const std::string &libName)
void genBody(std::ostream &pyOut, std::ostream &dbOut)
std::string toString(const Type &)
GAUDI_API unsigned long loadDynamicLib(const std::string &name, ImageHandle *handle)
Load dynamic link library.