Service Class Reference

Base class for all services. More...

#include </scratch/z5/marcocle/GaudiDocs/lhcb-release/996/GAUDI/GAUDI_v26r4/InstallArea/x86_64-slc6-gcc48-opt/include/GaudiKernel/Service.h>

Inheritance diagram for Service:
Collaboration diagram for Service:

Public Types

typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > Factory
 
typedef Gaudi::PluginService::Factory< IService *, const std::string &, ISvcLocator * > Factory
 
- Public Types inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
using base_class = CommonMessaging
 
using base_class = CommonMessaging
 

Public Member Functions

const std::string & name () const override
 Retrieve name of the service. More...
 
StatusCode configure () override
 
StatusCode initialize () override
 
StatusCode start () override
 
StatusCode stop () override
 
StatusCode finalize () override
 
StatusCode terminate () override
 
Gaudi::StateMachine::State FSMState () const override
 
Gaudi::StateMachine::State targetFSMState () const override
 
StatusCode reinitialize () override
 
StatusCode restart () override
 
StatusCode sysInitialize () override
 Initialize Service. More...
 
StatusCode sysStart () override
 Initialize Service. More...
 
StatusCode sysStop () override
 Initialize Service. More...
 
StatusCode sysFinalize () override
 Finalize Service. More...
 
StatusCode sysReinitialize () override
 Re-initialize the Service. More...
 
StatusCode sysRestart () override
 Re-initialize the Service. More...
 
StatusCode setProperty (const Property &p) override
 
StatusCode setProperty (const std::string &s) override
 
StatusCode setProperty (const std::string &n, const std::string &v) override
 
StatusCode getProperty (Property *p) const override
 
const PropertygetProperty (const std::string &name) const override
 
StatusCode getProperty (const std::string &n, std::string &v) const override
 
const std::vector< Property * > & getProperties () const override
 
bool hasProperty (const std::string &name) const override
 
template<class TYPE >
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
 Service (std::string name, ISvcLocator *svcloc)
 Standard Constructor. More...
 
SmartIF< ISvcLocator > & serviceLocator () const override
 Retrieve pointer to service locator. More...
 
StatusCode setProperties ()
 Method for setting declared properties to the values specified for the job. More...
 
template<class T >
StatusCode service (const std::string &name, const T *&psvc, bool createIf=true) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T >
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
 
template<typename IFace = IService>
SmartIF< IFace > service (const std::string &name, bool createIf=true) const
 
template<class T >
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
 Access a service by name and type, creating it if it doesn't already exist. More...
 
template<class T >
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
 Declare the named property. More...
 
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
 Declare remote named properties. More...
 
SmartIF< IAuditorSvc > & auditorSvc () const
 The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
 
const std::string & name () const override
 Retrieve name of the service. More...
 
StatusCode configure () override
 
StatusCode initialize () override
 
StatusCode start () override
 
StatusCode stop () override
 
StatusCode finalize () override
 
StatusCode terminate () override
 
Gaudi::StateMachine::State FSMState () const override
 
Gaudi::StateMachine::State targetFSMState () const override
 
StatusCode reinitialize () override
 
StatusCode restart () override
 
StatusCode sysInitialize () override
 Initialize Service. More...
 
StatusCode sysStart () override
 Initialize Service. More...
 
StatusCode sysStop () override
 Initialize Service. More...
 
StatusCode sysFinalize () override
 Finalize Service. More...
 
StatusCode sysReinitialize () override
 Re-initialize the Service. More...
 
StatusCode sysRestart () override
 Re-initialize the Service. More...
 
StatusCode setProperty (const Property &p) override
 
StatusCode setProperty (const std::string &s) override
 
StatusCode setProperty (const std::string &n, const std::string &v) override
 
StatusCode getProperty (Property *p) const override
 
const PropertygetProperty (const std::string &name) const override
 
StatusCode getProperty (const std::string &n, std::string &v) const override
 
const std::vector< Property * > & getProperties () const override
 
bool hasProperty (const std::string &name) const override
 
template<class TYPE >
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
 Service (std::string name, ISvcLocator *svcloc)
 Standard Constructor. More...
 
SmartIF< ISvcLocator > & serviceLocator () const override
 Retrieve pointer to service locator. More...
 
StatusCode setProperties ()
 Method for setting declared properties to the values specified for the job. More...
 
template<class T >
StatusCode service (const std::string &name, const T *&psvc, bool createIf=true) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T >
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
 
template<typename IFace = IService>
SmartIF< IFace > service (const std::string &name, bool createIf=true) const
 
template<class T >
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
 Access a service by name and type, creating it if it doesn't already exist. More...
 
template<class T >
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
 Declare the named property. More...
 
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
 Declare remote named properties. More...
 
SmartIF< IAuditorSvc > & auditorSvc () const
 The standard auditor service.May not be invoked before sysInitialize() has been invoked. More...
 
- Public Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
 ~CommonMessaging () override=default
 Virtual destructor. More...
 
 ~CommonMessaging () override=default
 Virtual destructor. More...
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MSG::Level msgLevel () const
 get the output level from the embedded MsgStream More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
MSG::Level msgLevel () const
 get the output level from the embedded MsgStream More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 

Protected Member Functions

 ~Service () override
 Standard Destructor. More...
 
int outputLevel () const
 get the Service's output level More...
 
 ~Service () override
 Standard Destructor. More...
 
int outputLevel () const
 get the Service's output level More...
 
- Protected Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Protected Attributes

IntegerProperty m_outputLevel = MSG::NIL
 Service output level. More...
 
Gaudi::StateMachine::State m_state = Gaudi::StateMachine::OFFLINE
 Service state. More...
 
Gaudi::StateMachine::State m_targetState = Gaudi::StateMachine::OFFLINE
 Service state. More...
 
- Protected Attributes inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
SmartIF< IMessageSvcm_msgsvc
 Pointer to the message service;. More...
 
