gem5  v19.0.0.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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 903 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 930 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 939 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 962 of file statistics.hh.

◆ operator++() [2/2]

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

Increment the stat by 1.

Definition at line 970 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 993 of file statistics.hh.

◆ 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 967 of file statistics.hh.

◆ operator--() [2/2]

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

Decrement the stat by 1.

Definition at line 972 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 1005 of file statistics.hh.

◆ 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 949 of file statistics.hh.

References Stats::ScalarProxy< Stat >::index, 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 981 of file statistics.hh.

◆ 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 923 of file statistics.hh.

Referenced by Stats::ScalarProxyNode< Stat >::result(), and Stats::ScalarProxyNode< Stat >::total().

◆ 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 1014 of file statistics.hh.

◆ str()

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

Definition at line 1018 of file statistics.hh.

References csprintf(), and MipsISA::index.

Referenced by Stats::ScalarProxyNode< Stat >::str().

◆ 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 917 of file statistics.hh.

Member Data Documentation

◆ index

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

The index to access in the parent VectorBase.

Definition at line 910 of file statistics.hh.

Referenced by Stats::ScalarProxy< Stat >::operator=().

◆ stat

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

Pointer to the parent Vector.

Definition at line 907 of file statistics.hh.

Referenced by Stats::ScalarProxy< Stat >::operator=().


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

Generated on Fri Feb 28 2020 16:27:26 for gem5 by doxygen 1.8.13