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.
|
Base class for iterators, only pointers stored, no traversal logic. More...
#include "timemory/storage/graph.hpp"
Public Types | |
typedef T | value_type |
typedef T * | pointer |
typedef T & | reference |
typedef size_t | size_type |
typedef ptrdiff_t | difference_type |
typedef std::bidirectional_iterator_tag | iterator_category |
Public Member Functions | |
iterator_base () | |
iterator_base (graph_node *) | |
iterator_base (const iterator_base &)=default | |
iterator_base (iterator_base &&) noexcept=default | |
iterator_base & | operator= (const iterator_base &)=default |
iterator_base & | operator= (iterator_base &&) noexcept=default |
operator bool () const | |
T & | operator* () const |
T * | operator-> () const |
void | skip_children () |
When called, the next increment/decrement skips children of this node. More... | |
void | skip_children (bool skip) |
unsigned int | number_of_children () const |
Number of children of the node pointed to by the iterator. More... | |
sibling_iterator | begin () const |
sibling_iterator | end () const |
Public Attributes | |
graph_node * | node = nullptr |
Protected Attributes | |
bool | m_skip_current_children = false |
Base class for iterators, only pointers stored, no traversal logic.
typedef ptrdiff_t tim::graph< T, AllocatorT >::iterator_base::difference_type |
typedef std::bidirectional_iterator_tag tim::graph< T, AllocatorT >::iterator_base::iterator_category |
typedef T* tim::graph< T, AllocatorT >::iterator_base::pointer |
typedef T& tim::graph< T, AllocatorT >::iterator_base::reference |
typedef size_t tim::graph< T, AllocatorT >::iterator_base::size_type |
typedef T tim::graph< T, AllocatorT >::iterator_base::value_type |
tim::graph< T, AllocatorT >::iterator_base::iterator_base |
tim::graph< T, AllocatorT >::iterator_base::iterator_base | ( | graph_node * | tn | ) |
|
default |
|
defaultnoexcept |
graph< T, AllocatorT >::sibling_iterator tim::graph< T, AllocatorT >::iterator_base::begin |
Definition at line 2507 of file graph.hpp.
References tim::graph< T, AllocatorT >::end(), and tim::graph< T, AllocatorT >::sibling_iterator::m_parent.
Referenced by tim::graph< T, AllocatorT >::graph(), tim::graph< T, AllocatorT >::empty(), tim::graph< T, AllocatorT >::equal_subgraph(), tim::graph< T, AllocatorT >::merge(), and tim::graph< T, AllocatorT >::serialize().
graph< T, AllocatorT >::sibling_iterator tim::graph< T, AllocatorT >::iterator_base::end |
Definition at line 2521 of file graph.hpp.
References tim::graph< T, AllocatorT >::sibling_iterator::m_parent.
Referenced by tim::graph< T, AllocatorT >::begin(), tim::graph< T, AllocatorT >::empty(), tim::graph< T, AllocatorT >::equal_subgraph(), tim::graph< T, AllocatorT >::merge(), tim::graph< T, AllocatorT >::reparent(), and tim::graph< T, AllocatorT >::serialize().
unsigned int tim::graph< T, AllocatorT >::iterator_base::number_of_children |
Number of children of the node pointed to by the iterator.
Definition at line 2550 of file graph.hpp.
References tim::pos.
Referenced by tim::graph< T, AllocatorT >::equal(), and tim::graph< T, AllocatorT >::equal_subgraph().
|
inline |
T & tim::graph< T, AllocatorT >::iterator_base::operator* |
T * tim::graph< T, AllocatorT >::iterator_base::operator-> |
|
default |
|
defaultnoexcept |
void tim::graph< T, AllocatorT >::iterator_base::skip_children |
When called, the next increment/decrement skips children of this node.
Definition at line 2532 of file graph.hpp.
Referenced by tim::graph< T, AllocatorT >::pre_order_iterator::pre_order_iterator().
void tim::graph< T, AllocatorT >::iterator_base::skip_children | ( | bool | skip | ) |
|
protected |
graph_node* tim::graph< T, AllocatorT >::iterator_base::node = nullptr |
Definition at line 178 of file graph.hpp.
Referenced by tim::graph< T, AllocatorT >::pre_order_iterator::pre_order_iterator(), tim::graph< T, AllocatorT >::child(), tim::graph< T, AllocatorT >::depth(), tim::graph< T, AllocatorT >::erase_children(), tim::graph< T, AllocatorT >::index(), tim::graph< T, AllocatorT >::is_head(), tim::graph< T, AllocatorT >::is_valid(), tim::graph< T, AllocatorT >::move_in(), tim::graph< T, AllocatorT >::move_out(), tim::graph< T, AllocatorT >::number_of_children(), tim::graph< T, AllocatorT >::number_of_siblings(), tim::graph< T, AllocatorT >::pre_order_iterator::operator!=(), tim::graph< T, AllocatorT >::sibling_iterator::operator!=(), tim::graph< T, AllocatorT >::pre_order_iterator::operator==(), tim::graph< T, AllocatorT >::sibling_iterator::operator==(), tim::graph< T, AllocatorT >::reduce(), tim::graph< T, AllocatorT >::reparent(), tim::graph< T, AllocatorT >::replace(), tim::graph< T, AllocatorT >::sibling(), and tim::graph< T, AllocatorT >::swap().