std::unique_ptr< MsgStreamm_msgStream
 The predefined message stream. More...
 
bool m_streamWithService
 Flag to create a new MsgStream if it was created without the message service. More...
 

Private Member Functions

void setServiceManager (ISvcManager *ism) override
 
void initOutputLevel (Property &prop)
 callback for output level property More...
 
void setServiceManager (ISvcManager *ism) override
 
void initOutputLevel (Property &prop)
 callback for output level property More...
 

Private Attributes

std::string m_name
 Service Name. More...
 
SmartIF< ISvcLocatorm_svcLocator
 Service Locator reference. More...
 
SmartIF< ISvcManagerm_svcManager
 
SmartIF< PropertyMgrm_propertyMgr
 Property Manager. More...
 
SmartIF< IAuditorSvcm_pAuditorSvc
 Auditor Service. More...
 
BooleanProperty m_auditInit
 
bool m_auditorInitialize
 
bool m_auditorStart
 
bool m_auditorStop
 
bool m_auditorFinalize
 
bool m_auditorReinitialize
 
bool m_auditorRestart
 

Friends

class ServiceManager
 

Detailed Description

Base class for all services.

It implements the IService and IProperty interfaces.

Author
Pere Mato
Marco Clemencic

Definition at line 33 of file Service.h.

Member Typedef Documentation

Definition at line 38 of file Service.h.

Definition at line 38 of file Service.h.

Constructor & Destructor Documentation

Service::Service ( std::string  name,
ISvcLocator svcloc 
)

Standard Constructor.

Definition at line 385 of file Service.cpp.

385  :
386  m_name( std::move(name) ),
387  m_svcLocator( svcloc ),
388  m_propertyMgr( new PropertyMgr() )
389 {
390  // Declare common Service properties with their defaults
391  if ( (name != "MessageSvc") && msgSvc() ) {
392  // In genconf a service is instantiated without the ApplicationMgr
394  }
395  declareProperty("OutputLevel", m_outputLevel);
397 
398  // Get the default setting for service auditing from the AppMgr
399  declareProperty("AuditServices", m_auditInit = true);
400 
401  bool audit(false);
402  auto appMgr = serviceLocator()->service<IProperty>("ApplicationMgr");
403  if (appMgr) {
404  const Property& prop = appMgr->getProperty("AuditServices");
405  if (m_name != "IncidentSvc") {
406  setProperty(prop).ignore();
407  audit = m_auditInit.value();
408  } else {
409  audit = false;
410  }
411  }
412 
413  declareProperty( "AuditInitialize" , m_auditorInitialize = audit );
414  declareProperty( "AuditStart" , m_auditorStart = audit );
415  declareProperty( "AuditStop" , m_auditorStop = audit );
416  declareProperty( "AuditFinalize" , m_auditorFinalize = audit );
417  declareProperty( "AuditReInitialize" , m_auditorReinitialize = audit );
418  declareProperty( "AuditReStart" , m_auditorRestart = audit );
419 }
BooleanProperty m_auditInit
Definition: Service.h:264
IntegerProperty m_outputLevel
Service output level.
Definition: Service.h:242
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
bool m_auditorInitialize
Definition: Service.h:265
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
StatusCode setProperty(const Property &p) override
Definition: Service.cpp:330
std::string m_name
Service Name.
Definition: Service.h:253
Property manager helper class.
Definition: PropertyMgr.h:34
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:78
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
virtual int outputLevel() const =0
Retrieve the current output level threshold.
bool m_auditorFinalize
Definition: Service.h:268
bool m_auditorReinitialize
Definition: Service.h:269
const TYPE & value() const
explicit conversion
Definition: Property.h:341
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
Property base class allowing Property* collections to be "homogeneous".
Definition: Property.h:38
SmartIF< ISvcLocator > m_svcLocator
Service Locator reference.
Definition: Service.h:255
bool m_auditorStart
Definition: Service.h:266
void initOutputLevel(Property &prop)
callback for output level property
Definition: Service.cpp:422
virtual void declareUpdateHandler(std::function< void(Property &)> fun)
set new callback for update
Definition: Property.cpp:71
tuple appMgr
Definition: IOTest.py:83
void ignore() const
Definition: StatusCode.h:108
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: Service.h:210
The IProperty is the basic interface for all components which have properties that can be set or get...
Definition: IProperty.h:21
bool m_auditorRestart
Definition: Service.h:270
bool m_auditorStop
Definition: Service.h:267
Service::~Service ( )
overrideprotected

Standard Destructor.

Definition at line 20 of file Service.cpp.

20  {
22 }
SmartIF< ISvcManager > m_svcManager
Definition: Service.h:256
void ignore() const
Definition: StatusCode.h:108
virtual StatusCode removeService(IService *svc)=0
Remove a service from the "active" list of services of the factory.
Service::Service ( std::string  name,
ISvcLocator svcloc 
)

Standard Constructor.

Service::~Service ( )
overrideprotected

Standard Destructor.

Member Function Documentation

SmartIF< IAuditorSvc > & Service::auditorSvc ( ) const

The standard auditor service.May not be invoked before sysInitialize() has been invoked.

Definition at line 430 of file Service.cpp.

430  {
431  if ( !m_pAuditorSvc ) {
432  m_pAuditorSvc = serviceLocator()->service("AuditorSvc");
433  if( !m_pAuditorSvc ) {
434  throw GaudiException("Service [AuditorSvc] not found", name(), StatusCode::FAILURE);
435  }
436  }
437  return m_pAuditorSvc;
438 }
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
Define general base for Gaudi exception.
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:78
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< IAuditorSvc > m_pAuditorSvc
Auditor Service.
Definition: Service.h:263
SmartIF<IAuditorSvc>& Service::auditorSvc ( ) const

