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::policy::instance_tracker< Tp, false > Struct Template Reference

#include "timemory/mpl/policy.hpp"

+ Collaboration diagram for tim::policy::instance_tracker< Tp, false >:

Public Types

using type = Tp
 
using int_type = int64_t
 

Public Member Functions

 instance_tracker ()=default
 
 ~instance_tracker ()=default
 
 instance_tracker (const instance_tracker &)=default
 
 instance_tracker (instance_tracker &&) noexcept=default
 
instance_trackeroperator= (const instance_tracker &)=default
 
instance_trackeroperator= (instance_tracker &&) noexcept=default
 

Static Public Member Functions

static int_type get_started_count ()
 

Static Public Attributes

static constexpr bool thread_support = false
 

Protected Member Functions

auto start ()
 
auto stop ()
 
auto get_global_count ()
 
auto global_tracker_start ()
 
auto global_tracker_stop ()
 

Static Protected Member Functions

static std::atomic< int_type > & get_started ()
 

Protected Attributes

int_type m_tot = get_started_count()
 

Detailed Description

template<typename Tp>
struct tim::policy::instance_tracker< Tp, false >

Definition at line 380 of file policy.hpp.

Member Typedef Documentation

◆ int_type

template<typename Tp >
using tim::policy::instance_tracker< Tp, false >::int_type = int64_t

Definition at line 384 of file policy.hpp.

◆ type

template<typename Tp >
using tim::policy::instance_tracker< Tp, false >::type = Tp

Definition at line 383 of file policy.hpp.

Constructor & Destructor Documentation

◆ instance_tracker() [1/3]

template<typename Tp >
tim::policy::instance_tracker< Tp, false >::instance_tracker ( )
default

◆ ~instance_tracker()

template<typename Tp >
tim::policy::instance_tracker< Tp, false >::~instance_tracker ( )
default

◆ instance_tracker() [2/3]

template<typename Tp >
tim::policy::instance_tracker< Tp, false >::instance_tracker ( const instance_tracker< Tp, false > &  )
default

◆ instance_tracker() [3/3]

template<typename Tp >
tim::policy::instance_tracker< Tp, false >::instance_tracker ( instance_tracker< Tp, false > &&  )
defaultnoexcept

Member Function Documentation

◆ get_global_count()

template<typename Tp >
auto tim::policy::instance_tracker< Tp, false >::get_global_count ( )
inlineprotected

Definition at line 424 of file policy.hpp.

◆ get_started()

template<typename Tp >
static std::atomic< int_type > & tim::policy::instance_tracker< Tp, false >::get_started ( )
inlinestaticprotected

Definition at line 402 of file policy.hpp.

403 {
404 static std::atomic<int_type> _instance(0);
405 return _instance;
406 }

◆ get_started_count()

template<typename Tp >
static int_type tim::policy::instance_tracker< Tp, false >::get_started_count ( )
inlinestatic

Definition at line 397 of file policy.hpp.

397{ return get_started().load(); }
static std::atomic< int_type > & get_started()
Definition: policy.hpp:402

◆ global_tracker_start()

template<typename Tp >
auto tim::policy::instance_tracker< Tp, false >::global_tracker_start ( )
inlineprotected

Definition at line 425 of file policy.hpp.

References tim::invoke::start().

◆ global_tracker_stop()

template<typename Tp >
auto tim::policy::instance_tracker< Tp, false >::global_tracker_stop ( )
inlineprotected

Definition at line 426 of file policy.hpp.

References tim::invoke::stop().

◆ operator=() [1/2]

template<typename Tp >
instance_tracker & tim::policy::instance_tracker< Tp, false >::operator= ( const instance_tracker< Tp, false > &  )
default

◆ operator=() [2/2]

template<typename Tp >
instance_tracker & tim::policy::instance_tracker< Tp, false >::operator= ( instance_tracker< Tp, false > &&  )
defaultnoexcept

◆ start()

template<typename Tp >
auto tim::policy::instance_tracker< Tp, false >::start ( )
inlineprotected

Definition at line 410 of file policy.hpp.

411 {
412 m_tot = get_started()++;
413 return m_tot;
414 }

◆ stop()

template<typename Tp >
auto tim::policy::instance_tracker< Tp, false >::stop ( )
inlineprotected

Definition at line 418 of file policy.hpp.

419 {
420 m_tot = --get_started();
421 return m_tot;
422 }

Member Data Documentation

◆ m_tot

template<typename Tp >
int_type tim::policy::instance_tracker< Tp, false >::m_tot = get_started_count()
protected

Definition at line 429 of file policy.hpp.

◆ thread_support

template<typename Tp >
constexpr bool tim::policy::instance_tracker< Tp, false >::thread_support = false
staticconstexpr

Definition at line 385 of file policy.hpp.


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