Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Vector that grows without reallocations, and stores items in the reverse order. More...
#include <scheduler_utility.h>
Public Member Functions | |
fast_reverse_vector (T *initial_segment, size_t segment_size) | |
~fast_reverse_vector () | |
size_t | size () const |
void | push_back (const T &val) |
void | copy_memory (T *dst) const |
Copies the contents of the vector into the dst array. More... | |
Protected Attributes | |
T * | m_cur_segment |
The current (not completely filled) segment. More... | |
size_t | m_cur_segment_size |
Capacity of m_cur_segment. More... | |
size_t | m_pos |
Insertion position in m_cur_segment. More... | |
T * | m_segments [max_segments] |
Array of segments (has fixed size specified by the second template parameter) More... | |
size_t | m_num_segments |
Number of segments (the size of m_segments) More... | |
size_t | m_size |
Number of items in the segments in m_segments. More... | |
Vector that grows without reallocations, and stores items in the reverse order.
Requires to initialize its first segment with a preallocated memory chunk (usually it is static array or an array allocated on the stack). The second template parameter specifies maximal number of segments. Each next segment is twice as large as the previous one.
Definition at line 56 of file scheduler_utility.h.
|
inline |
Definition at line 59 of file scheduler_utility.h.
References __TBB_ASSERT.
|
inline |
Definition at line 69 of file scheduler_utility.h.
References tbb::internal::fast_reverse_vector< T, max_segments >::m_num_segments, tbb::internal::fast_reverse_vector< T, max_segments >::m_segments, and tbb::internal::NFS_Free().
|
inline |
Copies the contents of the vector into the dst array.
Can only be used when T is a POD type, as copying does not invoke copy constructors.
Definition at line 92 of file scheduler_utility.h.
References tbb::internal::fast_reverse_vector< T, max_segments >::m_cur_segment, tbb::internal::fast_reverse_vector< T, max_segments >::m_cur_segment_size, tbb::internal::fast_reverse_vector< T, max_segments >::m_num_segments, tbb::internal::fast_reverse_vector< T, max_segments >::m_pos, and tbb::internal::fast_reverse_vector< T, max_segments >::m_segments.
Referenced by tbb::internal::generic_scheduler::local_spawn().
|
inline |
Definition at line 77 of file scheduler_utility.h.
References __TBB_ASSERT, tbb::internal::fast_reverse_vector< T, max_segments >::m_cur_segment, tbb::internal::fast_reverse_vector< T, max_segments >::m_cur_segment_size, tbb::internal::fast_reverse_vector< T, max_segments >::m_num_segments, tbb::internal::fast_reverse_vector< T, max_segments >::m_pos, tbb::internal::fast_reverse_vector< T, max_segments >::m_segments, tbb::internal::fast_reverse_vector< T, max_segments >::m_size, and tbb::internal::NFS_Allocate().
Referenced by tbb::internal::generic_scheduler::local_spawn().
|
inline |
Definition at line 75 of file scheduler_utility.h.
References tbb::internal::fast_reverse_vector< T, max_segments >::m_cur_segment_size, tbb::internal::fast_reverse_vector< T, max_segments >::m_pos, and tbb::internal::fast_reverse_vector< T, max_segments >::m_size.
Referenced by tbb::internal::generic_scheduler::local_spawn().
|
protected |
The current (not completely filled) segment.
Definition at line 107 of file scheduler_utility.h.
Referenced by tbb::internal::fast_reverse_vector< T, max_segments >::copy_memory(), and tbb::internal::fast_reverse_vector< T, max_segments >::push_back().
|
protected |
Capacity of m_cur_segment.
Definition at line 110 of file scheduler_utility.h.
Referenced by tbb::internal::fast_reverse_vector< T, max_segments >::copy_memory(), tbb::internal::fast_reverse_vector< T, max_segments >::push_back(), and tbb::internal::fast_reverse_vector< T, max_segments >::size().
|
protected |
Number of segments (the size of m_segments)
Definition at line 119 of file scheduler_utility.h.
Referenced by tbb::internal::fast_reverse_vector< T, max_segments >::copy_memory(), tbb::internal::fast_reverse_vector< T, max_segments >::push_back(), and tbb::internal::fast_reverse_vector< T, max_segments >::~fast_reverse_vector().
|
protected |
Insertion position in m_cur_segment.
Definition at line 113 of file scheduler_utility.h.
Referenced by tbb::internal::fast_reverse_vector< T, max_segments >::copy_memory(), tbb::internal::fast_reverse_vector< T, max_segments >::push_back(), and tbb::internal::fast_reverse_vector< T, max_segments >::size().
|
protected |
Array of segments (has fixed size specified by the second template parameter)
Definition at line 116 of file scheduler_utility.h.
Referenced by tbb::internal::fast_reverse_vector< T, max_segments >::copy_memory(), tbb::internal::fast_reverse_vector< T, max_segments >::push_back(), and tbb::internal::fast_reverse_vector< T, max_segments >::~fast_reverse_vector().
|
protected |
Number of items in the segments in m_segments.
Definition at line 122 of file scheduler_utility.h.
Referenced by tbb::internal::fast_reverse_vector< T, max_segments >::push_back(), and tbb::internal::fast_reverse_vector< T, max_segments >::size().