The standard auditor service.May not be invoked before sysInitialize() has been invoked.

StatusCode Service::configure ( )
inlineoverride

Definition at line 46 of file Service.h.

StatusCode Service::configure ( )
inlineoverride

Definition at line 46 of file Service.h.

template<class T >
Property* Service::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
) const
inline

Declare the named property.

MySvc ( const std::string& name ,
ISvcLocator* pSvc )
: Service ( name , pSvc )
, m_property1 ( ... )
, m_property2 ( ... )
{
// declare the property
declareProperty( "Property1" , m_property1 , "Doc for property #1" ) ;
// declare the property and attach the handler to it
declareProperty( "Property2" , m_property2 , "Doc for property #2" )
-> declareUpdateHandler( &MySvc::handler_2 ) ;
}
See also
PropertyMgr
PropertyMgr::declareProperty
Parameters
namethe property name
propertythe property itself,
docthe documentation string
Returns
the actual property objects

Definition at line 210 of file Service.h.

213  {
214  return m_propertyMgr -> declareProperty ( name , property , doc ) ;
215  }
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: Service.h:210
template<class T >
Property* Service::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
) const
inline

Declare the named property.

MySvc ( const std::string& name ,
ISvcLocator* pSvc )
: Service ( name , pSvc )
, m_property1 ( ... )
, m_property2 ( ... )
{
// declare the property
declareProperty( "Property1" , m_property1 , "Doc for property #1" ) ;
// declare the property and attach the handler to it
declareProperty( "Property2" , m_property2 , "Doc for property #2" )
-> declareUpdateHandler( &MySvc::handler_2 ) ;
}
See also
PropertyMgr
PropertyMgr::declareProperty
Parameters
namethe property name
propertythe property itself,
docthe documentation string
Returns
the actual property objects

Definition at line 210 of file Service.h.

213  {
214  return m_propertyMgr -> declareProperty ( name , property , doc ) ;
215  }
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
Property * declareProperty(const std::string &name, T &property, const std::string &doc="none") const
Declare the named property.
Definition: Service.h:210
Property* Service::declareRemoteProperty ( const std::string &  name,
IProperty rsvc,
const std::string &  rname = "" 
) const
inline

Declare remote named properties.

This is used to declare as a local property a property of another services or algorithm. The only needed information is IProperty interface of the remote service and the its property name if different of the current one.

Parameters
nameLocal property name
rsvcRemote IProperty interface
rnameName of the property at remote service

Definition at line 226 of file Service.h.

229  {
230  return m_propertyMgr -> declareRemoteProperty ( name , rsvc , rname ) ;
231  }
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
Property * declareRemoteProperty(const std::string &name, IProperty *rsvc, const std::string &rname="") const
Declare remote named properties.
Definition: Service.h:226
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
Property* Service::declareRemoteProperty ( const std::string &  name,
IProperty rsvc,
const std::string &  rname = "" 
) const
inline

Declare remote named properties.

This is used to declare as a local property a property of another services or algorithm. The only needed information is IProperty interface of the remote service and the its property name if different of the current one.

Parameters
nameLocal property name
rsvcRemote IProperty interface
rnameName of the property at remote service

Definition at line 226 of file Service.h.

229  {
230  return m_propertyMgr -> declareRemoteProperty ( name , rsvc , rname ) ;
231  }
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
Property * declareRemoteProperty(const std::string &name, IProperty *rsvc, const std::string &rname="") const
Declare remote named properties.
Definition: Service.h:226
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
StatusCode Service::finalize ( )
override
StatusCode Service::finalize ( )
override

Definition at line 187 of file Service.cpp.

187  {
188  //MsgStream log(msgSvc(),name());
189  //m_state = Gaudi::StateMachine::ChangeState(Gaudi::StateMachine::TERMINATE,m_state);
190  return StatusCode::SUCCESS;
191 }
Gaudi::StateMachine::State Service::FSMState ( ) const
inlineoverride

Definition at line 52 of file Service.h.

52 { return m_state; }
Gaudi::StateMachine::State m_state
Service state.
Definition: Service.h:244
Gaudi::StateMachine::State Service::FSMState ( ) const
inlineoverride

Definition at line 52 of file Service.h.

52 { return m_state; }
Gaudi::StateMachine::State m_state
Service state.
Definition: Service.h:244
const std::vector< Property * > & Service::getProperties ( ) const
override

Definition at line 354 of file Service.cpp.

354  {
355  return m_propertyMgr->getProperties();
356 }
const std::vector< Property * > & getProperties() const override
get all properties
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
const std::vector<Property*>& Service::getProperties ( ) const
override
StatusCode Service::getProperty ( Property p) const
override

Definition at line 342 of file Service.cpp.

342  {
343  return m_propertyMgr->getProperty(p);
344 }
StatusCode getProperty(Property *p) const override
get the property
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
StatusCode Service::getProperty ( Property p) const
override
const Property & Service::getProperty ( const std::string &  name) const
override

Definition at line 346 of file Service.cpp.

346  {
347  return m_propertyMgr->getProperty(n);
348 }
StatusCode getProperty(Property *p) const override
get the property
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
const Property& Service::getProperty ( const std::string &  name) const
override
StatusCode Service::getProperty ( const std::string &  n,
std::string &  v 
) const
override

Definition at line 350 of file Service.cpp.

350  {
351  return m_propertyMgr->getProperty(n,v);
352 }
StatusCode getProperty(Property *p) const override
get the property
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
StatusCode Service::getProperty ( const std::string &  n,
std::string &  v 
) const
override
bool Service::hasProperty ( const std::string &  name) const
override

Definition at line 358 of file Service.cpp.

358  {
359  return m_propertyMgr->hasProperty(name);
360 }
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
bool hasProperty(const std::string &name) const override
Return true if we have a property with the given name.
bool Service::hasProperty ( const std::string &  name) const
override
StatusCode Service::initialize ( )
override
StatusCode Service::initialize ( )
override

