| The Gaudi Framework v32r1 (f65d50dc)

Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
Google::AuditorBase Class Referenceabstract

Base for Google Auditors. More...

`#include <GoogleAuditor.cpp>`

Inheritance diagram for Google::AuditorBase:
[legend]
Collaboration diagram for Google::AuditorBase:
[legend]

## Public Member Functions
StatusCode | initialize () override
| Initialize the auditor base. More...
StatusCode | finalize () override
| Finalize the auditor base. More...
void | handle (const Incident &incident) override
| Implement the handle method for the Incident service. More...
void | before (StandardEventType type, INamedInterface *i) override
void | before (CustomEventTypeRef type, INamedInterface *i) override
void | before (StandardEventType type, const std::string &s) override
void | before (CustomEventTypeRef type, const std::string &s) override
void | after (StandardEventType type, INamedInterface *i, const StatusCode &sc) override
void | after (CustomEventTypeRef type, INamedInterface *i, const StatusCode &sc) override
void | after (StandardEventType type, const std::string &s, const StatusCode &sc) override
void | after (CustomEventTypeRef type, const std::string &s, const StatusCode &) override
void | beforeInitialize (INamedInterface *i) override
void | beforeReinitialize (INamedInterface *i) override
void | beforeExecute (INamedInterface *i) override
void | beforeBeginRun (INamedInterface *i) override
void | beforeEndRun (INamedInterface *i) override
void | beforeFinalize (INamedInterface *i) override
void | afterInitialize (INamedInterface *i) override
void | afterReinitialize (INamedInterface *i) override
void | afterExecute (INamedInterface *i, const StatusCode &s) override
void | afterBeginRun (INamedInterface *i) override
void | afterEndRun (INamedInterface *i) override
void | afterFinalize (INamedInterface *i) override
Public Member Functions inherited from extends< Auditor, IIncidentListener >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
Public Member Functions inherited from Auditor
| Auditor (const std::string &name, ISvcLocator *svcloc)
| Constructor. More...
| Auditor (const Auditor &a)=delete
Auditor & | operator= (const Auditor &rhs)=delete
StatusCode | sysInitialize () override
| Initialization method invoked by the framework. More...
StatusCode | sysFinalize () override
| Finalization method invoked by the framework. More...
void | before (StandardEventType, INamedInterface *) override
| The following methods are meant to be implemented by the child class... More...
void | before (StandardEventType, const std::string &) override
void | before (CustomEventTypeRef, INamedInterface *) override
void | before (CustomEventTypeRef, const std::string &) override
void | after (StandardEventType, INamedInterface *, const StatusCode &) override
void | after (StandardEventType, const std::string &, const StatusCode &) override
void | after (CustomEventTypeRef, INamedInterface *, const StatusCode &) override
void | after (CustomEventTypeRef, const std::string &, const StatusCode &) override
void | beforeInitialize (INamedInterface *) override
void | afterInitialize (INamedInterface *) override
void | beforeReinitialize (INamedInterface *) override
void | afterReinitialize (INamedInterface *) override
void | beforeExecute (INamedInterface *) override
void | afterExecute (INamedInterface *, const StatusCode &) override
void | beforeFinalize (INamedInterface *) override
void | afterFinalize (INamedInterface *) override
void | beforeBeginRun (INamedInterface *) override
void | afterBeginRun (INamedInterface *) override
void | beforeEndRun (INamedInterface *) override
void | afterEndRun (INamedInterface *) override
const std::string & | name () const override
bool | isEnabled () const override
SmartIF< ISvcLocator > & | serviceLocator () const override
| The standard service locator. More...
template<class T >
StatusCode | service (const std::string &name, T *&svc, bool createIf=false) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T = IService>
SmartIF< T > | service (const std::string &name, bool createIf=false) const
StatusCode | setProperties ()
| Set the auditor's properties. More...
Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
| PropertyHolder ()=default
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Details::PropertyBase &prop)
| Declare a property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
| Helper to wrap a regular data member and use it as a regular property. More...
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
| Declare a PropertyBase instance setting name and documentation. More...
Gaudi::Details::PropertyBase * | declareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
| Declare a remote property. More...
StatusCode | setProperty (const Gaudi::Details::PropertyBase &p) override
| set the property form another property More...
StatusCode | setProperty (const std::string &s) override
| set the property from the formatted string More...
StatusCode | setProperty (const std::string &n, const std::string &v) override
| set the property from name and the value More...
StatusCode | setProperty (const std::string &name, const TYPE &value)
| set the property form the value More...
StatusCode | getProperty (Gaudi::Details::PropertyBase *p) const override
| get the property More...
const Gaudi::Details::PropertyBase & | getProperty (const std::string &name) const override
| get the property by name More...
StatusCode | getProperty (const std::string &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 (const std::string &name) const override
| Return true if we have a property with the given name. More...
| PropertyHolder (const PropertyHolder &)=delete
PropertyHolder & | operator= (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...
MSG::Level | outputLevel () const
| Backward compatibility function for getting the output level. More...
Public Member Functions inherited from CommonMessagingBase
virtual | ~CommonMessagingBase ()=default
| Virtual destructor. More...
const SmartIF< IMessageSvc > & | msgSvc () const
| The standard message service. More...
MsgStream & | msgStream () const
| Return an uninitialized MsgStream. More...
MsgStream & | msgStream (const MSG::Level level) const
| Predefined configurable message stream for the efficient printouts. More...
MsgStream & | always () const
| shortcut for the method msgStream(MSG::ALWAYS) More...
MsgStream & | fatal () const
| shortcut for the method msgStream(MSG::FATAL) More...
MsgStream & | err () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | error () const
| shortcut for the method msgStream(MSG::ERROR) More...
MsgStream & | warning () const
| shortcut for the method msgStream(MSG::WARNING) More...
MsgStream & | info () const
| shortcut for the method msgStream(MSG::INFO) More...
MsgStream & | debug () const
| shortcut for the method msgStream(MSG::DEBUG) More...
MsgStream & | verbose () const
| shortcut for the method msgStream(MSG::VERBOSE) More...
MsgStream & | msg () const
| shortcut for the method msgStream(MSG::INFO) More...

## Protected Member Functions
virtual void | google_before (const std::string &s)=0
| Start the google tool. More...
virtual void | google_after (const std::string &s)=0
| stop the google tool More...
virtual bool | alreadyRunning ()=0
| check if we are already running the tool More...
Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
Gaudi::Details::PropertyBase * | property (const std::string &name) const
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...

## Private Member Functions
void | startAudit ()
| Start a full event audit. More...
void | stopAudit ()
| stop a full event audit More...
bool | isSequencer (INamedInterface *i) const
| Check if the component in question is a GaudiSequencer or a Sequencer. More...
bool | isPhaseEnabled (CustomEventTypeRef type) const
| Check if auditing is enabled for the current processing phase. More...
bool | isComponentEnabled (const std::string &name) const
| Check if auditing is enabled for the given component. More...
std::string | getDumpName (CustomEventTypeRef type, const std::string &name) const

## Private Attributes
Gaudi::Property< std::vector< std::string > > | m_when
Gaudi::Property< std::vector< std::string > > | m_veto
Gaudi::Property< std::vector< std::string > > | m_list
Gaudi::Property< int > | m_freq {this, "ProfileFreq", -1, "The frequence to audit events. -1 means all events"}
Gaudi::Property< bool > | m_fullEventAudit
Gaudi::Property< unsigned long long > | m_nSampleEvents
Gaudi::Property< unsigned long long > | m_eventsToSkip
Gaudi::Property< bool > | m_skipSequencers
bool | m_audit = true
| Internal flag to say if auditing is enabled or not for the current event. More...
unsigned long long | m_nEvts = 0
| Number of events processed. More...
unsigned long long | m_sampleEventCount
| Internal count of the number of events currently processed during an audit. More...
bool | m_inFullAudit = false
| Internal flag to indicate if we are current in a full event audit. More...
std::string | m_startedBy
| Name of the component we are currently auditing. More...

## Additional Inherited Members
Public Types inherited from extends< Auditor, IIncidentListener >
using | base_class = extends
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
Public Types inherited from 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
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...

## Detailed Description

Base for Google Auditors.

Author
  Chris Jones

Date
  18/04/2011

Definition at line 37 of file GoogleAuditor.cpp.

## Member Function Documentation

## ◆ after() [1/4]

void Google::AuditorBase::after | ( | StandardEventType | type,
|  | INamedInterface * | i,
|  | const StatusCode & | sc
| ) |  |
| inline override

Definition at line 163 of file GoogleAuditor.cpp.

163 {
164 if ( !m_skipSequencers || !isSequencer( i ) ) {
165 std::ostringstream t;
166 t << type;
167 after( t.str(), i, sc );
168 }
169 }
Google::AuditorBase::isSequencer
bool isSequencer(INamedInterface *i) const
Check if the component in question is a GaudiSequencer or a Sequencer.
Definition: GoogleAuditor.cpp:89
std::ostringstream
STL class.
gaudirun.type
type
Definition: gaudirun.py:142
std::ostringstream::str
T str(T... args)
Google::AuditorBase::m_skipSequencers
Gaudi::Property< bool > m_skipSequencers
Definition: GoogleAuditor.cpp:234
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ after() [2/4]

void Google::AuditorBase::after | ( | CustomEventTypeRef | type,
|  | INamedInterface * | i,
|  | const StatusCode & | sc
| ) |  |
| inline override

Definition at line 171 of file GoogleAuditor.cpp.

171 {
172 if ( !m_skipSequencers || !isSequencer( i ) ) { after( type, i->name(), sc ); }
173 }
Google::AuditorBase::isSequencer
bool isSequencer(INamedInterface *i) const
Check if the component in question is a GaudiSequencer or a Sequencer.
Definition: GoogleAuditor.cpp:89
INamedInterface::name
virtual const std::string & name() const =0
Retrieve the name of the instance.
gaudirun.type
type
Definition: gaudirun.py:142
Google::AuditorBase::m_skipSequencers
Gaudi::Property< bool > m_skipSequencers
Definition: GoogleAuditor.cpp:234
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ after() [3/4]

void Google::AuditorBase::after | ( | StandardEventType | type,
|  | const std::string & | s,
|  | const StatusCode & | sc
| ) |  |
| inline override

Definition at line 175 of file GoogleAuditor.cpp.

175 {
176 std::ostringstream t;
177 t << type;
178 after( t.str(), s, sc );
179 }
std::ostringstream
STL class.
gaudirun.type
type
Definition: gaudirun.py:142
std::ostringstream::str
T str(T... args)
gaudirun.s
string s
Definition: gaudirun.py:316
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ after() [4/4]

void Google::AuditorBase::after | ( | CustomEventTypeRef | type,
|  | const std::string & | s,
|  | const StatusCode & |
| ) |  |
| inline override

Definition at line 181 of file GoogleAuditor.cpp.

181 {
182 if ( !m_fullEventAudit && m_audit && isPhaseEnabled( type ) && isComponentEnabled( s ) ) {
183 if ( s == m_startedBy ) { google_after( getDumpName( type, s ) ); }
184 }
185 }
Google::AuditorBase::isPhaseEnabled
bool isPhaseEnabled(CustomEventTypeRef type) const
Check if auditing is enabled for the current processing phase.
Definition: GoogleAuditor.cpp:94
Google::AuditorBase::m_startedBy
std::string m_startedBy
Name of the component we are currently auditing.
Definition: GoogleAuditor.cpp:242
Google::AuditorBase::getDumpName
std::string getDumpName(CustomEventTypeRef type, const std::string &name) const
Definition: GoogleAuditor.cpp:105
Google::AuditorBase::m_audit
bool m_audit
Internal flag to say if auditing is enabled or not for the current event.
Definition: GoogleAuditor.cpp:237
Google::AuditorBase::m_fullEventAudit
Gaudi::Property< bool > m_fullEventAudit
Definition: GoogleAuditor.cpp:227
gaudirun.type
type
Definition: gaudirun.py:142
Google::AuditorBase::isComponentEnabled
bool isComponentEnabled(const std::string &name) const
Check if auditing is enabled for the given component.
Definition: GoogleAuditor.cpp:99
gaudirun.s
string s
Definition: gaudirun.py:316
Google::AuditorBase::google_after
virtual void google_after(const std::string &s)=0
stop the google tool

## ◆ afterBeginRun()

void Google::AuditorBase::afterBeginRun | ( | INamedInterface * | i | ) |
| inline override

Definition at line 202 of file GoogleAuditor.cpp.

202 { return after( IAuditor::BeginRun, i, StatusCode::SUCCESS ); }
IAuditor::BeginRun
Definition: IAuditor.h:24
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ afterEndRun()

void Google::AuditorBase::afterEndRun | ( | INamedInterface * | i | ) |
| inline override

Definition at line 203 of file GoogleAuditor.cpp.

203 { return after( IAuditor::EndRun, i, StatusCode::SUCCESS ); }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IAuditor::EndRun
Definition: IAuditor.h:24
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ afterExecute()

void Google::AuditorBase::afterExecute | ( | INamedInterface * | i,
|  | const StatusCode & | s
| ) |  |
| inline override

Definition at line 201 of file GoogleAuditor.cpp.

201 { return after( IAuditor::Execute, i, s ); }
IAuditor::Execute
Definition: IAuditor.h:24
gaudirun.s
string s
Definition: gaudirun.py:316
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ afterFinalize()

void Google::AuditorBase::afterFinalize | ( | INamedInterface * | i | ) |
| inline override

Definition at line 204 of file GoogleAuditor.cpp.

204 { return after( IAuditor::Finalize, i, StatusCode::SUCCESS ); }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IAuditor::Finalize
Definition: IAuditor.h:24
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ afterInitialize()

void Google::AuditorBase::afterInitialize | ( | INamedInterface * | i | ) |
| inline override

Definition at line 195 of file GoogleAuditor.cpp.

195 {
196 return after( IAuditor::Initialize, i, StatusCode::SUCCESS );
197 }
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
IAuditor::Initialize
Definition: IAuditor.h:24
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ afterReinitialize()

void Google::AuditorBase::afterReinitialize | ( | INamedInterface * | i | ) |
| inline override

Definition at line 198 of file GoogleAuditor.cpp.

198 {
199 return after( IAuditor::ReInitialize, i, StatusCode::SUCCESS );
200 }
IAuditor::ReInitialize
Definition: IAuditor.h:24
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
Google::AuditorBase::after
void after(StandardEventType type, INamedInterface *i, const StatusCode &sc) override
Definition: GoogleAuditor.cpp:163

## ◆ alreadyRunning()

virtual bool Google::AuditorBase::alreadyRunning | ( |  | ) |
| protected pure virtual

check if we are already running the tool

Implemented in Google::CPUProfiler, Google::HeapChecker, and Google::HeapProfiler.

## ◆ before() [1/4]

void Google::AuditorBase::before | ( | StandardEventType | type,
|  | INamedInterface * | i
| ) |  |
| inline override

Definition at line 137 of file GoogleAuditor.cpp.

137 {
138 if ( !m_skipSequencers || !isSequencer( i ) ) { before( type, i->name() ); }
139 }
Google::AuditorBase::isSequencer
bool isSequencer(INamedInterface *i) const
Check if the component in question is a GaudiSequencer or a Sequencer.
Definition: GoogleAuditor.cpp:89
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137
INamedInterface::name
virtual const std::string & name() const =0
Retrieve the name of the instance.
gaudirun.type
type
Definition: gaudirun.py:142
Google::AuditorBase::m_skipSequencers
Gaudi::Property< bool > m_skipSequencers
Definition: GoogleAuditor.cpp:234

## ◆ before() [2/4]

void Google::AuditorBase::before | ( | CustomEventTypeRef | type,
|  | INamedInterface * | i
| ) |  |
| inline override

Definition at line 141 of file GoogleAuditor.cpp.

141 {
142 if ( !m_skipSequencers || !isSequencer( i ) ) { before( type, i->name() ); }
143 }
Google::AuditorBase::isSequencer
bool isSequencer(INamedInterface *i) const
Check if the component in question is a GaudiSequencer or a Sequencer.
Definition: GoogleAuditor.cpp:89
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137
INamedInterface::name
virtual const std::string & name() const =0
Retrieve the name of the instance.
gaudirun.type
type
Definition: gaudirun.py:142
Google::AuditorBase::m_skipSequencers
Gaudi::Property< bool > m_skipSequencers
Definition: GoogleAuditor.cpp:234

## ◆ before() [3/4]

void Google::AuditorBase::before | ( | StandardEventType | type,
|  | const std::string & | s
| ) |  |
| inline override

Definition at line 145 of file GoogleAuditor.cpp.

145 {
146 std::ostringstream t;
147 t << type;
148 before( t.str(), s );
149 }
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137
std::ostringstream
STL class.
gaudirun.type
type
Definition: gaudirun.py:142
std::ostringstream::str
T str(T... args)
gaudirun.s
string s
Definition: gaudirun.py:316

## ◆ before() [4/4]

void Google::AuditorBase::before | ( | CustomEventTypeRef | type,
|  | const std::string & | s
| ) |  |
| inline override

Definition at line 151 of file GoogleAuditor.cpp.

151 {
152 if ( !m_fullEventAudit && m_audit && isPhaseEnabled( type ) && isComponentEnabled( s ) ) {
153 if ( !alreadyRunning() ) {
154 info() << "Starting Auditor for " << s << ":" << type << endmsg;
155 m_startedBy = s;
156 google_before( getDumpName( type, s ) );
157 } else {
158 warning() << "Auditor already running. Cannot be started for " << s << endmsg;
159 }
160 }
161 }
Google::AuditorBase::isPhaseEnabled
bool isPhaseEnabled(CustomEventTypeRef type) const
Check if auditing is enabled for the current processing phase.
Definition: GoogleAuditor.cpp:94
Google::AuditorBase::m_startedBy
std::string m_startedBy
Name of the component we are currently auditing.
Definition: GoogleAuditor.cpp:242
Google::AuditorBase::getDumpName
std::string getDumpName(CustomEventTypeRef type, const std::string &name) const
Definition: GoogleAuditor.cpp:105
CommonMessagingBase::warning
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
Definition: CommonMessaging.h:101
Google::AuditorBase::google_before
virtual void google_before(const std::string &s)=0
Start the google tool.
Google::AuditorBase::m_audit
bool m_audit
Internal flag to say if auditing is enabled or not for the current event.
Definition: GoogleAuditor.cpp:237
Google::AuditorBase::m_fullEventAudit
Gaudi::Property< bool > m_fullEventAudit
Definition: GoogleAuditor.cpp:227
Google::AuditorBase::alreadyRunning
virtual bool alreadyRunning()=0
check if we are already running the tool
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
gaudirun.type
type
Definition: gaudirun.py:142
Google::AuditorBase::isComponentEnabled
bool isComponentEnabled(const std::string &name) const
Check if auditing is enabled for the given component.
Definition: GoogleAuditor.cpp:99
gaudirun.s
string s
Definition: gaudirun.py:316
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ beforeBeginRun()

void Google::AuditorBase::beforeBeginRun | ( | INamedInterface * | i | ) |
| inline override

Definition at line 191 of file GoogleAuditor.cpp.

191 { return before( IAuditor::BeginRun, i ); }
IAuditor::BeginRun
Definition: IAuditor.h:24
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137

## ◆ beforeEndRun()

void Google::AuditorBase::beforeEndRun | ( | INamedInterface * | i | ) |
| inline override

Definition at line 192 of file GoogleAuditor.cpp.

192 { return before( IAuditor::EndRun, i ); }
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137
IAuditor::EndRun
Definition: IAuditor.h:24

## ◆ beforeExecute()

void Google::AuditorBase::beforeExecute | ( | INamedInterface * | i | ) |
| inline override

Definition at line 190 of file GoogleAuditor.cpp.

190 { return before( IAuditor::Execute, i ); }
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137
IAuditor::Execute
Definition: IAuditor.h:24

## ◆ beforeFinalize()

void Google::AuditorBase::beforeFinalize | ( | INamedInterface * | i | ) |
| inline override

Definition at line 193 of file GoogleAuditor.cpp.

193 { return before( IAuditor::Finalize, i ); }
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137
IAuditor::Finalize
Definition: IAuditor.h:24

## ◆ beforeInitialize()

void Google::AuditorBase::beforeInitialize | ( | INamedInterface * | i | ) |
| inline override

Definition at line 188 of file GoogleAuditor.cpp.

188 { return before( IAuditor::Initialize, i ); }
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137
IAuditor::Initialize
Definition: IAuditor.h:24

## ◆ beforeReinitialize()

void Google::AuditorBase::beforeReinitialize | ( | INamedInterface * | i | ) |
| inline override

Definition at line 189 of file GoogleAuditor.cpp.

189 { return before( IAuditor::ReInitialize, i ); }
IAuditor::ReInitialize
Definition: IAuditor.h:24
Google::AuditorBase::before
void before(StandardEventType type, INamedInterface *i) override
Definition: GoogleAuditor.cpp:137

## ◆ finalize()

StatusCode Google::AuditorBase::finalize | ( |  | ) |
| inline override virtual

Finalize the auditor base.

Reimplemented from Auditor.

Definition at line 61 of file GoogleAuditor.cpp.

61 {
62 if ( alreadyRunning() ) stopAudit();
63 return StatusCode::SUCCESS;
64 }
Google::AuditorBase::stopAudit
void stopAudit()
stop a full event audit
Definition: GoogleAuditor.cpp:78
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
Google::AuditorBase::alreadyRunning
virtual bool alreadyRunning()=0
check if we are already running the tool

## ◆ getDumpName()

std::string Google::AuditorBase::getDumpName | ( | CustomEventTypeRef | type,
|  | const std::string & | name
| ) |  | const
| inline private

Definition at line 105 of file GoogleAuditor.cpp.

105 {
106 std::ostringstream t;
107 t << name << "-" << type;
108 if ( type == "Execute" ) t << "-Event" << m_nEvts;
109 return t.str();
110 }
Google::AuditorBase::m_nEvts
unsigned long long m_nEvts
Number of events processed.
Definition: GoogleAuditor.cpp:238
std::ostringstream
STL class.
gaudirun.type
type
Definition: gaudirun.py:142
std::ostringstream::str
T str(T... args)
Auditor::name
const std::string & name() const override
Definition: Auditor.cpp:193

## ◆ google_after()

virtual void Google::AuditorBase::google_after | ( | const std::string & | s | ) |
| protected pure virtual

stop the google tool

Implemented in Google::CPUProfiler, Google::HeapChecker, and Google::HeapProfiler.

## ◆ google_before()

virtual void Google::AuditorBase::google_before | ( | const std::string & | s | ) |
| protected pure virtual

Start the google tool.

Implemented in Google::CPUProfiler, Google::HeapChecker, and Google::HeapProfiler.

## ◆ handle()

void Google::AuditorBase::handle | ( | const Incident & | incident | ) |
| inline override

Implement the handle method for the Incident service.

This is used to inform the tool of software incidents.

Parameters

  incident | The incident identifier

Definition at line 118 of file GoogleAuditor.cpp.

118 {
119 if ( IncidentType::BeginEvent == incident.type() ) {
120 ++m_nEvts;
121 m_audit = ( m_nEvts > m_eventsToSkip && ( m_freq < 0 || m_nEvts == 1 || m_nEvts % m_freq == 0 ) );
122 if ( UNLIKELY( msgLevel( MSG::DEBUG ) ) ) debug() << "Event " << m_nEvts << " Audit=" << m_audit << endmsg;
123 if ( m_fullEventAudit ) {
124 if ( m_inFullAudit ) {
125 if ( m_sampleEventCount >= m_nSampleEvents && alreadyRunning() ) {
126 stopAudit();
127 } else {
128 ++m_sampleEventCount;
129 }
130 }
131 if ( m_audit && !m_inFullAudit && !alreadyRunning() ) { startAudit(); }
132 }
133 }
134 }
UNLIKELY
#define UNLIKELY(x)
Definition: Kernel.h:96
Google::AuditorBase::stopAudit
void stopAudit()
stop a full event audit
Definition: GoogleAuditor.cpp:78
Incident::type
const std::string & type() const
Access to the incident type.
Definition: Incident.h:38
Google::AuditorBase::m_audit
bool m_audit
Internal flag to say if auditing is enabled or not for the current event.
Definition: GoogleAuditor.cpp:237
Google::AuditorBase::startAudit
void startAudit()
Start a full event audit.
Definition: GoogleAuditor.cpp:68
MSG::DEBUG
Definition: IMessageSvc.h:15
Google::AuditorBase::m_freq
Gaudi::Property< int > m_freq
Definition: GoogleAuditor.cpp:226
Google::AuditorBase::m_fullEventAudit
Gaudi::Property< bool > m_fullEventAudit
Definition: GoogleAuditor.cpp:227
Google::AuditorBase::alreadyRunning
virtual bool alreadyRunning()=0
check if we are already running the tool
Google::AuditorBase::m_inFullAudit
bool m_inFullAudit
Internal flag to indicate if we are current in a full event audit.
Definition: GoogleAuditor.cpp:241
Google::AuditorBase::m_sampleEventCount
unsigned long long m_sampleEventCount
Internal count of the number of events currently processed during an audit.
Definition: GoogleAuditor.cpp:239
CommonMessaging< implements< IAuditor, IProperty > >::msgLevel
MSG::Level msgLevel() const
get the cached level (originally extracted from the embedded MsgStream)
Definition: CommonMessaging.h:138
Google::AuditorBase::m_nEvts
unsigned long long m_nEvts
Number of events processed.
Definition: GoogleAuditor.cpp:238
CommonMessagingBase::debug
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
Definition: CommonMessaging.h:107
Google::AuditorBase::m_nSampleEvents
Gaudi::Property< unsigned long long > m_nSampleEvents
Definition: GoogleAuditor.cpp:230
Google::AuditorBase::m_eventsToSkip
Gaudi::Property< unsigned long long > m_eventsToSkip
Definition: GoogleAuditor.cpp:232
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ initialize()

StatusCode Google::AuditorBase::initialize | ( |  | ) |
| inline override virtual

Initialize the auditor base.

Reimplemented from Auditor.

Reimplemented in Google::HeapChecker.

Definition at line 44 of file GoogleAuditor.cpp.

44 {
45 info() << "Initialised" << endmsg;
46
47 // add a listener for begin event
48 auto inSvc = serviceLocator()->service<IIncidentSvc>( "IncidentSvc" );
49 if ( !inSvc ) return StatusCode::FAILURE;
50 inSvc->addListener( this, IncidentType::BeginEvent );
51
52 // sort various lists for speed when searching
53 std::sort( m_when.begin(), m_when.end() );
54 std::sort( m_veto.begin(), m_veto.end() );
55 std::sort( m_list.begin(), m_list.end() );
56
57 return StatusCode::SUCCESS;
58 }
Google::AuditorBase::m_list
Gaudi::Property< std::vector< std::string > > m_list
Definition: GoogleAuditor.cpp:224
Google::AuditorBase::m_when
Gaudi::Property< std::vector< std::string > > m_when
Definition: GoogleAuditor.cpp:217
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:85
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
Auditor::serviceLocator
SmartIF< ISvcLocator > & serviceLocator() const override
The standard service locator.
Definition: Auditor.cpp:197
ISvcLocator::service
StatusCode service(const Gaudi::Utils::TypeNameString &name, T *&svc, bool createIf=true)
Templated method to access a service by name.
Definition: ISvcLocator.h:76
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86
std::sort
T sort(T... args)
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192
IIncidentSvc
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:23
Google::AuditorBase::m_veto
Gaudi::Property< std::vector< std::string > > m_veto
Definition: GoogleAuditor.cpp:222

## ◆ isComponentEnabled()

bool Google::AuditorBase::isComponentEnabled | ( | const std::string & | name | ) | const
| inline private

Check if auditing is enabled for the given component.

Definition at line 99 of file GoogleAuditor.cpp.

99 {
100 return ( std::find( m_veto.begin(), m_veto.end(), name ) == m_veto.end() &&
101 ( m_list.empty() || std::find( m_list.begin(), m_list.end(), name ) != m_list.end() ) );
102 }
Google::AuditorBase::m_list
Gaudi::Property< std::vector< std::string > > m_list
Definition: GoogleAuditor.cpp:224
std::find
T find(T... args)
Auditor::name
const std::string & name() const override
Definition: Auditor.cpp:193
Google::AuditorBase::m_veto
Gaudi::Property< std::vector< std::string > > m_veto
Definition: GoogleAuditor.cpp:222

## ◆ isPhaseEnabled()

bool Google::AuditorBase::isPhaseEnabled | ( | CustomEventTypeRef | type | ) | const
| inline private

Check if auditing is enabled for the current processing phase.

Definition at line 94 of file GoogleAuditor.cpp.

94 {
95 return ( std::find( m_when.begin(), m_when.end(), type ) != m_when.end() );
96 }
Google::AuditorBase::m_when
Gaudi::Property< std::vector< std::string > > m_when
Definition: GoogleAuditor.cpp:217
gaudirun.type
type
Definition: gaudirun.py:142
std::find
T find(T... args)

## ◆ isSequencer()

bool Google::AuditorBase::isSequencer | ( | INamedInterface * | i | ) | const
| inline private

Check if the component in question is a GaudiSequencer or a Sequencer.

Definition at line 89 of file GoogleAuditor.cpp.

89 {
90 return ( dynamic_cast<GaudiSequencer*>( i ) != NULL || dynamic_cast<Sequencer*>( i ) != NULL );
91 }

## ◆ startAudit()

void Google::AuditorBase::startAudit | ( |  | ) |
| inline private

Start a full event audit.

Definition at line 68 of file GoogleAuditor.cpp.

68 {
69 info() << " -> Starting full audit from event " << m_nEvts << " to " << m_nEvts + m_nSampleEvents << endmsg;
70 m_inFullAudit = true;
71 m_sampleEventCount = 1;
72 std::ostringstream t;
73 t << "FULL-Events" << m_nEvts << "To" << m_nEvts + m_nSampleEvents;
74 google_before( t.str() );
75 }
Google::AuditorBase::google_before
virtual void google_before(const std::string &s)=0
Start the google tool.
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
Google::AuditorBase::m_inFullAudit
bool m_inFullAudit
Internal flag to indicate if we are current in a full event audit.
Definition: GoogleAuditor.cpp:241
Google::AuditorBase::m_sampleEventCount
unsigned long long m_sampleEventCount
Internal count of the number of events currently processed during an audit.
Definition: GoogleAuditor.cpp:239
Google::AuditorBase::m_nEvts
unsigned long long m_nEvts
Number of events processed.
Definition: GoogleAuditor.cpp:238
std::ostringstream
STL class.
std::ostringstream::str
T str(T... args)
Google::AuditorBase::m_nSampleEvents
Gaudi::Property< unsigned long long > m_nSampleEvents
Definition: GoogleAuditor.cpp:230
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## ◆ stopAudit()

void Google::AuditorBase::stopAudit | ( |  | ) |
| inline private

stop a full event audit

Definition at line 78 of file GoogleAuditor.cpp.

78 {
79 info() << " -> Stopping full audit" << endmsg;
80 std::ostringstream t;
81 t << "FULL-Events" << m_nEvts << "To" << m_nEvts + m_nSampleEvents;
82 google_after( t.str() );
83 m_inFullAudit = false;
84 m_sampleEventCount = 0;
85 }
CommonMessagingBase::info
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
Definition: CommonMessaging.h:104
Google::AuditorBase::m_inFullAudit
bool m_inFullAudit
Internal flag to indicate if we are current in a full event audit.
Definition: GoogleAuditor.cpp:241
Google::AuditorBase::m_sampleEventCount
unsigned long long m_sampleEventCount
Internal count of the number of events currently processed during an audit.
Definition: GoogleAuditor.cpp:239
Google::AuditorBase::m_nEvts
unsigned long long m_nEvts
Number of events processed.
Definition: GoogleAuditor.cpp:238
std::ostringstream
STL class.
std::ostringstream::str
T str(T... args)
Google::AuditorBase::m_nSampleEvents
Gaudi::Property< unsigned long long > m_nSampleEvents
Definition: GoogleAuditor.cpp:230
Google::AuditorBase::google_after
virtual void google_after(const std::string &s)=0
stop the google tool
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

## Member Data Documentation

## ◆ m_audit

bool Google::AuditorBase::m_audit = true
| private

Internal flag to say if auditing is enabled or not for the current event.

Definition at line 237 of file GoogleAuditor.cpp.

## ◆ m_eventsToSkip

Gaudi::Property<unsigned long long> Google::AuditorBase::m_eventsToSkip
| private

Initial value:
{this, "SkipEvents", 0,
"Number of events to skip before activating the auditing"}

Definition at line 232 of file GoogleAuditor.cpp.

## ◆ m_freq

Gaudi::Property<int> Google::AuditorBase::m_freq {this, "ProfileFreq", -1, "The frequence to audit events. -1 means all events"}
| private

Definition at line 226 of file GoogleAuditor.cpp.

## ◆ m_fullEventAudit

Gaudi::Property<bool> Google::AuditorBase::m_fullEventAudit
| private

Initial value:
{
this, "DoFullEventProfile", false,
"If true, instead of individually auditing components, the full event (or events) will be audited in one go"}

Definition at line 227 of file GoogleAuditor.cpp.

## ◆ m_inFullAudit

bool Google::AuditorBase::m_inFullAudit = false
| private

Internal flag to indicate if we are current in a full event audit.

Definition at line 241 of file GoogleAuditor.cpp.

## ◆ m_list

Gaudi::Property<std::vector<std::string> > Google::AuditorBase::m_list
| private

Initial value:
{
this, "EnableFor", {}, "Any component in this list will be audited. If empty, all will be done."}

Definition at line 224 of file GoogleAuditor.cpp.

## ◆ m_nEvts

unsigned long long Google::AuditorBase::m_nEvts = 0
| private

Number of events processed.

Definition at line 238 of file GoogleAuditor.cpp.

## ◆ m_nSampleEvents

Gaudi::Property<unsigned long long> Google::AuditorBase::m_nSampleEvents
| private

Initial value:
{
this, "FullEventNSampleEvents", 1, "The number of events to include in a full event audit, if enabled"}

Definition at line 230 of file GoogleAuditor.cpp.

## ◆ m_sampleEventCount

unsigned long long Google::AuditorBase::m_sampleEventCount
| private

Initial value:
=
0

Internal count of the number of events currently processed during an audit.

Definition at line 239 of file GoogleAuditor.cpp.

## ◆ m_skipSequencers

Gaudi::Property<bool> Google::AuditorBase::m_skipSequencers
| private

Initial value:
{this, "SkipSequencers", true,
"If true, auditing will be skipped for Sequencer objects."}

Definition at line 234 of file GoogleAuditor.cpp.

## ◆ m_startedBy

std::string Google::AuditorBase::m_startedBy
| private

Name of the component we are currently auditing.

Definition at line 242 of file GoogleAuditor.cpp.

## ◆ m_veto

Gaudi::Property<std::vector<std::string> > Google::AuditorBase::m_veto
| private

Initial value:
{
this, "DisableFor", {}, "List of component names to disable the auditing for"}

Definition at line 222 of file GoogleAuditor.cpp.

## ◆ m_when

Gaudi::Property<std::vector<std::string> > Google::AuditorBase::m_when
| private

Initial value:
{
this,
"ActivateAt",
{"Initialize", "ReInitialize", "Execute", "BeginRun", "EndRun", "Finalize"},
"List of phases to activate the Auditoring during"}

Definition at line 217 of file GoogleAuditor.cpp.

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

- GaudiProfiling/src/component/google/GoogleAuditor.cpp