timemory 3.3.0
Modular C++ Toolkit for Performance Analysis and Logging. Profiling API and Tools for C, C++, CUDA, Fortran, and Python. The C++ template API is essentially a framework to creating tools: it is designed to provide a unifying interface for recording various performance measurements alongside data logging and interfaces to other tools.
tim::component::base< Tp, Value > Struct Template Reference

#include "timemory/components/base/declaration.hpp"

+ Collaboration diagram for tim::component::base< Tp, Value >:

Public Types

using EmptyT = std::tuple<>
 
template<typename U >
using vector_t = std::vector< U >
 
using Type = Tp
 
using value_type = Value
 
using data_type = base_data_t< Tp, Value >
 
using accum_type = typename data_type::accum_type
 
using last_type = typename data_type::last_type
 
using dynamic_type = typename trait::dynamic_base< Tp >::type
 
using cache_type = typename trait::cache< Tp >::type
 
using this_type = Tp
 
using base_type = base< Tp, Value >
 
using base_storage_type = tim::base::storage
 
using storage_type = storage< Tp, Value >
 
using graph_iterator = graph_iterator_t< Tp >
 
using state_t = state< this_type >
 
using statistics_policy = policy::record_statistics< Tp, Value >
 
using fmtflags = std::ios_base::fmtflags
 

Public Member Functions

 ~base ()=default
 
void set_started ()
 store that start has been called More...
 
void set_stopped ()
 store that stop has been called More...
 
void reset ()
 reset the values More...
 
void get (void *&ptr, size_t _typeid_hash) const
 assign type to a pointer More...
 
auto get () const
 retrieve the current measurement value in the units for the type More...
 
auto get_display () const
 retrieve the current measurement value in the units for the type in a format that can be piped to the output stream operator ('<<') More...
 
Typeoperator+= (const Type &rhs)
 
Typeoperator-= (const Type &rhs)
 
Typeoperator*= (const Type &rhs)
 
Typeoperator/= (const Type &rhs)
 
Typeoperator+= (const Value &rhs)
 
Typeoperator-= (const Value &rhs)
 
Typeoperator*= (const Value &rhs)
 
Typeoperator/= (const Value &rhs)
 
template<typename Up = Tp>
void print (std::ostream &, enable_if_t< trait::uses_value_storage< Up, Value >::value, int >=0) const
 
template<typename Up = Tp>
void print (std::ostream &, enable_if_t<!trait::uses_value_storage< Up, Value >::value, long >=0) const
 
template<typename Archive , typename Up = Type, enable_if_t<!trait::custom_serialization< Up >::value, int > = 0>
void load (Archive &ar, unsigned int)
 serialization load (input) More...
 
template<typename Archive , typename Up = Type, enable_if_t<!trait::custom_serialization< Up >::value, int > = 0>
void save (Archive &ar, unsigned int version) const
 serialization store (output) More...
 
int64_t get_laps () const
 add a sample More...
 
auto get_iterator () const
 
void set_laps (int64_t v)
 
void set_iterator (graph_iterator itr)
 
decltype(auto) load ()
 
decltype(auto) load () const
 
auto plus (crtp::base, const base_type &rhs)
 
auto minus (crtp::base, const base_type &rhs)
 
bool get_depth_change () const
 
bool get_is_flat () const
 
bool get_is_invalid () const
 
bool get_is_on_stack () const
 
bool get_is_running () const
 
bool get_is_transient () const
 
void set_depth_change (bool v)
 
void set_is_flat (bool v)
 
void set_is_invalid (bool v)
 
void set_is_on_stack (bool v)
 
void set_is_running (bool v)
 
void set_is_transient (bool v)
 

Static Public Member Functions

template<typename... Args>
static void configure (Args &&...)
 
static opaque get_opaque (scope::config)
 get the opaque binding for user-bundle More...
 
template<typename Vp , typename Up = Tp, enable_if_t< trait::sampler< Up >::value, int > = 0>
static void add_sample (Vp &&)
 
static base_storage_typeget_storage ()
 
template<typename Up = Type, typename UnitT = typename trait::units<Up>::type, enable_if_t< std::is_same< UnitT, int64_t >::value, int > = 0>
static int64_t unit ()
 
