52    const std::list<IService*>& 
getServices() 
const override;
 
 
   69  if ( !s_appmgrInstance ) {
 
   71    s_svclocInstance = s_appmgrInstance;
 
   73  return s_appmgrInstance.
get();
 
   83  return iif ? iif.as<IAppMgrUI>().
get() : 
nullptr;
 
  103  if ( !s_svclocInstance ) {
 
  106      s_svclocInstance = iappmgr;
 
  107      if ( s_svclocInstance ) 
return s_svclocInstance;
 
  120  return s_svclocInstance;
 
  127  ISvcLocator* oldInstance = s_svclocInstance.
get();
 
  128  s_svclocInstance         = newInstance;
 
  129  s_appmgrInstance         = s_svclocInstance;
 
  137  IAppMgrUI* oldInstance = s_appmgrInstance.
get();
 
  138  s_appmgrInstance       = newInstance;
 
  139  s_svclocInstance       = s_appmgrInstance;
 
  148  IInterface* ii = ObjFactory::create( factname, 
nullptr ).release();
 
  150  IService* is = Service::Factory::create( factname, name, 
nullptr ).
release();
 
  152  IAlgorithm* ia = Algorithm::Factory::create( factname, name, 
nullptr ).release();
 
  155  void* libHandle = 
nullptr;
 
  157    ii = ObjFactory::create( factname, 
nullptr ).
release();
 
  159    is = Service::Factory::create( factname, name, 
nullptr ).release();
 
  161    ia = Algorithm::Factory::create( factname, name, 
nullptr ).release();
 
  166    std::cout << 
"Gaudi::Bootstrap: Not found DLL " << dllname << std::endl;
 
  183static std::list<IService*> s_bootServices;
 
  190  return s_appmgrInstance ? s_svclocInstance->getServices() : s_bootServices;
 
 
  193  return s_appmgrInstance && s_svclocInstance->existsService( name );
 
 
  197  return s_appmgrInstance ? s_svclocInstance->service( typeName, createIf ) : s_bootService;
 
 
  200#ifdef GAUDI_HASCLASSVISIBILITY 
  201#  pragma GCC visibility push( default ) 
  205#define PyHelper( x ) py_bootstrap_##x 
  209  return svcloc ? svcloc->service<
IInterface>( std::string_view{ name } ).get() : 
nullptr;
 
 
  213  return prop && prop->setProperty( name, value ).isSuccess();
 
 
  217  if ( !prop ) 
return nullptr;
 
  219  static std::string value;
 
  220  value = prop->getProperty( name ).toString();
 
  221  return value.c_str();
 
 
  228  return ui && ui->configure().isSuccess();
 
 
  236  Py_BEGIN_ALLOW_THREADS;
 
  237  stat = ep && ep->executeRun( maxevt ).isSuccess();
 
  238  Py_END_ALLOW_THREADS;
 
 
  242#define PyFSMHelper( s )                                                                                               \ 
  243  bool py_bootstrap_fsm_##s( IInterface* i ) {                                                                         \ 
  244    auto fsm = SmartIF<IStateful>( i );                                                                                \ 
  245    return fsm && fsm->s().isSuccess();                                                                                \ 
 
  257#ifdef GAUDI_HASCLASSVISIBILITY 
  258#  pragma GCC visibility pop 
const char *PyHelper getProperty(IInterface *p, char *name)
bool PyHelper configureApp(IInterface *app)
IInterface *PyHelper getService(IInterface *app, char *name)
bool py_bootstrap_app_run(IInterface *i, int maxevt)
IInterface *PyHelper createApplicationMgr()
void PyHelper setOption(IInterface *app, char *key, char *value)
bool PyHelper setProperty(IInterface *p, char *name, char *value)
int PyHelper ROOT_VERSION_CODE()
SmartIF< IFace > make_SmartIF(IFace *iface)
A dual-stage boostrap mechanism is used to ensure an orderly startup of the ApplicationMgr.
const std::list< IService * > & getServices() const override
SmartIF< IService > & service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true) override
Returns a smart pointer to a service.
bool existsService(std::string_view name) const override
Helper class to parse a string of format "type/name".
Application Manager User Interface.
Definition of the basic interface.
virtual unsigned long release() const =0
Release Interface instance.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Small smart pointer class with automatic reference counting for IInterface.
TYPE * get() const
Get interface pointer.
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
GAUDI_API ISvcLocator * svcLocator()
GAUDI_API IAppMgrUI * createApplicationMgr()
GAUDI_API IInterface * createInstance(const std::string &name, const std::string &factname, const std::string &ddlname)
GAUDI_API ISvcLocator * setInstance(ISvcLocator *newInstance)
Set new instance of service locator.
GAUDI_API IAppMgrUI * createApplicationMgrEx(const std::string &dllname, const std::string &factname)
get
decorate the vector of properties
GAUDI_API unsigned long loadDynamicLib(const std::string &name, ImageHandle *handle)
Load dynamic link library.
GAUDI_API const std::string getLastErrorString()
Get last system error as string.