43 #if !defined( GAUDI_V22_API ) || defined( G22_NEW_SVCLOCATOR ) 47 const bool createIf =
true )
override;
66 if ( !s_appmgrInstance ) {
68 s_svclocInstance = s_appmgrInstance;
70 return s_appmgrInstance.
get();
80 return iif ? iif.as<
IAppMgrUI>().
get() :
nullptr;
100 if ( !s_svclocInstance ) {
103 s_svclocInstance = iappmgr;
104 if ( s_svclocInstance )
return s_svclocInstance;
117 return s_svclocInstance;
125 s_svclocInstance = newInstance;
126 s_appmgrInstance = s_svclocInstance;
135 s_appmgrInstance = newInstance;
136 s_svclocInstance = s_appmgrInstance;
147 IService* is = Service::Factory::create( factname, name,
nullptr ).release();
149 IAlgorithm* ia = Algorithm::Factory::create( factname, name,
nullptr ).release();
152 void* libHandle =
nullptr;
154 ii = ObjFactory::create( factname,
nullptr ).
release();
156 is = Service::Factory::create( factname, name,
nullptr ).release();
158 ia = Algorithm::Factory::create( factname, name,
nullptr ).release();
192 #if !defined( GAUDI_V22_API ) || defined( G22_NEW_SVCLOCATOR ) 197 if ( s_appmgrInstance ) {
198 sc = s_svclocInstance->
getService( typeName, iid, pinterface );
200 pinterface = s_bootInterface.
get();
205 const bool createIf )
208 if ( s_appmgrInstance ) {
209 sc = s_svclocInstance->
getService( typeName, svc, createIf );
211 svc = s_bootService.
get();
219 return s_appmgrInstance ? s_svclocInstance->
getServices() : s_bootServices;
223 return s_appmgrInstance && s_svclocInstance->
existsService( name );
228 return s_appmgrInstance ? s_svclocInstance->
service( typeName, createIf ) : s_bootService;
231 #ifdef GAUDI_HASCLASSVISIBILITY 232 #pragma GCC visibility push( default ) 236 #define PyHelper( x ) py_bootstrap_##x 251 return prop ? prop->
getProperty( name ).toString().c_str() :
nullptr;
265 #define PyFSMHelper( s ) \ 266 bool py_bootstrap_fsm_##s( IInterface* i ) \ 268 auto fsm = SmartIF<IStateful>( i ); \ 269 return fsm && fsm->s().isSuccess(); \ 281 #ifdef GAUDI_HASCLASSVISIBILITY 282 #pragma GCC visibility pop
int PyHelper() ROOT_VERSION_CODE()
constexpr static const auto FAILURE
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 existsService(const std::string &name) const override
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.
virtual unsigned long release()=0
Release Interface instance.
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.
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.