template<typename Up = Type, typename UnitT = typename trait::units<Up>::display_type, enable_if_t< std::is_same< UnitT, std::string >::value, int > = 0>
static std::string display_unit ()
 
template<typename Up = Type, typename UnitT = typename trait::units<Up>::type, enable_if_t< std::is_same< UnitT, int64_t >::value, int > = 0>
static int64_t get_unit ()
 
template<typename Up = Type, typename UnitT = typename trait::units<Up>::display_type, enable_if_t< std::is_same< UnitT, std::string >::value, int > = 0>
static std::string get_display_unit ()
 
static short get_width ()
 
static short get_precision ()
 
static fmtflags get_format_flags ()
 
static std::string label ()
 
static std::string description ()
 
static std::string get_label ()
 
static std::string get_description ()
 
template<typename... Args>
static opaque get_opaque (Args &&...)
 

Static Public Attributes

static constexpr bool is_component = true
 
static constexpr bool timing_category_v = trait::is_timing_category<Type>::value
 
static constexpr bool memory_category_v = trait::is_memory_category<Type>::value
 
static constexpr bool timing_units_v = trait::uses_timing_units<Type>::value
 
static constexpr bool memory_units_v = trait::uses_memory_units<Type>::value
 
static constexpr bool percent_units_v = trait::uses_percent_units<Type>::value
 
static constexpr auto ios_fixed = std::ios_base::fixed
 
static constexpr auto ios_decimal = std::ios_base::dec
 
static constexpr auto ios_showpoint = std::ios_base::showpoint
 
static const fmtflags format_flags = ios_fixed | ios_decimal | ios_showpoint
 

Protected Member Functions

Typeplus_oper (const Type &rhs)
 
Typeminus_oper (const Type &rhs)
 
Typemultiply_oper (const Type &rhs)
 
Typedivide_oper (const Type &rhs)
 
Typeplus_oper (const Value &rhs)
 
Typeminus_oper (const Value &rhs)
 
Typemultiply_oper (const Value &rhs)
 
Typedivide_oper (const Value &rhs)
 
void plus (const base_type &rhs)
 
void minus (const base_type &rhs)
 

Protected Attributes

int64_t laps = 0
 
graph_iterator graph_itr = graph_iterator{ nullptr }
 

Friends

struct node::graph< Tp >
 
struct operation::init_storage< Tp >
 
struct operation::fini_storage< Tp >
 
struct operation::cache< Tp >
 
struct operation::construct< Tp >
 
struct operation::set_prefix< Tp >
 
struct operation::push_node< Tp >
 
struct operation::pop_node< Tp >
 
struct operation::record< Tp >
 
struct operation::reset< Tp >
 
struct operation::measure< Tp >
 
struct operation::start< Tp >
 
struct operation::stop< Tp >
 
struct operation::set_started< Tp >
 
struct operation::set_stopped< Tp >
 
struct operation::minus< Tp >
 
struct operation::plus< Tp >
 
struct operation::multiply< Tp >
 
struct operation::divide< Tp >
 
struct operation::base_printer< Tp >
 
struct operation::print< Tp >
 
struct operation::print_storage< Tp >
 
struct operation::copy< Tp >
 
struct operation::sample< Tp >
 
struct operation::serialization< Tp >
 
struct operation::finalize::get< Tp, true >
 
struct operation::finalize::get< Tp, false >
 
struct operation::finalize::merge< Tp, true >
 
struct operation::finalize::merge< Tp, false >
 
struct operation::finalize::print< Tp, true >
 
struct operation::finalize::print< Tp, false >
 
template<typename Ret , typename Lhs , typename Rhs >
struct operation::compose
 
std::ostream & operator<< (std::ostream &os, const base_type &obj)
 

Detailed Description

template<typename Tp, typename Value>
struct tim::component::base< Tp, Value >

Definition at line 93 of file declaration.hpp.

Member Typedef Documentation

◆ accum_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::accum_type = typename data_type::accum_type

Definition at line 108 of file declaration.hpp.

◆ base_storage_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::base_storage_type = tim::base::storage

Definition at line 115 of file declaration.hpp.

◆ base_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::base_type = base<Tp, Value>

Definition at line 114 of file declaration.hpp.