Definition at line 62 of file Service.cpp.

62  {
63  // Set the Algorithm's properties
65  ON_DEBUG debug() << "Service base class initialized successfully" << endmsg;
67  return sc ;
68 }
Gaudi::StateMachine::State m_state
Service state.
Definition: Service.h:244
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
State GAUDI_API ChangeState(const Transition transition, const State state)
Function to get the new state according to the required transition, checking if the transition is all...
Definition: StateMachine.cpp:8
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
StatusCode setProperties()
Method for setting declared properties to the values specified for the job.
Definition: Service.cpp:363
#define ON_DEBUG
Definition: Service.cpp:17
void Service::initOutputLevel ( Property prop)
private

callback for output level property

Definition at line 422 of file Service.cpp.

422  {
423  if ( (name() != "MessageSvc") && msgSvc() ) {
425  }
427 }
IntegerProperty m_outputLevel
Service output level.
Definition: Service.h:242
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
void updateMsgStreamOutputLevel(int level)
Update the output level of the cached MsgStream.
virtual void setOutputLevel(int new_level)=0
Set new global output level threshold.
void Service::initOutputLevel ( Property prop)
private

callback for output level property

const std::string & Service::name ( ) const
override

Retrieve name of the service.

Definition at line 319 of file Service.cpp.

319  {
320  return m_name;
321 }
std::string m_name
Service Name.
Definition: Service.h:253
const std::string& Service::name ( ) const
override

Retrieve name of the service.

int Service::outputLevel ( ) const
inlineprotected

get the Service's output level

Definition at line 249 of file Service.h.

249 { return m_outputLevel.value(); }
IntegerProperty m_outputLevel
Service output level.
Definition: Service.h:242
const TYPE & value() const
explicit conversion
Definition: Property.h:341
int Service::outputLevel ( ) const
inlineprotected

get the Service's output level

Definition at line 249 of file Service.h.

249 { return m_outputLevel.value(); }
IntegerProperty m_outputLevel
Service output level.
Definition: Service.h:242
const TYPE & value() const
explicit conversion
Definition: Property.h:341
StatusCode Service::reinitialize ( )
override

Definition at line 282 of file Service.cpp.

282  {
283  /* @TODO
284  * MCl 2008-10-23: the implementation of reinitialize as finalize+initialize
285  * is causing too many problems
286  *
287  // Default implementation is finalize+initialize
288  StatusCode sc = finalize();
289  if (sc.isFailure()) {
290  error() << "reinitialize(): cannot be finalized" << endmsg;
291  return sc;
292  }
293  sc = initialize();
294  if (sc.isFailure()) {
295  error() << "reinitialize(): cannot be initialized" << endmsg;
296  return sc;
297  }
298  */
299  return StatusCode::SUCCESS;
300 }
StatusCode Service::reinitialize ( )
override
StatusCode Service::restart ( )
override

Definition at line 303 of file Service.cpp.

303  {
304  // Default implementation is stop+start
305  StatusCode sc = stop();
306  if (sc.isFailure()) {
307  error() << "restart(): cannot be stopped" << endmsg;
308  return sc;
309  }
310  sc = start();
311  if (sc.isFailure()) {
312  error() << "restart(): cannot be started" << endmsg;
313  return sc;
314  }
315  return StatusCode::SUCCESS;
316 }
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
StatusCode start() override
Definition: Service.cpp:146
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
StatusCode stop() override
Definition: Service.cpp:140
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
StatusCode Service::restart ( )
override
template<class T >
StatusCode Service::service ( const std::string &  name,
const T *&  psvc,
bool  createIf = true 
) const
inline

Access a service by name, creating it if it doesn't already exist.

Definition at line 139 of file Service.h.

139  {
140  ISvcLocator& svcLoc = *serviceLocator();
141  auto ptr =
142  ServiceLocatorHelper(svcLoc, *this).service<T>(name, !createIf, // quiet
143  createIf);
144  if (ptr) {
145  psvc = ptr.get();
146  const_cast<T*>(psvc)->addRef();
147  return StatusCode::SUCCESS;
148  }
149  // else
150  psvc = nullptr;
151  return StatusCode::FAILURE;
152  }
an helper to share the implementation of service() among the various kernel base classes ...
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< IService > service(const std::string &name, const bool quiet=false, const bool createIf=true) const
template<class T >
StatusCode Service::service ( const std::string &  name,
const T *&  psvc,
bool  createIf = true 
) const
inline

Access a service by name, creating it if it doesn't already exist.

Definition at line 139 of file Service.h.

139  {
140  ISvcLocator& svcLoc = *serviceLocator();
141  auto ptr =
142  ServiceLocatorHelper(svcLoc, *this).service<T>(name, !createIf, // quiet
143  createIf);
144  if (ptr) {
145  psvc = ptr.get();
146  const_cast<T*>(psvc)->addRef();
147  return StatusCode::SUCCESS;
148  }
149  // else
150  psvc = nullptr;
151  return StatusCode::FAILURE;
152  }
an helper to share the implementation of service() among the various kernel base classes ...
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
Definition: ISvcLocator.h:25
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< IService > service(const std::string &name, const bool quiet=false, const bool createIf=true) const
template<class T >
StatusCode Service::service ( const std::string &  name,
T *&  psvc,
bool  createIf = true 
) const
inline

Definition at line 155 of file Service.h.

155  {
156  auto ptr = service<T>(name,createIf);
157  psvc = ( ptr ? ptr.get() : nullptr );
158  if (psvc) {
159  psvc->addRef();
160  return StatusCode::SUCCESS;
161  }
162  return StatusCode::FAILURE;
163  }
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
template<class T >
StatusCode Service::service ( const std::string &  name,
T *&  psvc,
bool  createIf = true 
) const
inline

