gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
Stats::ScalarProxy< Stat > Class Template Reference

A proxy class to access the stat at a given index in a VectorBase stat. More...

#include <statistics.hh>

Public Member Functions

Counter value () const
 Return the current value of this stat as its base type. More...
 
Result result () const
 Return the current value of this statas a result type. More...
 
 ScalarProxy (Stat &s, off_type i)
 Create and initialize this proxy, do not register it with the database. More...
 
 ScalarProxy (const ScalarProxy &sp)
 Create a copy of the provided ScalarProxy. More...
 
const ScalarProxyoperator= (const ScalarProxy &sp)
 Set this proxy equal to the provided one. More...
 
void operator++ ()
 Increment the stat by 1. More...
 
void operator-- ()
 Decrement the stat by 1. More...
 
void operator++ (int)
 Increment the stat by 1. More...
 
void operator-- (int)
 Decrement the stat by 1. More...
 
template<typename U >
void operator= (const U &v)
 Set the data value to the given value. More...
 
template<typename U >
void operator+= (const U &v)
 Increment the stat by the given value. More...
 
template<typename U >
void operator-= (const U &v)
 Decrement the stat by the given value. More...
 
size_type size () const
 Return the number of elements, always 1 for a scalar. More...
 
std::string str () const
 

Private Attributes

Stat & stat
 Pointer to the parent Vector. More...
 
off_type index
 The index to access in the parent VectorBase. More...
 

Detailed Description

template<class Stat>
class Stats::ScalarProxy< Stat >

A proxy class to access the stat at a given index in a VectorBase stat.

Behaves like a ScalarBase.

Definition at line 928 of file statistics.hh.

Constructor & Destructor Documentation

◆ ScalarProxy() [1/2]

template<class Stat >
Stats::ScalarProxy< Stat >::ScalarProxy ( Stat &  s,
off_type  i 
)
inline

Create and initialize this proxy, do not register it with the database.

Parameters
iThe index to access.

Definition at line 955 of file statistics.hh.

◆ ScalarProxy() [2/2]

template<class Stat >
Stats::ScalarProxy< Stat >::ScalarProxy ( const ScalarProxy< Stat > &  sp)
inline

Create a copy of the provided ScalarProxy.

Parameters
spThe proxy to copy.

Definition at line 964 of file statistics.hh.

Member Function Documentation

◆ operator++() [1/2]

template<class Stat >
void Stats::ScalarProxy< Stat >::operator++ ( )
inline

Increment the stat by 1.

This calls the associated storage object inc function.

Definition at line 987 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, and Stats::ScalarProxy< Stat >::stat.

◆ operator++() [2/2]

template<class Stat >
void Stats::ScalarProxy< Stat >::operator++ ( int  )
inline

Increment the stat by 1.

Definition at line 995 of file statistics.hh.

◆ operator+=()

template<class Stat >
template<typename U >
void Stats::ScalarProxy< Stat >::operator+= ( const U &  v)
inline

Increment the stat by the given value.

This calls the associated storage object inc function.

Parameters
vThe value to add.

Definition at line 1018 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, Stats::ScalarProxy< Stat >::stat, and ArmISA::v.

◆ operator--() [1/2]

template<class Stat >
void Stats::ScalarProxy< Stat >::operator-- ( )
inline

Decrement the stat by 1.

This calls the associated storage object dec function.

Definition at line 992 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, and Stats::ScalarProxy< Stat >::stat.

◆ operator--() [2/2]

template<class Stat >
void Stats::ScalarProxy< Stat >::operator-- ( int  )
inline

Decrement the stat by 1.

Definition at line 997 of file statistics.hh.

◆ operator-=()

template<class Stat >
template<typename U >
void Stats::ScalarProxy< Stat >::operator-= ( const U &  v)
inline

Decrement the stat by the given value.

This calls the associated storage object dec function.

Parameters
vThe value to substract.

Definition at line 1030 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, Stats::ScalarProxy< Stat >::stat, and ArmISA::v.

◆ operator=() [1/2]

template<class Stat >
const ScalarProxy& Stats::ScalarProxy< Stat >::operator= ( const ScalarProxy< Stat > &  sp)
inline

Set this proxy equal to the provided one.

Parameters
spThe proxy to copy.
Returns
A reference to this proxy.

Definition at line 974 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, ArmISA::sp, and Stats::ScalarProxy< Stat >::stat.

◆ operator=() [2/2]

template<class Stat >
template<typename U >
void Stats::ScalarProxy< Stat >::operator= ( const U &  v)
inline

Set the data value to the given value.

This calls the associated storage object set function.

Parameters
vThe new value.

Definition at line 1006 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, Stats::ScalarProxy< Stat >::stat, and ArmISA::v.

◆ result()

template<class Stat >
Result Stats::ScalarProxy< Stat >::result ( ) const
inline

Return the current value of this statas a result type.

Returns
The current value.

Definition at line 948 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, and Stats::ScalarProxy< Stat >::stat.

◆ size()

template<class Stat >
size_type Stats::ScalarProxy< Stat >::size ( ) const
inline

Return the number of elements, always 1 for a scalar.

Returns
1.

Definition at line 1039 of file statistics.hh.

◆ str()

template<class Stat >
std::string Stats::ScalarProxy< Stat >::str ( ) const
inline

◆ value()

template<class Stat >
Counter Stats::ScalarProxy< Stat >::value ( ) const
inline

Return the current value of this stat as its base type.

Returns
The current value.

Definition at line 942 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, and Stats::ScalarProxy< Stat >::stat.

Member Data Documentation

◆ index

template<class Stat >
off_type Stats::ScalarProxy< Stat >::index
private

◆ stat

template<class Stat >
Stat& Stats::ScalarProxy< Stat >::stat
private

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

Generated on Wed Sep 30 2020 14:03:12 for gem5 by doxygen 1.8.17