◆ cache_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::cache_type = typename trait::cache<Tp>::type

Definition at line 111 of file declaration.hpp.

◆ data_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::data_type = base_data_t<Tp, Value>

Definition at line 107 of file declaration.hpp.

◆ dynamic_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::dynamic_type = typename trait::dynamic_base<Tp>::type

Definition at line 110 of file declaration.hpp.

◆ EmptyT

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::EmptyT = std::tuple<>

Definition at line 99 of file declaration.hpp.

◆ fmtflags

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::fmtflags = std::ios_base::fmtflags

Definition at line 120 of file declaration.hpp.

◆ graph_iterator

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::graph_iterator = graph_iterator_t<Tp>

Definition at line 117 of file declaration.hpp.

◆ last_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::last_type = typename data_type::last_type

Definition at line 109 of file declaration.hpp.

◆ state_t

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::state_t = state<this_type>

Definition at line 118 of file declaration.hpp.

◆ statistics_policy

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::statistics_policy = policy::record_statistics<Tp, Value>

Definition at line 119 of file declaration.hpp.

◆ storage_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::storage_type = storage<Tp, Value>

Definition at line 116 of file declaration.hpp.

◆ this_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::this_type = Tp

Definition at line 113 of file declaration.hpp.

◆ Type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::Type = Tp

Definition at line 105 of file declaration.hpp.

◆ value_type

template<typename Tp , typename Value >
using tim::component::base< Tp, Value >::value_type = Value

Definition at line 106 of file declaration.hpp.

◆ vector_t

template<typename Tp , typename Value >
template<typename U >
using tim::component::base< Tp, Value >::vector_t = std::vector<U>

Definition at line 101 of file declaration.hpp.

Constructor & Destructor Documentation

◆ ~base()

template<typename Tp , typename Value >
tim::component::base< Tp, Value >::~base ( )
default

Member Function Documentation

◆ add_sample()

template<typename Tp , typename Value >
template<typename Vp , typename Up = Tp, enable_if_t< trait::sampler< Up >::value, int > = 0>
static void tim::component::base< Tp, Value >::add_sample ( Vp &&  )
static

◆ configure()

template<typename Tp , typename Value >
template<typename... Args>
static void tim::component::base< Tp, Value >::configure ( Args &&  ...)
inlinestatic

Definition at line 166 of file declaration.hpp.

167 {}

◆ description()

template<typename Tp , typename Value >
static std::string tim::component::base< Tp, Value >::description ( )
static

◆ display_unit()

template<typename Tp , typename Value >
template<typename Up = Type, typename UnitT = typename trait::units<Up>::display_type, enable_if_t< std::is_same< UnitT, std::string >::value, int > = 0>
static std::string tim::component::base< Tp, Value >::display_unit ( )
static

◆ divide_oper() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::divide_oper ( const Type rhs)
protected

◆ divide_oper() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::divide_oper ( const Value &  rhs)
protected

◆ get() [1/2]

template<typename Tp , typename Value >
auto tim::component::base< Tp, Value >::get ( ) const
inline

retrieve the current measurement value in the units for the type

Definition at line 186 of file declaration.hpp.

186{ return this->load(); }
decltype(auto) load()

References tim::component::base< Tp, Value >::load().

Referenced by tim::component::user_bundle< Idx, Tag >::get().

◆ get() [2/2]

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::get ( void *&  ptr,
size_t  _typeid_hash 
) const

assign type to a pointer

◆ get_depth_change()

template<typename Tp , typename Value >
bool tim::component::base_state::get_depth_change ( ) const
inline

Definition at line 459 of file data.hpp.

459{ return test<DepthIdx>(); }

◆ get_description()

template<typename Tp , typename Value >
static std::string tim::component::base< Tp, Value >::get_description ( )
static

◆ get_display()

template<typename Tp , typename Value >
auto tim::component::base< Tp, Value >::get_display ( ) const
inline

retrieve the current measurement value in the units for the type in a format that can be piped to the output stream operator ('<<')

Definition at line 190 of file declaration.hpp.

190{ return this->load(); }

References tim::component::base< Tp, Value >::load().

◆ get_display_unit()

