Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
The enumerable_thread_specific container. More...
#include <enumerable_thread_specific.h>
Classes | |
class | generic_range_type |
A generic range, used to create range objects from the iterators. More... | |
Public Types | |
typedef Allocator | allocator_type |
Basic types. More... | |
typedef T | value_type |
typedef T & | reference |
typedef const T & | const_reference |
typedef T * | pointer |
typedef const T * | const_pointer |
typedef internal_collection_type::size_type | size_type |
typedef internal_collection_type::difference_type | difference_type |
typedef internal::enumerable_thread_specific_iterator< internal_collection_type, value_type > | iterator |
typedef internal::enumerable_thread_specific_iterator< internal_collection_type, const value_type > | const_iterator |
typedef generic_range_type< iterator > | range_type |
typedef generic_range_type< const_iterator > | const_range_type |
Public Member Functions | |
enumerable_thread_specific () | |
Default constructor. Each local instance of T is default constructed. More... | |
template<typename Finit , typename = typename internal::enable_if<internal::is_callable_no_args<typename internal::strip<Finit>::type>::value>::type> | |
enumerable_thread_specific (Finit finit) | |
Constructor with initializer functor. Each local instance of T is constructed by T(finit()). More... | |
enumerable_thread_specific (const T &exemplar) | |
Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar. More... | |
enumerable_thread_specific (T &&exemplar) | |
template<typename P1 , typename... P, typename = typename internal::enable_if<!internal::is_callable_no_args<typename internal::strip<P1>::type>::value && !internal::is_compatible_ets<T, typename internal::strip<P1>::type>::value && !internal::is_same_type<T, typename internal::strip<P1>::type>::value >::type> | |
enumerable_thread_specific (P1 &&arg1, P &&... args) | |
Variadic constructor with initializer arguments. Each local instance of T is constructed by T(args...) More... | |
~enumerable_thread_specific () | |
Destructor. More... | |
reference | local () |
returns reference to local, discarding exists More... | |
reference | local (bool &exists) |
Returns reference to calling thread's local copy, creating one if necessary. More... | |
size_type | size () const |
Get the number of local copies. More... | |
bool | empty () const |
true if there have been no local copies created More... | |
iterator | begin () |
begin iterator More... | |
iterator | end () |
end iterator More... | |
const_iterator | begin () const |
begin const iterator More... | |
const_iterator | end () const |
end const iterator More... | |
range_type | range (size_t grainsize=1) |
Get range for parallel algorithms. More... | |
const_range_type | range (size_t grainsize=1) const |
Get const range for parallel algorithms. More... | |
void | clear () |
Destroys local copies. More... | |
enumerable_thread_specific (const enumerable_thread_specific &other) | |
template<typename Alloc , ets_key_usage_type Cachetype> | |
enumerable_thread_specific (const enumerable_thread_specific< T, Alloc, Cachetype > &other) | |
enumerable_thread_specific (enumerable_thread_specific &&other) | |
template<typename Alloc , ets_key_usage_type Cachetype> | |
enumerable_thread_specific (enumerable_thread_specific< T, Alloc, Cachetype > &&other) | |
enumerable_thread_specific & | operator= (const enumerable_thread_specific &other) |
template<typename Alloc , ets_key_usage_type Cachetype> | |
enumerable_thread_specific & | operator= (const enumerable_thread_specific< T, Alloc, Cachetype > &other) |
enumerable_thread_specific & | operator= (enumerable_thread_specific &&other) |
template<typename Alloc , ets_key_usage_type Cachetype> | |
enumerable_thread_specific & | operator= (enumerable_thread_specific< T, Alloc, Cachetype > &&other) |
template<typename combine_func_t > | |
T | combine (combine_func_t f_combine) |
template<typename combine_func_t > | |
void | combine_each (combine_func_t f_combine) |
Private Types | |
typedef internal::padded< internal::ets_element< T > > | padded_element |
typedef Allocator::template rebind< padded_element >::other | padded_allocator_type |
typedef tbb::concurrent_vector< padded_element, padded_allocator_type > | internal_collection_type |
typedef Allocator::template rebind< uintptr_t >::other | array_allocator_type |
Private Member Functions | |
void * | create_local () __TBB_override |
void * | create_array (size_t _size) __TBB_override |
void | free_array (void *_ptr, size_t _size) __TBB_override |
template<typename A2 , ets_key_usage_type C2> | |
void | internal_copy (const enumerable_thread_specific< T, A2, C2 > &other) |
void | internal_swap (enumerable_thread_specific &other) |
template<typename A2 , ets_key_usage_type C2> | |
void | internal_move (enumerable_thread_specific< T, A2, C2 > &&other) |
Static Private Member Functions | |
static void * | create_local_by_copy (internal::ets_base< ets_no_key > &base, void *p) |
static void * | create_local_by_move (internal::ets_base< ets_no_key > &base, void *p) |
Private Attributes | |
internal::callback_base< T > * | my_construct_callback |
internal_collection_type | my_locals |
Friends | |
template<typename U , typename A , ets_key_usage_type C> | |
class | enumerable_thread_specific |
The enumerable_thread_specific container.
enumerable_thread_specific has the following properties:
Definition at line 54 of file enumerable_thread_specific.h.
typedef Allocator tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::allocator_type |
Basic types.
Definition at line 834 of file enumerable_thread_specific.h.
|
private |
Definition at line 818 of file enumerable_thread_specific.h.
typedef internal::enumerable_thread_specific_iterator< internal_collection_type, const value_type > tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::const_iterator |
Definition at line 845 of file enumerable_thread_specific.h.
typedef const T* tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::const_pointer |
Definition at line 839 of file enumerable_thread_specific.h.
typedef generic_range_type< const_iterator > tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::const_range_type |
Definition at line 849 of file enumerable_thread_specific.h.
typedef const T& tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::const_reference |
Definition at line 837 of file enumerable_thread_specific.h.
typedef internal_collection_type::difference_type tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::difference_type |
Definition at line 841 of file enumerable_thread_specific.h.
|
private |
Definition at line 788 of file enumerable_thread_specific.h.
typedef internal::enumerable_thread_specific_iterator< internal_collection_type, value_type > tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::iterator |
Definition at line 844 of file enumerable_thread_specific.h.
|
private |
Definition at line 787 of file enumerable_thread_specific.h.
|
private |
Definition at line 770 of file enumerable_thread_specific.h.
typedef T* tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::pointer |
Definition at line 838 of file enumerable_thread_specific.h.
typedef generic_range_type< iterator > tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::range_type |
Definition at line 848 of file enumerable_thread_specific.h.
typedef T& tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::reference |
Definition at line 836 of file enumerable_thread_specific.h.
typedef internal_collection_type::size_type tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::size_type |
Definition at line 840 of file enumerable_thread_specific.h.
typedef T tbb::interface6::enumerable_thread_specific< T, Allocator, ETS_key_type >::value_type |
Definition at line 835 of file enumerable_thread_specific.h.
|
inline |
Default constructor. Each local instance of T is default constructed.
Definition at line 852 of file enumerable_thread_specific.h.
|
inlineexplicit |
Constructor with initializer functor. Each local instance of T is constructed by T(finit()).
Definition at line 862 of file enumerable_thread_specific.h.
|
inlineexplicit |
Constructor with exemplar. Each local instance of T is copy-constructed from the exemplar.
Definition at line 867 of file enumerable_thread_specific.h.
|
inlineexplicit |
Definition at line 872 of file enumerable_thread_specific.h.
|
inline |
Variadic constructor with initializer arguments. Each local instance of T is constructed by T(args...)
Definition at line 882 of file enumerable_thread_specific.h.
|
inline |
Destructor.
Definition at line 888 of file enumerable_thread_specific.h.
|
inline |
Definition at line 978 of file enumerable_thread_specific.h.
|
inline |
Definition at line 985 of file enumerable_thread_specific.h.
|
inline |
Definition at line 991 of file enumerable_thread_specific.h.
|
inline |
Definition at line 997 of file enumerable_thread_specific.h.
|
inline |
begin iterator
Definition at line 913 of file enumerable_thread_specific.h.
|
inline |
begin const iterator
Definition at line 918 of file enumerable_thread_specific.h.
|
inline |
Destroys local copies.
Definition at line 930 of file enumerable_thread_specific.h.
Referenced by tbb::combinable< T >::clear().
|
inline |
Definition at line 1044 of file enumerable_thread_specific.h.
Referenced by tbb::combinable< T >::combine().
|
inline |
Definition at line 1059 of file enumerable_thread_specific.h.
Referenced by tbb::combinable< T >::combine_each().
|
inlineprivate |
Definition at line 821 of file enumerable_thread_specific.h.
|
inlineprivate |
Definition at line 796 of file enumerable_thread_specific.h.
|
inlinestaticprivate |
Definition at line 802 of file enumerable_thread_specific.h.
|
inlinestaticprivate |
Definition at line 810 of file enumerable_thread_specific.h.
|
inline |
true if there have been no local copies created
Definition at line 910 of file enumerable_thread_specific.h.
|
inline |
end iterator
Definition at line 915 of file enumerable_thread_specific.h.
|
inline |
end const iterator
Definition at line 921 of file enumerable_thread_specific.h.
|
inlineprivate |
Definition at line 826 of file enumerable_thread_specific.h.
|
inlineprivate |
Definition at line 939 of file enumerable_thread_specific.h.
|
inlineprivate |
Definition at line 963 of file enumerable_thread_specific.h.
|
inlineprivate |
Definition at line 951 of file enumerable_thread_specific.h.
|
inline |
returns reference to local, discarding exists
Definition at line 895 of file enumerable_thread_specific.h.
Referenced by tbb::combinable< T >::local().
|
inline |
Returns reference to calling thread's local copy, creating one if necessary.
Definition at line 901 of file enumerable_thread_specific.h.
|
inline |
Definition at line 1003 of file enumerable_thread_specific.h.
|
inline |
Definition at line 1014 of file enumerable_thread_specific.h.
|
inline |
Definition at line 1024 of file enumerable_thread_specific.h.
|
inline |
Definition at line 1032 of file enumerable_thread_specific.h.
|
inline |
Get range for parallel algorithms.
Definition at line 924 of file enumerable_thread_specific.h.
|
inline |
Get const range for parallel algorithms.
Definition at line 927 of file enumerable_thread_specific.h.
|
inline |
Get the number of local copies.
Definition at line 907 of file enumerable_thread_specific.h.
|
friend |
Definition at line 768 of file enumerable_thread_specific.h.
|
private |
Definition at line 790 of file enumerable_thread_specific.h.
|
private |
Definition at line 792 of file enumerable_thread_specific.h.