not enough information... skip it
437 const Strings_t::const_iterator endLib = libs.end();
439 const std::string gaudiSvc =
"GaudiCoreSvc";
440 const bool isGaudiSvc = ( std::find( libs.begin(), endLib, gaudiSvc ) != endLib );
444 cout <<
"ERROR: ApplicationMgr can not be created. Check environment" << endl;
450 Registry&
registry = Registry::instance();
452 std::set<std::string> bkgNames = registry.loadedFactories();
461 for ( Strings_t::const_iterator iLib=libs.begin(); iLib != endLib; ++iLib ) {
463 std::cout <<
":::: processing library: " << *iLib <<
"..." << std::endl;
479 std::set<std::string>
factories = registry.loadedFactories();
481 for ( std::set<std::string>::iterator it = factories.begin();
482 it != factories.end(); ++it ) {
483 const string ident = *it;
484 if ( bkgNames.find(ident) != bkgNames.end() ) {
486 cout <<
"\t==> skipping [" << ident <<
"]..." << endl;
491 const Registry::FactoryInfo info = registry.getInfo(*it);
492 const string rtype = info.rtype;
495 if (info.properties.find(
"ReflexName") != info.properties.end())
503 cout <<
"WARNING: library [" << *iLib <<
"] exposes factory ["
504 << ident <<
"] which is declared in ["
505 << DsoUtils::dsoName(info.ptr) <<
"] !!" << endl;
511 if ( ident ==
"ApplicationMgr" ) type =
"ApplicationMgr";
512 else if ( rtype ==
typeid(
IInterface*).name() ) type =
"IInterface";
513 else if ( rtype ==
typeid(
IAlgorithm*).name() ) type =
"Algorithm";
514 else if ( rtype ==
typeid(
IService* ).name() ) type =
"Service";
515 else if ( rtype ==
typeid(
IAlgTool* ).name() ) type =
"AlgTool";
516 else if ( rtype ==
typeid(
IAuditor* ).name() ) type =
"Auditor";
517 else if ( rtype ==
typeid(
IConverter*).name() ) type =
"Converter";
518 else if ( rtype ==
typeid(
DataObject*).name() ) type =
"DataObject";
519 else type =
"Unknown", known =
false;
524 if ( type ==
"IInterface" ) {
530 if ( type ==
"Converter" || type ==
"DataObject" ) {
537 <<
" Component [" << ident <<
"] is skipped !"
542 cout <<
" - component: " << info.className <<
" (";
543 if (info.className != name)
544 cout << name <<
": ";
545 cout << type <<
")" << endl;
547 string cname =
"DefaultName";
550 if ( type ==
"Algorithm" ) {
553 else if ( type ==
"Service") {
556 else if ( type ==
"AlgTool") {
557 prop =
SmartIF<IAlgTool>(AlgTool::Factory::create(ident, cname, type, dummySvc));
561 else if ( type ==
"Auditor") {
564 else if ( type ==
"ApplicationMgr") {
571 catch ( exception& e ) {
572 cout <<
"ERROR: Error instantiating " << name
573 <<
" from " << *iLib << endl;
574 cout <<
"ERROR: Got exception: " << e.what() << endl;
579 cout <<
"ERROR: Error instantiating " << name
580 <<
" from " << *iLib << endl;
585 if (
genComponent( *iLib, name, type, prop->getProperties() )) {
590 cout <<
"ERROR: could not cast IInterface* object to an IProperty* !\n"
591 <<
"ERROR: return type from PluginSvc is [" << rtype <<
"]...\n"
592 <<
"ERROR: NO Configurable will be generated for ["
603 fs::path(*iLib+
"Conf.py") ).
string();
605 fs::path(*iLib+
".confdb") ).
string();
607 std::fstream py( pyName.c_str(),
608 std::ios_base::out|std::ios_base::trunc );
609 std::fstream db( dbName.c_str(),
610 std::ios_base::out|std::ios_base::trunc );
613 if (!userModule.empty())
614 py <<
"from " << userModule <<
" import *" <<endl;
623 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.
int genComponent(const std::string &libName, const std::string &componentName, const std::string &componentType, const vector< Property * > &properties)
void * ImageHandle
Definition of an image handle.
stringstream m_pyBuf
buffer of auto-generated configurables
GAUDIPS_API Logger & logger()
Return the current logger instance.
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.
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram
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 genTrailer(std::ostream &pyOut, std::ostream &dbOut)
GAUDI_API const std::string getLastErrorString()
Get last system error as string.
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.
void reset(TYPE *ptr=0)
Set the internal pointer to the passed one disposing of the old one.
std::string libNativeName(const std::string &libName)
void genBody(std::ostream &pyOut, std::ostream &dbOut)
GAUDI_API unsigned long loadDynamicLib(const std::string &name, ImageHandle *handle)
Load dynamic link library.