template<typename Tp , typename Value >
template<typename Up = Type, typename UnitT = typename trait::units<Up>::display_type, enable_if_t< std::is_same< UnitT, std::string >::value, int > = 0>
static std::string tim::component::base< Tp, Value >::get_display_unit ( )
static

◆ get_format_flags()

◆ get_is_flat()

template<typename Tp , typename Value >
bool tim::component::base_state::get_is_flat ( ) const
inline

Definition at line 458 of file data.hpp.

458{ return test<FlatIdx>(); }

◆ get_is_invalid()

template<typename Tp , typename Value >
bool tim::component::base_state::get_is_invalid ( ) const
inline

Definition at line 460 of file data.hpp.

460{ return test<InvalidIdx>(); }

◆ get_is_on_stack()

template<typename Tp , typename Value >
bool tim::component::base_state::get_is_on_stack ( ) const
inline

Definition at line 456 of file data.hpp.

456{ return test<OnStackIdx>(); }

◆ get_is_running()

template<typename Tp , typename Value >
bool tim::component::base_state::get_is_running ( ) const
inline

Definition at line 455 of file data.hpp.

455{ return test<RunningIdx>(); }

Referenced by tim::component::user_bundle< Idx, Tag >::clear().

◆ get_is_transient()

template<typename Tp , typename Value >
bool tim::component::base_state::get_is_transient ( ) const
inline

Definition at line 457 of file data.hpp.

457{ return test<TransientIdx>(); }

Referenced by tim::component::base< Tp, Value >::load().

◆ get_iterator()

template<typename Tp , typename Value >
auto tim::component::base< Tp, Value >::get_iterator ( ) const
inline

Definition at line 232 of file declaration.hpp.

232{ return graph_itr; }
graph_iterator graph_itr

References tim::component::base< Tp, Value >::graph_itr.

◆ get_label()

template<typename Tp , typename Value >
static std::string tim::component::base< Tp, Value >::get_label ( )
static

◆ get_laps()

template<typename Tp , typename Value >
int64_t tim::component::base< Tp, Value >::get_laps ( ) const
inline

add a sample

get number of measurement

Definition at line 231 of file declaration.hpp.

231{ return laps; }

References tim::component::base< Tp, Value >::laps.

◆ get_opaque() [1/2]

template<typename... Args>
static opaque tim::component::empty_base::get_opaque ( Args &&  ...)
inlinestaticinherited

Definition at line 72 of file declaration.hpp.

73 {
74 return opaque{};
75 }

◆ get_opaque() [2/2]

template<typename Tp , typename Value >
static opaque tim::component::base< Tp, Value >::get_opaque ( scope::config  )
static

get the opaque binding for user-bundle

◆ get_precision()

◆ get_storage()

template<typename Tp , typename Value >
static base_storage_type * tim::component::base< Tp, Value >::get_storage ( )
static

◆ get_unit()

◆ get_width()

◆ label()

template<typename Tp , typename Value >
static std::string tim::component::base< Tp, Value >::label ( )
static

◆ load() [1/3]

◆ load() [2/3]

template<typename Tp , typename Value >
decltype(auto) tim::component::base< Tp, Value >::load ( ) const
inline

◆ load() [3/3]

template<typename Tp , typename Value >
template<typename Archive , typename Up = Type, enable_if_t<!trait::custom_serialization< Up >::value, int > = 0>
void tim::component::base< Tp, Value >::load ( Archive &  ar,
unsigned int   
)

serialization load (input)

◆ minus() [1/2]

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::minus ( const base_type rhs)
inlineprotected

Definition at line 279 of file declaration.hpp.

280 {
281 laps -= rhs.laps;
282 if(rhs.get_is_transient())
283 set_is_transient(rhs.get_is_transient());
284 }
void set_is_transient(bool v)
Definition: data.hpp:464

References tim::component::base< Tp, Value >::laps, and tim::component::base< Tp, Value >::set_is_transient().

◆ minus() [2/2]

template<typename Tp , typename Value >
auto tim::component::base< Tp, Value >::minus ( crtp::base< Tp, Value >  ,
const base_type rhs 
)
inline

Definition at line 288 of file declaration.hpp.

288{ this->minus(rhs); }
void minus(const base_type &rhs)

References tim::component::base< Tp, Value >::minus().

