The Gaudi Framework  master (b6adf5d0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
AlgContextAuditor Class Reference
Inheritance diagram for AlgContextAuditor:
Collaboration diagram for AlgContextAuditor:

Public Member Functions

void before (std::string const &, std::string const &, EventContext const &) override
 
void after (std::string const &, std::string const &, EventContext const &, StatusCode const &) override
 
StatusCode initialize () override
 
StatusCode finalize () override
 
- Public Member Functions inherited from Gaudi::Auditor
 Auditor (std::string name, ISvcLocator *svcloc)
 
 Auditor (const Auditor &a)=delete
 
Auditoroperator= (const Auditor &rhs)=delete
 
StatusCode sysInitialize () override
 
StatusCode sysFinalize () override
 
void before (std::string const &, std::string const &, EventContext const &) override
 
void after (std::string const &, std::string const &, EventContext const &, StatusCode const &=StatusCode::SUCCESS) override
 
const std::string & name () const override
 
bool isEnabled () const override
 
SmartIF< ISvcLocator > & serviceLocator () const override
 The standard service locator. More...
 
template<class T = IService>
SmartIF< T > service (std::string_view name, bool createIf=false) const
 Access a service by name, creating it if it doesn't already exist. More...
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 PropertyHolder ()=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
 requires (!Gaudi::Details::is_gaudi_property_v< TYPE >) Gaudi
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p) override
 set the property from another property with a different name More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p)
 Set the property from a property. More...
 
virtual StatusCode setProperty (const std::string &name, const Gaudi::Details::PropertyBase &p)=0
 Set the property from a property with a different name. More...
 
virtual StatusCode setProperty (const std::string &s)=0
 Set the property by string. More...
 
StatusCode setProperty (const std::string &name, const char *v)
 Special case for string literals. More...
 
StatusCode setProperty (const std::string &name, const std::string &v)
 Special case for std::string. More...
 
StatusCode setPropertyRepr (const std::string &n, const std::string &r) override
 set the property from name and value string representation More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (std::string_view name) const override
 get the property by name More...
 
