not enough information... skip it
485 const Strings_t::const_iterator endLib = libs.end();
487 const std::string gaudiSvc =
"GaudiCoreSvc";
488 const bool isGaudiSvc = ( std::find( libs.begin(), endLib, gaudiSvc ) != endLib );
492 cout <<
"ERROR: ApplicationMgr can not be created. Check environment" << endl;
498 Registry&
registry = Registry::instance();
500 std::set<std::string> bkgNames = registry.loadedFactories();
509 for ( Strings_t::const_iterator iLib=libs.begin(); iLib != endLib; ++iLib ) {
511 LOG_INFO <<
":::: processing library: " << *iLib <<
"...";
527 std::set<std::string>
factories = registry.loadedFactories();
529 for ( std::set<std::string>::iterator it = factories.begin();
530 it != factories.end(); ++it ) {
531 const string ident = *it;
532 if ( bkgNames.find(ident) != bkgNames.end() ) {
534 LOG_INFO <<
"\t==> skipping [" << ident <<
"]...";
539 const Registry::FactoryInfo info = registry.getInfo(*it);
540 const string rtype = info.rtype;
543 if (info.properties.find(
"ReflexName") != info.properties.end())
551 LOG_WARNING <<
"library [" << *iLib <<
"] exposes factory ["
552 << ident <<
"] which is declared in ["
553 << DsoUtils::dsoName(info.ptr) <<
"] !!";
559 if ( ident ==
"ApplicationMgr" ) type =
"ApplicationMgr";
560 else if ( rtype ==
typeid(
IInterface*).name() ) type =
"IInterface";
561 else if ( rtype ==
typeid(
IAlgorithm*).name() ) type =
"Algorithm";
562 else if ( rtype ==
typeid(
IService* ).name() ) type =
"Service";
563 else if ( rtype ==
typeid(
IAlgTool* ).name() ) type =
"AlgTool";
564 else if ( rtype ==
typeid(
IAuditor* ).name() ) type =
"Auditor";
565 else if ( rtype ==
typeid(
IConverter*).name() ) type =
"Converter";
566 else if ( rtype ==
typeid(
DataObject*).name() ) type =
"DataObject";
567 else type =
"Unknown", known =
false;
572 if ( type ==
"IInterface" ) {
578 if ( type ==
"Converter" || type ==
"DataObject" ) {
585 <<
" Component [" << ident <<
"] is skipped !";
589 LOG_INFO <<
" - component: " << info.className
590 <<
" (" << (info.className != name ? (name +
": ")
594 string cname =
"DefaultName";
597 if ( type ==
"Algorithm" ) {
600 else if ( type ==
"Service") {
603 else if ( type ==
"AlgTool") {
604 prop =
SmartIF<IAlgTool>(AlgTool::Factory::create(ident, cname, type, dummySvc));
608 else if ( type ==
"Auditor") {
611 else if ( type ==
"ApplicationMgr") {
618 catch ( exception& e ) {
619 LOG_ERROR <<
"Error instantiating " << name
620 <<
" from " << *iLib;
621 LOG_ERROR <<
"Got exception: " << e.what();
626 LOG_ERROR <<
"Error instantiating " << name
627 <<
" from " << *iLib;
637 LOG_ERROR <<
"could not cast IInterface* object to an IProperty* !";
638 LOG_ERROR <<
"return type from PluginSvc is [" << rtype <<
"]...";
639 LOG_ERROR <<
"NO Configurable will be generated for ["
649 fs::path(*iLib+
"Conf.py") ).
string();
651 fs::path(*iLib+
".confdb") ).
string();
653 std::fstream py( pyName.c_str(),
654 std::ios_base::out|std::ios_base::trunc );
655 std::fstream db( dbName.c_str(),
656 std::ios_base::out|std::ios_base::trunc );
659 if (!userModule.empty())
660 py <<
"from " << userModule <<
" import *" <<endl;
669 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...
virtual const std::vector< Property * > & getProperties() const =0
Get list of properties.
int genComponent(const std::string &libName, const std::string &componentName, const std::string &componentType, const vector< Property * > &properties)
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
GAUDIPS_API Logger & logger()
Return the current logger instance.
void * ImageHandle
Definition of an image handle.
stringstream m_pyBuf
buffer of auto-generated configurables
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.
void reset(TYPE *ptr=0)
Set the internal pointer to the passed one disposing of the old one.
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...
GAUDI_API const std::string getLastErrorString()
Get last system error as string.
In-memory database of the loaded factories.
GAUDI_API unsigned long loadDynamicLib(const std::string &name, ImageHandle *handle)
Load dynamic link library.
virtual unsigned long addRef()=0
Increment the reference count of Interface instance.
static GAUDI_API void disableChecking()
void genTrailer(std::ostream &pyOut, std::ostream &dbOut)
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)