Referenced by tim::component::base< Tp, Value >::minus().

◆ minus_oper() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::minus_oper ( const Type rhs)
protected

◆ minus_oper() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::minus_oper ( const Value &  rhs)
protected

◆ multiply_oper() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::multiply_oper ( const Type rhs)
protected

◆ multiply_oper() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::multiply_oper ( const Value &  rhs)
protected

◆ operator*=() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator*= ( const Type rhs)
inline

Definition at line 194 of file declaration.hpp.

194{ return multiply_oper(rhs); }
Type & multiply_oper(const Type &rhs)

References tim::component::base< Tp, Value >::multiply_oper().

◆ operator*=() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator*= ( const Value &  rhs)
inline

Definition at line 199 of file declaration.hpp.

199{ return multiply_oper(rhs); }

References tim::component::base< Tp, Value >::multiply_oper().

◆ operator+=() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator+= ( const Type rhs)
inline

Definition at line 192 of file declaration.hpp.

192{ return plus_oper(rhs); }
Type & plus_oper(const Type &rhs)

References tim::component::base< Tp, Value >::plus_oper().

◆ operator+=() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator+= ( const Value &  rhs)
inline

Definition at line 197 of file declaration.hpp.

197{ return plus_oper(rhs); }

References tim::component::base< Tp, Value >::plus_oper().

◆ operator-=() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator-= ( const Type rhs)
inline

Definition at line 193 of file declaration.hpp.

193{ return minus_oper(rhs); }
Type & minus_oper(const Type &rhs)

References tim::component::base< Tp, Value >::minus_oper().

◆ operator-=() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator-= ( const Value &  rhs)
inline

Definition at line 198 of file declaration.hpp.

198{ return minus_oper(rhs); }

References tim::component::base< Tp, Value >::minus_oper().

◆ operator/=() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator/= ( const Type rhs)
inline

Definition at line 195 of file declaration.hpp.

195{ return divide_oper(rhs); }
Type & divide_oper(const Type &rhs)

References tim::component::base< Tp, Value >::divide_oper().

◆ operator/=() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::operator/= ( const Value &  rhs)
inline

Definition at line 200 of file declaration.hpp.

200{ return divide_oper(rhs); }

References tim::component::base< Tp, Value >::divide_oper().

◆ plus() [1/2]

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::plus ( const base_type rhs)
inlineprotected

Definition at line 272 of file declaration.hpp.

273 {
274 laps += rhs.laps;
275 if(rhs.get_is_transient())
276 set_is_transient(rhs.get_is_transient());
277 }

References tim::component::base< Tp, Value >::laps, and tim::component::base< Tp, Value >::set_is_transient().

◆ plus() [2/2]

template<typename Tp , typename Value >
auto tim::component::base< Tp, Value >::plus ( crtp::base< Tp, Value >  ,
const base_type rhs 
)
inline

Definition at line 287 of file declaration.hpp.

287{ this->plus(rhs); }
void plus(const base_type &rhs)

References tim::component::base< Tp, Value >::plus().

Referenced by tim::component::base< Tp, Value >::plus().