StatusCode getProperty (std::string_view n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (std::string_view name) const override
 Return true if we have a property with the given name. More...
 
Gaudi::Details::PropertyBaseproperty (std::string_view name) const
 \fixme property and bindPropertiesTo should be protected More...
 
void bindPropertiesTo (Gaudi::Interfaces::IOptionsSvc &optsSvc)
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
- Public Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 

Private Member Functions

 AlgContextAuditor ()=delete
 delete the default/copy constructor and assignment More...
 
 AlgContextAuditor (const AlgContextAuditor &)=delete
 
AlgContextAuditoroperator= (const AlgContextAuditor &)=delete
 

Private Attributes

SmartIF< IAlgContextSvcm_svc
 the pointer to Algorithm Context Service More...
 
SmartIF< IAlgManagerm_algMgr
 the pointer to Algorithm Manager More...
 

Additional Inherited Members

- Public Types inherited from Gaudi::Auditor
using Factory = Gaudi::PluginService::Factory< IAuditor *(const std::string &, ISvcLocator *)>
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
using PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IAuditor, IProperty > >
using base_class = CommonMessaging
 
- Protected Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Detailed Description

Description: Register/Unregister the AlgContext of each algorithm before entering the algorithm and after leaving it

Author
M. Shapiro, LBNL
modified by Vanya BELYAEV ibely.nosp@m.aev@.nosp@m.physi.nosp@m.cs.s.nosp@m.yr.ed.nosp@m.u

Definition at line 26 of file AlgContextAuditor.cpp.

Constructor & Destructor Documentation

◆ AlgContextAuditor() [1/2]

AlgContextAuditor::AlgContextAuditor ( )
privatedelete

delete the default/copy constructor and assignment

◆ AlgContextAuditor() [2/2]

AlgContextAuditor::AlgContextAuditor ( const AlgContextAuditor )
privatedelete

Member Function Documentation

◆ after()

void AlgContextAuditor::after ( std::string const &  event,
std::string const &  caller,
EventContext const &  context,
StatusCode const &   
)
override

Definition at line 83 of file AlgContextAuditor.cpp.

84  {
85  if ( m_svc && ( event == Gaudi::IAuditor::Initialize || event == Gaudi::IAuditor::Execute ||
86  event == Gaudi::IAuditor::Finalize ) ) {
87  SmartIF<IAlgorithm>& alg = m_algMgr->algorithm( caller, false );
88  if ( alg ) m_svc->unSetCurrentAlg( alg, context ).ignore();
89  }
90 }

◆ before()

void AlgContextAuditor::before ( std::string const &  event,
std::string const &  caller,
EventContext const &  context 
)
override

Definition at line 75 of file AlgContextAuditor.cpp.

75  {
76  if ( m_svc && ( event == Gaudi::IAuditor::Initialize || event == Gaudi::IAuditor::Execute ||
77  event == Gaudi::IAuditor::Finalize ) ) {
78  SmartIF<IAlgorithm>& alg = m_algMgr->algorithm( caller, false );
79  if ( alg ) m_svc->setCurrentAlg( alg, context ).ignore();
80  }
81 }

◆ finalize()

StatusCode AlgContextAuditor::finalize ( )
overridevirtual

Reimplemented from Gaudi::Auditor.

Definition at line 69 of file AlgContextAuditor.cpp.

69  {
70  m_svc.reset();
71  m_algMgr.reset();
72  return Auditor::finalize();
73 }

◆ initialize()

StatusCode AlgContextAuditor::initialize ( )
overridevirtual

Reimplemented from Gaudi::Auditor.

Definition at line 53 of file AlgContextAuditor.cpp.

53  {
54  return Auditor::initialize().andThen( [&] {
55  m_svc = service( "AlgContextSvc", true );
56  if ( !m_svc ) {
57  error() << "Invalid pointer to IAlgContextSvc" << endmsg;
58  return StatusCode::FAILURE; // RETURN
59  }
61  if ( !m_algMgr ) {
62  error() << "Invalid pointer to IAlgManager" << endmsg;
63  return StatusCode::FAILURE; // RETURN
64  }
65  return StatusCode::SUCCESS;
66  } );
67 }

◆ operator=()

AlgContextAuditor& AlgContextAuditor::operator= ( const AlgContextAuditor )
privatedelete

Member Data Documentation

◆ m_algMgr

SmartIF<IAlgManager> AlgContextAuditor::m_algMgr
private

the pointer to Algorithm Manager

Definition at line 47 of file AlgContextAuditor.cpp.

◆ m_svc

SmartIF<IAlgContextSvc> AlgContextAuditor::m_svc
private

the pointer to Algorithm Context Service

Definition at line 45 of file AlgContextAuditor.cpp.


The documentation for this class was generated from the following file:
SmartIF::reset
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
Definition: SmartIF.h:92
Gaudi::IAuditor::Finalize
static constexpr std::string Finalize
Definition: IAuditor.h:53
Gaudi::Auditor::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
The standard service locator.
Definition: Auditor.h:59
ManySmallAlgs.alg
alg
Definition: ManySmallAlgs.py:81
AlgContextAuditor::m_algMgr
SmartIF< IAlgManager > m_algMgr
the pointer to Algorithm Manager
Definition: AlgContextAuditor.cpp:47
SmartIF< IAlgorithm >
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:202
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
AlgContextAuditor::m_svc
SmartIF< IAlgContextSvc > m_svc
the pointer to Algorithm Context Service
Definition: AlgContextAuditor.cpp:45
Gaudi::IAuditor::Initialize
static constexpr std::string Initialize
Definition: IAuditor.h:47
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:101
Gaudi::Auditor::service
SmartIF< T > service(std::string_view name, bool createIf=false) const
Access a service by name, creating it if it doesn't already exist.
Definition: Auditor.h:63
Gaudi::IAuditor::Execute
static constexpr std::string Execute
Definition: IAuditor.h:51