Definition at line 155 of file Service.h.

155  {
156  auto ptr = service<T>(name,createIf);
157  psvc = ( ptr ? ptr.get() : nullptr );
158  if (psvc) {
159  psvc->addRef();
160  return StatusCode::SUCCESS;
161  }
162  return StatusCode::FAILURE;
163  }
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
template<typename IFace = IService>
SmartIF<IFace> Service::service ( const std::string &  name,
bool  createIf = true 
) const
inline

Definition at line 166 of file Service.h.

166  {
167  return ServiceLocatorHelper(*serviceLocator(), *this).
168  service<IFace>(name, !createIf, // quiet
169  createIf);
170  }
an helper to share the implementation of service() among the various kernel base classes ...
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
template<typename IFace = IService>
SmartIF<IFace> Service::service ( const std::string &  name,
bool  createIf = true 
) const
inline

Definition at line 166 of file Service.h.

166  {
167  return ServiceLocatorHelper(*serviceLocator(), *this).
168  service<IFace>(name, !createIf, // quiet
169  createIf);
170  }
an helper to share the implementation of service() among the various kernel base classes ...
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
template<class T >
StatusCode Service::service ( const std::string &  svcType,
const std::string &  svcName,
T *&  psvc 
) const
inline

Access a service by name and type, creating it if it doesn't already exist.

Definition at line 175 of file Service.h.