◆ plus_oper() [1/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::plus_oper ( const Type rhs)
protected

◆ plus_oper() [2/2]

template<typename Tp , typename Value >
Type & tim::component::base< Tp, Value >::plus_oper ( const Value &  rhs)
protected

◆ print() [1/2]

template<typename Tp , typename Value >
template<typename Up = Tp>
void tim::component::base< Tp, Value >::print ( std::ostream &  ,
enable_if_t< trait::uses_value_storage< Up, Value >::value, int >  = 0 
) const

◆ print() [2/2]

template<typename Tp , typename Value >
template<typename Up = Tp>
void tim::component::base< Tp, Value >::print ( std::ostream &  ,
enable_if_t<!trait::uses_value_storage< Up, Value >::value, long >  = 0 
) const

◆ reset()

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::reset ( )

reset the values

◆ save()

template<typename Tp , typename Value >
template<typename Archive , typename Up = Type, enable_if_t<!trait::custom_serialization< Up >::value, int > = 0>
void tim::component::base< Tp, Value >::save ( Archive &  ar,
unsigned int  version 
) const

serialization store (output)

◆ set_depth_change()

template<typename Tp , typename Value >
void tim::component::base_state::set_depth_change ( bool  v)
inline

Definition at line 466 of file data.hpp.

466{ set<DepthIdx>(v); }

◆ set_is_flat()

template<typename Tp , typename Value >
void tim::component::base_state::set_is_flat ( bool  v)
inline

Definition at line 465 of file data.hpp.

465{ set<FlatIdx>(v); }

◆ set_is_invalid()

template<typename Tp , typename Value >
void tim::component::base_state::set_is_invalid ( bool  v)
inline

Definition at line 467 of file data.hpp.

467{ set<InvalidIdx>(v); }

◆ set_is_on_stack()

template<typename Tp , typename Value >
void tim::component::base_state::set_is_on_stack ( bool  v)
inline

Definition at line 463 of file data.hpp.

463{ set<OnStackIdx>(v); }

◆ set_is_running()

template<typename Tp , typename Value >
void tim::component::base_state::set_is_running ( bool  v)
inline

Definition at line 462 of file data.hpp.

462{ set<RunningIdx>(v); }

◆ set_is_transient()

template<typename Tp , typename Value >
void tim::component::base_state::set_is_transient ( bool  v)
inline

Definition at line 464 of file data.hpp.

464{ set<TransientIdx>(v); }

Referenced by tim::component::base< Tp, Value >::minus(), and tim::component::base< Tp, Value >::plus().

◆ set_iterator()

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::set_iterator ( graph_iterator  itr)
inline

Definition at line 234 of file declaration.hpp.

234{ graph_itr = itr; }

References tim::component::base< Tp, Value >::graph_itr.

◆ set_laps()

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::set_laps ( int64_t  v)
inline

Definition at line 233 of file declaration.hpp.

233{ laps = v; }

References tim::component::base< Tp, Value >::laps.

◆ set_started()

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::set_started ( )

store that start has been called

◆ set_stopped()

template<typename Tp , typename Value >
void tim::component::base< Tp, Value >::set_stopped ( )

store that stop has been called

◆ unit()

template<typename Tp , typename Value >
template<typename Up = Type, typename UnitT = typename trait::units<Up>::type, enable_if_t< std::is_same< UnitT, int64_t >::value, int > = 0>
static int64_t tim::component::base< Tp, Value >::unit ( )
static

Friends And Related Function Documentation

◆ node::graph< Tp >

template<typename Tp , typename Value >
friend struct node::graph< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::base_printer< Tp >

template<typename Tp , typename Value >
friend struct operation::base_printer< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::cache< Tp >

template<typename Tp , typename Value >
friend struct operation::cache< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::compose

template<typename Tp , typename Value >
template<typename Ret , typename Lhs , typename Rhs >
friend struct operation::compose
friend

Definition at line 156 of file declaration.hpp.

◆ operation::construct< Tp >

template<typename Tp , typename Value >
friend struct operation::construct< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::copy< Tp >

template<typename Tp , typename Value >
friend struct operation::copy< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::divide< Tp >

template<typename Tp , typename Value >
friend struct operation::divide< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::finalize::get< Tp, false >

template<typename Tp , typename Value >
friend struct operation::finalize::get< Tp, false >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::finalize::get< Tp, true >

template<typename Tp , typename Value >
friend struct operation::finalize::get< Tp, true >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::finalize::merge< Tp, false >

template<typename Tp , typename Value >
friend struct operation::finalize::merge< Tp, false >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::finalize::merge< Tp, true >

template<typename Tp , typename Value >
friend struct operation::finalize::merge< Tp, true >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::finalize::print< Tp, false >

template<typename Tp , typename Value >
friend struct operation::finalize::print< Tp, false >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::finalize::print< Tp, true >

template<typename Tp , typename Value >
friend struct operation::finalize::print< Tp, true >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::fini_storage< Tp >

template<typename Tp , typename Value >
friend struct operation::fini_storage< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::init_storage< Tp >

template<typename Tp , typename Value >
friend struct operation::init_storage< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::measure< Tp >

template<typename Tp , typename Value >
friend struct operation::measure< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::minus< Tp >

template<typename Tp , typename Value >
friend struct operation::minus< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::multiply< Tp >

template<typename Tp , typename Value >
friend struct operation::multiply< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::plus< Tp >

template<typename Tp , typename Value >
friend struct operation::plus< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::pop_node< Tp >

template<typename Tp , typename Value >
friend struct operation::pop_node< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::print< Tp >

template<typename Tp , typename Value >
friend struct operation::print< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::print_storage< Tp >

template<typename Tp , typename Value >
friend struct operation::print_storage< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::push_node< Tp >

template<typename Tp , typename Value >
friend struct operation::push_node< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::record< Tp >

template<typename Tp , typename Value >
friend struct operation::record< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::reset< Tp >

template<typename Tp , typename Value >
friend struct operation::reset< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::sample< Tp >

template<typename Tp , typename Value >
friend struct operation::sample< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::serialization< Tp >

template<typename Tp , typename Value >
friend struct operation::serialization< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::set_prefix< Tp >

template<typename Tp , typename Value >
friend struct operation::set_prefix< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::set_started< Tp >

template<typename Tp , typename Value >
friend struct operation::set_started< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::set_stopped< Tp >

template<typename Tp , typename Value >
friend struct operation::set_stopped< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::start< Tp >

template<typename Tp , typename Value >
friend struct operation::start< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operation::stop< Tp >

template<typename Tp , typename Value >
friend struct operation::stop< Tp >
friend

Definition at line 104 of file declaration.hpp.

◆ operator<<

template<typename Tp , typename Value >
std::ostream & operator<< ( std::ostream &  os,
const base_type obj 
)
friend

Definition at line 210 of file declaration.hpp.

211 {
212 obj.print(os);
213 return os;
214 }
const std::string std::ostream * os

Member Data Documentation

◆ format_flags

template<typename Tp , typename Value >
const fmtflags tim::component::base< Tp, Value >::format_flags = ios_fixed | ios_decimal | ios_showpoint
static

Definition at line 307 of file declaration.hpp.

◆ graph_itr

template<typename Tp , typename Value >
graph_iterator tim::component::base< Tp, Value >::graph_itr = graph_iterator{ nullptr }
protected

◆ ios_decimal

template<typename Tp , typename Value >
constexpr auto tim::component::base< Tp, Value >::ios_decimal = std::ios_base::dec
staticconstexpr

Definition at line 305 of file declaration.hpp.

◆ ios_fixed

template<typename Tp , typename Value >
constexpr auto tim::component::base< Tp, Value >::ios_fixed = std::ios_base::fixed
staticconstexpr

Definition at line 304 of file declaration.hpp.

◆ ios_showpoint

template<typename Tp , typename Value >
constexpr auto tim::component::base< Tp, Value >::ios_showpoint = std::ios_base::showpoint
staticconstexpr

Definition at line 306 of file declaration.hpp.

◆ is_component

template<typename Tp , typename Value >
constexpr bool tim::component::base< Tp, Value >::is_component = true
staticconstexpr

Definition at line 104 of file declaration.hpp.

◆ laps

◆ memory_category_v

template<typename Tp , typename Value >
constexpr bool tim::component::base< Tp, Value >::memory_category_v = trait::is_memory_category<Type>::value
staticconstexpr

Definition at line 300 of file declaration.hpp.

◆ memory_units_v

template<typename Tp , typename Value >
constexpr bool tim::component::base< Tp, Value >::memory_units_v = trait::uses_memory_units<Type>::value
staticconstexpr

Definition at line 302 of file declaration.hpp.

◆ percent_units_v

template<typename Tp , typename Value >
constexpr bool tim::component::base< Tp, Value >::percent_units_v = trait::uses_percent_units<Type>::value
staticconstexpr

Definition at line 303 of file declaration.hpp.

◆ timing_category_v

template<typename Tp , typename Value >
constexpr bool tim::component::base< Tp, Value >::timing_category_v = trait::is_timing_category<Type>::value
staticconstexpr

Definition at line 299 of file declaration.hpp.

◆ timing_units_v

template<typename Tp , typename Value >
constexpr bool tim::component::base< Tp, Value >::timing_units_v = trait::uses_timing_units<Type>::value
staticconstexpr

Definition at line 301 of file declaration.hpp.


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