gem5 v23.0.0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Private Attributes | List of all members
gem5::ProbePointArg< Arg > Class Template Reference

ProbePointArg generates a point for the class of Arg. More...

#include <probe.hh>

Inheritance diagram for gem5::ProbePointArg< Arg >:
gem5::ProbePoint

Public Member Functions

 ProbePointArg (ProbeManager *manager, std::string name)
 
bool hasListeners () const
 Informs whether any listeners are attached to this probe.
 
void addListener (ProbeListener *l) override
 adds a ProbeListener to this ProbePoints notify list.
 
void removeListener (ProbeListener *l) override
 remove a ProbeListener from this ProbePoints notify list.
 
void notify (const Arg &arg)
 called at the ProbePoint call site, passes arg to each listener.
 
- Public Member Functions inherited from gem5::ProbePoint
 ProbePoint (ProbeManager *manager, const std::string &name)
 
virtual ~ProbePoint ()
 
virtual void addListener (ProbeListener *listener)=0
 
virtual void removeListener (ProbeListener *listener)=0
 
std::string getName () const
 

Private Attributes

std::vector< ProbeListenerArgBase< Arg > * > listeners
 The attached listeners.
 

Additional Inherited Members

- Protected Attributes inherited from gem5::ProbePoint
const std::string name
 

Detailed Description

template<typename Arg>
class gem5::ProbePointArg< Arg >

ProbePointArg generates a point for the class of Arg.

As ProbePointArgs talk directly to ProbeListenerArgs of the same type, we can store the vector of ProbeListeners as their Arg type (and not as base type).

Methods are provided to addListener, removeListener and notify.

Definition at line 262 of file probe.hh.

Constructor & Destructor Documentation

◆ ProbePointArg()

template<typename Arg >
gem5::ProbePointArg< Arg >::ProbePointArg ( ProbeManager manager,
std::string  name 
)
inline

Definition at line 268 of file probe.hh.

Member Function Documentation

◆ addListener()

template<typename Arg >
void gem5::ProbePointArg< Arg >::addListener ( ProbeListener l)
inlineoverridevirtual

adds a ProbeListener to this ProbePoints notify list.

Parameters
lthe ProbeListener to add to the notify list.

Implements gem5::ProbePoint.

Definition at line 287 of file probe.hh.

References gem5::MipsISA::l, and gem5::ProbePointArg< Arg >::listeners.

◆ hasListeners()

template<typename Arg >
bool gem5::ProbePointArg< Arg >::hasListeners ( ) const
inline

Informs whether any listeners are attached to this probe.

This can be used to avoid performing costly tasks needed by the probe when nobody is listening.

Returns
Whether this probe has any listener.

Definition at line 280 of file probe.hh.

References gem5::ProbePointArg< Arg >::listeners.

◆ notify()

template<typename Arg >
void gem5::ProbePointArg< Arg >::notify ( const Arg &  arg)
inline

called at the ProbePoint call site, passes arg to each listener.

Parameters
argthe argument to pass to each listener.

Definition at line 312 of file probe.hh.

References gem5::MipsISA::l, and gem5::ProbePointArg< Arg >::listeners.

Referenced by gem5::o3::Fetch::finishTranslation(), gem5::o3::Fetch::recvReqRetry(), and gem5::BaseCPU::updateCycleCounters().

◆ removeListener()

template<typename Arg >
void gem5::ProbePointArg< Arg >::removeListener ( ProbeListener l)
inlineoverridevirtual

remove a ProbeListener from this ProbePoints notify list.

Parameters
lthe ProbeListener to remove from the notify list.

Implements gem5::ProbePoint.

Definition at line 301 of file probe.hh.

References gem5::MipsISA::l, and gem5::ProbePointArg< Arg >::listeners.

Member Data Documentation

◆ listeners

template<typename Arg >
std::vector<ProbeListenerArgBase<Arg> *> gem5::ProbePointArg< Arg >::listeners
private

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

Generated on Mon Jul 10 2023 15:32:14 for gem5 by doxygen 1.9.7