176  {
177  return service(svcType + "/" + svcName, psvc);
178  }
StatusCode service(const std::string &name, const T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: Service.h:139
template<class T >
StatusCode Service::service ( const std::string &  svcType,
const std::string &  svcName,
T *&  psvc 
) const
inline

Access a service by name and type, creating it if it doesn't already exist.

Definition at line 175 of file Service.h.

176  {
177  return service(svcType + "/" + svcName, psvc);
178  }
StatusCode service(const std::string &name, const T *&psvc, bool createIf=true) const
Access a service by name, creating it if it doesn't already exist.
Definition: Service.h:139
SmartIF<ISvcLocator>& Service::serviceLocator ( ) const
override

Retrieve pointer to service locator.

SmartIF< ISvcLocator > & Service::serviceLocator ( ) const
override

Retrieve pointer to service locator.

Definition at line 324 of file Service.cpp.

324  {
325  return m_svcLocator;
326 }
SmartIF< ISvcLocator > m_svcLocator
Service Locator reference.
Definition: Service.h:255
StatusCode Service::setProperties ( )

Method for setting declared properties to the values specified for the job.

StatusCode Service::setProperties ( )

Method for setting declared properties to the values specified for the job.

Definition at line 363 of file Service.cpp.

363  {
364  const bool CREATEIF(true);
365  auto jos = serviceLocator()->service<IJobOptionsSvc>("JobOptionsSvc", CREATEIF);
366  if( !jos ) {
367  throw GaudiException("Service [JobOptionsSvc] not found", name(), StatusCode::FAILURE);
368  }
369  // set first generic Properties
370  StatusCode sc = jos->setMyProperties( getGaudiThreadGenericName(name()), this );
371  if( sc.isFailure() ) return sc;
372 
373  // set specific Properties
374  if (isGaudiThreaded(name())) {
375  if (jos->setMyProperties( name(), this ).isFailure()) {
376  return StatusCode::FAILURE;
377  }
378  }
379  return StatusCode::SUCCESS;
380 }
SmartIF< ISvcLocator > & serviceLocator() const override
Retrieve pointer to service locator.
Definition: Service.cpp:324
Define general base for Gaudi exception.
GAUDI_API bool isGaudiThreaded(const std::string &name)
test if current Gaudi object is running /will run in a thread
Definition: ThreadGaudi.cpp:73
GAUDI_API std::string getGaudiThreadGenericName(const std::string &name)
helper function to extract Gaudi instance name from thread copy name
Definition: ThreadGaudi.cpp:50
bool isFailure() const
Test for a status code of FAILURE.
Definition: StatusCode.h:86
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:78
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
Main interface for the JobOptions service.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
StatusCode Service::setProperty ( const Property p)
override

Definition at line 330 of file Service.cpp.

330  {
331  return m_propertyMgr->setProperty(p);
332 }
StatusCode setProperty(const Property &p) override
set the property form another property
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
StatusCode Service::setProperty ( const Property p)
override
StatusCode Service::setProperty ( const std::string &  s)
override

Definition at line 334 of file Service.cpp.

334  {
335  return m_propertyMgr->setProperty(s);
336 }
StatusCode setProperty(const Property &p) override
set the property form another property
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
string s
Definition: gaudirun.py:246
StatusCode Service::setProperty ( const std::string &  s)
override
StatusCode Service::setProperty ( const std::string &  n,
const std::string &  v 
)
override
StatusCode Service::setProperty ( const std::string &  n,
const std::string &  v 
)
override

Definition at line 338 of file Service.cpp.

338  {
339  return m_propertyMgr->setProperty(n,v);
340 }
StatusCode setProperty(const Property &p) override
set the property form another property
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
template<class TYPE >
StatusCode Service::setProperty ( const std::string &  name,
const TYPE &  value 
)
inline

set the property form the value

std::vector<double> data = ... ;
setProperty( "Data" , data ) ;
std::map<std::string,double> cuts = ... ;
setProperty( "Cuts" , cuts ) ;
std::map<std::string,std::string> dict = ... ;
setProperty( "Dictionary" , dict ) ;

Note: the interface IProperty allows setting of the properties either directly from other properties or from strings only

This is very convenient in resetting of the default properties in the derived classes. E.g. without this method one needs to convert everything into strings to use IProperty::setProperty

setProperty ( "OutputLevel" , "1" ) ;
setProperty ( "Enable" , "True" ) ;
setProperty ( "ErrorMax" , "10" ) ;

For simple cases it is more or less ok, but for complicated properties it is just ugly..

Parameters
namename of the property
valuevalue of the property
See also
Gaudi::Utils::setProperty
Author
Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u
Date
2007-05-13

Definition at line 122 of file Service.h.

124  { return Gaudi::Utils::setProperty ( m_propertyMgr.get() , name , value ) ; }
StatusCode setProperty(IProperty *component, const std::string &name, const TYPE &value, const std::string &doc)
simple function to set the property of the given object from the value
Definition: Property.h:1187
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
template<class TYPE >
StatusCode Service::setProperty ( const std::string &  name,
const TYPE &  value 
)
inline

set the property form the value

std::vector<double> data = ... ;
setProperty( "Data" , data ) ;
std::map<std::string,double> cuts = ... ;
setProperty( "Cuts" , cuts ) ;
std::map<std::string,std::string> dict = ... ;
setProperty( "Dictionary" , dict ) ;

Note: the interface IProperty allows setting of the properties either directly from other properties or from strings only

This is very convenient in resetting of the default properties in the derived classes. E.g. without this method one needs to convert everything into strings to use IProperty::setProperty

setProperty ( "OutputLevel" , "1" ) ;
setProperty ( "Enable" , "True" ) ;
setProperty ( "ErrorMax" , "10" ) ;

For simple cases it is more or less ok, but for complicated properties it is just ugly..

Parameters
namename of the property
valuevalue of the property
See also
Gaudi::Utils::setProperty
Author
Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u
Date
2007-05-13

Definition at line 122 of file Service.h.

124  { return Gaudi::Utils::setProperty ( m_propertyMgr.get() , name , value ) ; }
StatusCode setProperty(IProperty *component, const std::string &name, const TYPE &value, const std::string &doc)
simple function to set the property of the given object from the value
Definition: Property.h:1187
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:76
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
SmartIF< PropertyMgr > m_propertyMgr
Property Manager.
Definition: Service.h:258
void Service::setServiceManager ( ISvcManager ism)
overrideprivate

Definition at line 441 of file Service.cpp.

441  {
442  m_svcManager = ism;
443 }
SmartIF< ISvcManager > m_svcManager
Definition: Service.h:256
void Service::setServiceManager ( ISvcManager ism)
overrideprivate
StatusCode Service::start ( )
override

Definition at line 146 of file Service.cpp.

146  {
147  // stub implementation
148  return StatusCode::SUCCESS;
149 }
StatusCode Service::start ( )
override
StatusCode Service::stop ( )
override
StatusCode Service::stop ( )
override

Definition at line 140 of file Service.cpp.

140  {
141  // stub implementation
142  return StatusCode::SUCCESS;
143 }
StatusCode Service::sysFinalize ( )
override

Finalize Service.

Definition at line 152 of file Service.cpp.

152  {
153 
155 
156  try {
158  Gaudi::Guards::AuditorGuard guard(this,
159  // check if we want to audit the initialize
160  (m_auditorFinalize) ? auditorSvc().get() : 0,
162  sc = finalize();
163  if (sc.isSuccess())
165  }
166  catch( const GaudiException& Exception ) {
167  fatal() << " Exception with tag=" << Exception.tag()
168  << " is caught " << endmsg;
169  error() << Exception << endmsg;
170  // Stat stat( chronoSvc() , Exception.tag() ) ;
171  }
172  catch( const std::exception& Exception ) {
173  fatal() << " Standard std::exception is caught " << endmsg;
174  error() << Exception.what() << endmsg;
175  // Stat stat( chronoSvc() , "*std::exception*" ) ;
176  }
177  catch( ... ) {
178  fatal() << "UNKNOWN Exception is caught " << endmsg;
179  // Stat stat( chronoSvc() , "*UNKNOWN Exception*" ) ;
180  }
181 
182  m_pAuditorSvc = 0;
183  return sc;
184 }
Gaudi::StateMachine::State m_targetState
Service state.
Definition: Service.h:246
Define general base for Gaudi exception.
Gaudi::StateMachine::State m_state
Service state.
Definition: Service.h:244
StatusCode finalize() override
Definition: Service.cpp:187
SmartIF< IAuditorSvc > & auditorSvc() const
The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Definition: Service.cpp:430
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
virtual const std::string & tag() const
name tag for the exception, or exception type
bool m_auditorFinalize
Definition: Service.h:268
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:214
SmartIF< IAuditorSvc > m_pAuditorSvc
Auditor Service.
Definition: Service.h:263
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
StatusCode Service::sysFinalize ( )
override

Finalize Service.

StatusCode Service::sysInitialize ( )
override

Initialize Service.

StatusCode Service::sysInitialize ( )
override

Initialize Service.

Definition at line 25 of file Service.cpp.

25  {
26  StatusCode sc;
27 
28  try {
30  Gaudi::Guards::AuditorGuard guard(this,
31  // check if we want to audit the initialize
32  (m_auditorInitialize) ? auditorSvc().get() : 0,
34  if ((name() != "MessageSvc") && msgSvc()) // pre-set the outputLevel from the MessageSvc value
36  sc = initialize(); // This should change the state to Gaudi::StateMachine::CONFIGURED
37  if (sc.isSuccess())
39  return sc;
40  }
41  catch ( const GaudiException& Exception ) {
42  fatal() << "in sysInitialize(): exception with tag=" << Exception.tag()
43  << " is caught" << endmsg;
44  error() << Exception << endmsg;
45  // Stat stat( chronoSvc() , Exception.tag() );
46  }
47  catch( const std::exception& Exception ) {
48  fatal() << "in sysInitialize(): standard std::exception is caught" << endmsg;
49  error() << Exception.what() << endmsg;
50  // Stat stat( chronoSvc() , "*std::exception*" );
51  }
52  catch(...) {
53  fatal() << "in sysInitialize(): UNKNOWN Exception is caught" << endmsg;
54  // Stat stat( chronoSvc() , "*UNKNOWN Exception*" ) ;
55  }
56 
57  return StatusCode::FAILURE;
58 }
Gaudi::StateMachine::State m_targetState
Service state.
Definition: Service.h:246
StatusCode initialize() override
Definition: Service.cpp:62
IntegerProperty m_outputLevel
Service output level.
Definition: Service.h:242
Define general base for Gaudi exception.
bool m_auditorInitialize
Definition: Service.h:265
Gaudi::StateMachine::State m_state
Service state.
Definition: Service.h:244
SmartIF< IAuditorSvc > & auditorSvc() const
The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Definition: Service.cpp:430
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
virtual int outputLevel() const =0
Retrieve the current output level threshold.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
virtual const std::string & tag() const
name tag for the exception, or exception type
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:214
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
StatusCode Service::sysReinitialize ( )
override

Re-initialize the Service.

StatusCode Service::sysReinitialize ( )
override

Re-initialize the Service.

Definition at line 194 of file Service.cpp.

194  {
195 
196  StatusCode sc;
197 
198  // Check that the current status is the correct one.
200  MsgStream log ( msgSvc() , name() );
201  error()
202  << "sysReinitialize(): cannot reinitialize service not initialized"
203  << endmsg;
204  return StatusCode::FAILURE;
205  }
206 
207  try {
208 
209  Gaudi::Guards::AuditorGuard guard(this,
210  // check if we want to audit the initialize
211  (m_auditorReinitialize) ? auditorSvc().get() : 0,
213  sc = reinitialize();
214  return sc;
215  }
216  catch( const GaudiException& Exception ) {
217  MsgStream log ( msgSvc() , name() + ".sysReinitialize()" );
218  fatal() << " Exception with tag=" << Exception.tag()
219  << " is caught " << endmsg;
220  error() << Exception << endmsg;
221  // Stat stat( chronoSvc() , Exception.tag() ) ;
222  }
223  catch( const std::exception& Exception ) {
224  MsgStream log ( msgSvc() , name() + ".sysReinitialize()" );
225  fatal() << " Standard std::exception is caught " << endmsg;
226  error() << Exception.what() << endmsg;
227  // Stat stat( chronoSvc() , "*std::exception*" ) ;
228  }
229  catch( ... ) {
230  MsgStream log ( msgSvc() , name() + ".sysReinitialize()" );
231  fatal() << "UNKNOWN Exception is caught " << endmsg;
232  // Stat stat( chronoSvc() , "*UNKNOWN Exception*" ) ;
233  }
234  return StatusCode::FAILURE ;
235 
236 }
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
Define general base for Gaudi exception.
Gaudi::StateMachine::State FSMState() const override
Definition: Service.h:52
SmartIF< IAuditorSvc > & auditorSvc() const
The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Definition: Service.cpp:430
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
virtual const std::string & tag() const
name tag for the exception, or exception type
StatusCode reinitialize() override
Definition: Service.cpp:282
bool m_auditorReinitialize
Definition: Service.h:269
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:214
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
StatusCode Service::sysRestart ( )
override

Re-initialize the Service.

Definition at line 239 of file Service.cpp.

239  {
240 
241  StatusCode sc;
242 
243  // Check that the current status is the correct one.
245  MsgStream log ( msgSvc() , name() );
246  error()
247  << "sysRestart(): cannot restart service in state " << FSMState()
248  << " -- must be RUNNING "
249  << endmsg;
250  return StatusCode::FAILURE;
251  }
252 
253  try {
254 
255  Gaudi::Guards::AuditorGuard guard(this,
256  // check if we want to audit the initialize
257  (m_auditorRestart) ? auditorSvc().get() : 0,
259  sc = restart();
260  return sc;
261  }
262  catch( const GaudiException& Exception ) {
263  fatal() << " Exception with tag=" << Exception.tag()
264  << " is caught " << endmsg;
265  error() << Exception << endmsg;
266  // Stat stat( chronoSvc() , Exception.tag() ) ;
267  }
268  catch( const std::exception& Exception ) {
269  fatal() << " Standard std::exception is caught " << endmsg;
270  error() << Exception.what() << endmsg;
271  // Stat stat( chronoSvc() , "*std::exception*" ) ;
272  }
273  catch( ... ) {
274  fatal() << "UNKNOWN Exception is caught " << endmsg;
275  // Stat stat( chronoSvc() , "*UNKNOWN Exception*" ) ;
276  }
277  return StatusCode::FAILURE ;
278 
279 }
Definition of the MsgStream class used to transmit messages.
Definition: MsgStream.h:24
Define general base for Gaudi exception.
Gaudi::StateMachine::State FSMState() const override
Definition: Service.h:52
SmartIF< IAuditorSvc > & auditorSvc() const
The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Definition: Service.cpp:430
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
SmartIF< IMessageSvc > & msgSvc() const
The standard message service.
const std::string & name() const override
Retrieve name of the service.
Definition: Service.cpp:319
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
virtual const std::string & tag() const
name tag for the exception, or exception type
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:214
StatusCode restart() override
Definition: Service.cpp:303
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
bool m_auditorRestart
Definition: Service.h:270
StatusCode Service::sysRestart ( )
override

Re-initialize the Service.

StatusCode Service::sysStart ( )
override

Initialize Service.

Definition at line 71 of file Service.cpp.

71  {
72  StatusCode sc;
73 
74  try {
76  Gaudi::Guards::AuditorGuard guard(this,
77  // check if we want to audit the initialize
78  (m_auditorStart) ? auditorSvc().get() : 0,
80  sc = start();
81  if (sc.isSuccess())
83  return sc;
84  }
85  catch ( const GaudiException& Exception ) {
86  fatal() << "in sysStart(): exception with tag=" << Exception.tag()
87  << " is caught" << endmsg;
88  error() << Exception << endmsg;
89  // Stat stat( chronoSvc() , Exception.tag() );
90  }
91  catch( const std::exception& Exception ) {
92  fatal() << "in sysStart(): standard std::exception is caught" << endmsg;
93  fatal() << Exception.what() << endmsg;
94  // Stat stat( chronoSvc() , "*std::exception*" );
95  }
96  catch(...) {
97  fatal() << "in sysStart(): UNKNOWN Exception is caught" << endmsg;
98  // Stat stat( chronoSvc() , "*UNKNOWN Exception*" ) ;
99  }
100 
101  return StatusCode::FAILURE;
102 }
Gaudi::StateMachine::State m_targetState
Service state.
Definition: Service.h:246
Define general base for Gaudi exception.
Gaudi::StateMachine::State m_state
Service state.
Definition: Service.h:244
SmartIF< IAuditorSvc > & auditorSvc() const
The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Definition: Service.cpp:430
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
StatusCode start() override
Definition: Service.cpp:146
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
State GAUDI_API ChangeState(const Transition transition, const State state)
Function to get the new state according to the required transition, checking if the transition is all...
Definition: StateMachine.cpp:8
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
virtual const std::string & tag() const
name tag for the exception, or exception type
bool m_auditorStart
Definition: Service.h:266
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:214
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
StatusCode Service::sysStart ( )
override

Initialize Service.

StatusCode Service::sysStop ( )
override

Initialize Service.

StatusCode Service::sysStop ( )
override

Initialize Service.

Definition at line 105 of file Service.cpp.

105  {
106  StatusCode sc;
107 
108  try {
110  Gaudi::Guards::AuditorGuard guard(this,
111  // check if we want to audit the initialize
112  (m_auditorStop) ? auditorSvc().get() : 0,
114  sc = stop();
115  if (sc.isSuccess())
117  return sc;
118  }
119  catch ( const GaudiException& Exception ) {
120  fatal() << "in sysStop(): exception with tag=" << Exception.tag()
121  << " is caught" << endmsg;
122  error() << Exception << endmsg;
123  // Stat stat( chronoSvc() , Exception.tag() );
124  }
125  catch( const std::exception& Exception ) {
126  fatal() << "in sysStop(): standard std::exception is caught" << endmsg;
127  error() << Exception.what() << endmsg;
128  // Stat stat( chronoSvc() , "*std::exception*" );
129  }
130  catch(...) {
131  fatal() << "in sysStop(): UNKNOWN Exception is caught" << endmsg;
132  // Stat stat( chronoSvc() , "*UNKNOWN Exception*" ) ;
133  }
134 
135  return StatusCode::FAILURE;
136 }
Gaudi::StateMachine::State m_targetState
Service state.
Definition: Service.h:246
Define general base for Gaudi exception.
Gaudi::StateMachine::State m_state
Service state.
Definition: Service.h:244
SmartIF< IAuditorSvc > & auditorSvc() const
The standard auditor service.May not be invoked before sysInitialize() has been invoked.
Definition: Service.cpp:430
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:244
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
State GAUDI_API ChangeState(const Transition transition, const State state)
Function to get the new state according to the required transition, checking if the transition is all...
Definition: StateMachine.cpp:8
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
virtual const std::string & tag() const
name tag for the exception, or exception type
StatusCode stop() override
Definition: Service.cpp:140
MsgStream & fatal() const
shortcut for the method msgStream(MSG::FATAL)
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
Definition: Guards.h:214
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
bool m_auditorStop
Definition: Service.h:267
Gaudi::StateMachine::State Service::targetFSMState ( ) const
inlineoverride

Definition at line 53 of file Service.h.

53 { return m_targetState; }
Gaudi::StateMachine::State m_targetState
Service state.
Definition: Service.h:246
Gaudi::StateMachine::State Service::targetFSMState ( ) const
inlineoverride

Definition at line 53 of file Service.h.

53 { return m_targetState; }
Gaudi::StateMachine::State m_targetState
Service state.
Definition: Service.h:246
StatusCode Service::terminate ( )
inlineoverride

Definition at line 51 of file Service.h.

StatusCode Service::terminate ( )
inlineoverride

Definition at line 51 of file Service.h.

Friends And Related Function Documentation

Definition at line 40 of file Service.h.

Member Data Documentation

BooleanProperty Service::m_auditInit
private

Definition at line 264 of file Service.h.

bool Service::m_auditorFinalize
private

Definition at line 268 of file Service.h.

bool Service::m_auditorInitialize
private

Definition at line 265 of file Service.h.

bool Service::m_auditorReinitialize
private

Definition at line 269 of file Service.h.

bool Service::m_auditorRestart
private

Definition at line 270 of file Service.h.

bool Service::m_auditorStart
private

Definition at line 266 of file Service.h.

bool Service::m_auditorStop
private

Definition at line 267 of file Service.h.

std::string Service::m_name
private

Service Name.

Definition at line 253 of file Service.h.

IntegerProperty Service::m_outputLevel = MSG::NIL
protected

Service output level.

Definition at line 242 of file Service.h.

SmartIF< IAuditorSvc > Service::m_pAuditorSvc
mutableprivate

Auditor Service.

Definition at line 263 of file Service.h.

SmartIF< PropertyMgr > Service::m_propertyMgr
private

Property Manager.

Definition at line 258 of file Service.h.

Service state.

Definition at line 244 of file Service.h.

SmartIF< ISvcLocator > Service::m_svcLocator
mutableprivate

Service Locator reference.

Definition at line 255 of file Service.h.

SmartIF< ISvcManager > Service::m_svcManager
private

Definition at line 256 of file Service.h.

Gaudi::StateMachine::State Service::m_targetState = Gaudi::StateMachine::OFFLINE
protected

Service state.

Definition at line 246 of file Service.h.


The documentation for this class was generated from the following files: