45 #if !defined( GAUDI_V22_API ) || defined( G22_NEW_SVCLOCATOR ) 49 const bool createIf =
true )
override;
68 if ( !s_appmgrInstance ) {
70 s_svclocInstance = s_appmgrInstance;
72 return s_appmgrInstance.
get();
82 return iif ? iif.as<
IAppMgrUI>().
get() :
nullptr;
102 if ( !s_svclocInstance ) {
105 s_svclocInstance = iappmgr;
106 if ( s_svclocInstance )
return s_svclocInstance;
119 return s_svclocInstance;
127 s_svclocInstance = newInstance;
128 s_appmgrInstance = s_svclocInstance;
137 s_appmgrInstance = newInstance;
138 s_svclocInstance = s_appmgrInstance;
147 IInterface* ii = ObjFactory::create( factname,
nullptr );
149 IService* is = Service::Factory::create( factname, name,
nullptr );
151 IAlgorithm* ia = Algorithm::Factory::create( factname, name,
nullptr );
154 void* libHandle =
nullptr;
157 ii = ObjFactory::create( factname,
nullptr );
159 is = Service::Factory::create( factname, name,
nullptr );
161 ia = Algorithm::Factory::create( factname, name,
nullptr );
195 #if !defined( GAUDI_V22_API ) || defined( G22_NEW_SVCLOCATOR ) 200 if ( s_appmgrInstance ) {
201 sc = s_svclocInstance->
getService( typeName, iid, pinterface );
203 pinterface = s_bootInterface.
get();
208 const bool createIf )
211 if ( s_appmgrInstance ) {
212 sc = s_svclocInstance->
getService( typeName, svc, createIf );
214 svc = s_bootService.
get();
222 return s_appmgrInstance ? s_svclocInstance->
getServices() : s_bootServices;
226 return s_appmgrInstance && s_svclocInstance->
existsService( name );
231 return s_appmgrInstance ? s_svclocInstance->
service( typeName, createIf ) : s_bootService;
234 #ifdef GAUDI_HASCLASSVISIBILITY 235 #pragma GCC visibility push( default ) 239 #define PyHelper( x ) py_bootstrap_##x 254 return prop ? prop->
getProperty( name ).toString().c_str() :
nullptr;
268 #define PyFSMHelper( s ) \ 269 bool py_bootstrap_fsm_##s( IInterface* i ) \ 271 auto fsm = SmartIF<IStateful>( i ); \ 272 return fsm && fsm->s().isSuccess(); \ 284 #ifdef GAUDI_HASCLASSVISIBILITY 285 #pragma GCC visibility pop
int PyHelper() ROOT_VERSION_CODE()
Base class used to implement the interfaces.
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Implementation of property with value of concrete type.
bool isSuccess() const
Test for a status code of SUCCESS.
bool existsService(const std::string &name) const override
~BootSvcLocator() override=default
bool PyHelper() addPropertyToCatalogue(IInterface *p, char *comp, char *name, char *value)
virtual bool existsService(const std::string &name) const =0
Check the existence of a service given a service name.
const std::list< IService * > & getServices() const override
virtual StatusCode getProperty(Gaudi::Details::PropertyBase *p) const =0
Get the property by property.
GAUDI_API IAppMgrUI * createApplicationMgrEx(const std::string &dllname, const std::string &factname)
const char *PyHelper() getProperty(IInterface *p, char *name)
virtual StatusCode addPropertyToCatalogue(const std::string &client, const Gaudi::Details::PropertyBase &property)=0
Add a property into the JobOptions catalog.
TYPE * get() const
Get interface pointer.
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
virtual StatusCode setProperty(const Gaudi::Details::PropertyBase &p)=0
Set the property by property.
Helper class to parse a string of format "type/name".
GAUDI_API ISvcLocator * svcLocator()
SmartIF< IService > & service(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true) override
Returns a smart pointer to a service.
General service interface definition.
This class is used for returning status codes from appropriate routines.
Definition of the basic interface.
virtual StatusCode getService(const Gaudi::Utils::TypeNameString &typeName, IService *&svc, const bool createIf=true)
Get a reference to the service given a service name.
bool PyHelper() setProperty(IInterface *p, char *name, char *value)
The IAlgorithm is the interface implemented by the Algorithm base class.
Application Manager User Interface.
GAUDI_API ISvcLocator * setInstance(ISvcLocator *newInstance)
Set new instance of service locator.
StatusCode getService(const Gaudi::Utils::TypeNameString &typeName, const InterfaceID &iid, IInterface *&pinterface) override
virtual const std::list< IService * > & getServices() const =0
Get a reference to a service and create it if it does not exists.
A dual-stage boostrap mechanism is used to ensure an orderly startup of the ApplicationMgr.
SmartIF< IFace > make_SmartIF(IFace *iface)
GAUDI_API const std::string getLastErrorString()
Get last system error as string.
virtual StatusCode executeRun(int maxevt)=0
Process the maxevt events as a Run (beginRun() and endRun() called)
std::string typeName(const std::type_info &typ)
virtual StatusCode configure()=0
Configure the job.
bool PyHelper() configureApp(IInterface *app)
Helper functions to set/get the application return code.
GAUDI_API IInterface * createInstance(const std::string &name, const std::string &factname, const std::string &ddlname)
GAUDI_API IAppMgrUI * createApplicationMgr(const std::string &dllname, const std::string &factname)
GAUDI_API unsigned long loadDynamicLib(const std::string &name, ImageHandle *handle)
Load dynamic link library.