gem5  v22.1.0.0
Public Member Functions | Private Attributes | List of all members
gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > > Class Template Reference

Template specialization for type std::function<Result()> which holds a copy of its target instead of a pointer to it. More...

#include <statistics.hh>

Inheritance diagram for gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > >:
gem5::statistics::ProxyInfo gem5::statistics::ScalarInfo gem5::statistics::Info

Public Member Functions

 FunctorProxy (const T &func)
 
Counter value () const
 
Result result () const
 
Result total () const
 
- Public Member Functions inherited from gem5::statistics::ProxyInfo
std::string str () const
 
size_type size () const
 
bool check () const
 Check that this stat has been set up properly and is ready for use. More...
 
void prepare ()
 Prepare the stat for dumping. More...
 
void reset ()
 Reset the stat to the default state. More...
 
bool zero () const
 
void visit (Output &visitor)
 Visitor entry for outputing statistics data. More...
 
- Public Member Functions inherited from gem5::statistics::Info
 Info ()
 
virtual ~Info ()
 
void setName (const std::string &name, bool old_style=true)
 Set the name of this statistic. More...
 
void setSeparator (std::string _sep)
 
StorageParams const * getStorageParams () const
 Getter for the storage params. More...
 
void setStorageParams (const StorageParams *const params)
 Setter for the storage params. More...
 
bool baseCheck () const
 
virtual void enable ()
 Enable the stat for use. More...
 

Private Attributes

std::function< Result()> functor
 

Additional Inherited Members

- Static Public Member Functions inherited from gem5::statistics::Info
static bool less (Info *stat1, Info *stat2)
 Checks if the first stat's name is alphabetically less than the second. More...
 
- Public Attributes inherited from gem5::statistics::Info
std::string name
 The name of the stat. More...
 
const units::Baseunit = units::Unspecified::get()
 The unit of the stat. More...
 
std::string desc
 The description of the stat. More...
 
Flags flags
 The formatting flags. More...
 
int precision
 The display precision. More...
 
const Infoprereq
 A pointer to a prerequisite Stat. More...
 
int id
 
- Static Public Attributes inherited from gem5::statistics::Info
static std::string separatorString = "::"
 The separator string used for vectors, dist, etc. More...
 
static int id_count = 0
 A unique stat ID for each stat in the simulator. More...
 

Detailed Description

template<class T>
class gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > >

Template specialization for type std::function<Result()> which holds a copy of its target instead of a pointer to it.

This makes it possible to use a lambda or other type inline without having to keep track of an instance somewhere else.

Definition at line 680 of file statistics.hh.

Constructor & Destructor Documentation

◆ FunctorProxy()

template<class T >
gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > >::FunctorProxy ( const T &  func)
inline

Definition at line 688 of file statistics.hh.

Member Function Documentation

◆ result()

template<class T >
Result gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > >::result ( ) const
inlinevirtual

◆ total()

template<class T >
Result gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > >::total ( ) const
inlinevirtual

◆ value()

template<class T >
Counter gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > >::value ( ) const
inlinevirtual

Member Data Documentation

◆ functor

template<class T >
std::function<Result()> gem5::statistics::FunctorProxy< T, typename std::enable_if_t< std::is_constructible_v< std::function< Result()>, const T & > > >::functor
private

Definition at line 685 of file statistics.hh.


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

Generated on Wed Dec 21 2022 10:24:26 for gem5 by doxygen 1.9.1