Intel(R) Threading Building Blocks Doxygen Documentation
version 4.2.3
|
Go to the documentation of this file.
22 #ifndef __TBB__flow_graph_hash_buffer_impl_H
23 #define __TBB__flow_graph_hash_buffer_impl_H
25 #ifndef __TBB_flow_graph_H
26 #error Do not #include this internal file directly; use public TBB headers instead.
33 template<
typename ValueType>
71 for(
size_t i=0; i < sz - 1; ++i ) {
72 la[i].second = &(la[i+1]);
74 la[sz-1].second = NULL;
102 DoCleanup my_cleanup(new_pointer_array, new_elements_array,
new_size);
105 for(
size_t i=0; i <
new_size; ++i) new_pointer_array[i] = NULL;
108 for(
size_t i=0; i <
my_size; ++i) {
115 my_cleanup.my_pa = NULL;
116 my_cleanup.my_elements = NULL;
131 size_t l_mask = p_sz-1;
133 size_t h = this->hash((*
my_key)(v)) & l_mask;
134 __TBB_ASSERT(p_free_list,
"Error: free list not set up.");
137 my_elem->second = p_pointer_array[
h];
138 p_pointer_array[
h] = my_elem;
151 for(
size_t i = 0; i < sz; ++i ) {
155 internal::punned_cast<value_type *>(&(
p->first))->~
value_type();
208 size_t i = this->hash(k) &
mask();
212 if(this->equal((*
my_key)(*pv), k)) {
231 size_t h = this->hash(k) &
mask();
236 if(this->equal((*
my_key)(*vp), k)) {
238 if(prev) prev->second =
p->second;
249 #endif // __TBB__flow_graph_hash_buffer_impl_H
buffer_element_type< value_type >::type element_type
void set_up_free_list(element_type **p_free_list, list_array_type la, size_t sz)
aligned_pair< ValueType, void * >::type type
tbb::internal::strip< Key >::type Knoref
void internal_initialize_buffer()
pointer_array_type pointer_array
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
list_array_type * my_elements
Allocator::template rebind< element_type >::other elements_array_allocator
Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.
element_type * list_array_type
void internal_insert_with_key(element_type **p_pointer_array, size_t p_sz, list_array_type &p_free_list, const value_type &v)
static void internal_free_buffer(pointer_array_type &pa, list_array_type &el, size_t &sz, size_t &ne)
static const size_t INITIAL_SIZE
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t new_size
void set_key_func(ValueToKey *vtk)
ValueToKey * get_key_func()
bool find_with_key(const Knoref &k, value_type &v)
DoCleanup(pointer_array_type &pa, list_array_type &my_els, size_t sz)
void delete_with_key(const Knoref &k)
list_array_type * pointer_array_type
void const char const char int ITT_FORMAT __itt_group_sync p
Allocator::template rebind< list_array_type >::other pointer_array_allocator_type
bool find_ref_with_key(const Knoref &k, pointer_type &v)
list_array_type elements_array
value_type * pointer_type
pointer_array_type * my_pa
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t int ITT_FORMAT d no args no args unsigned int ITT_FORMAT u const __itt_domain __itt_id ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain __itt_id ITT_FORMAT p const __itt_domain __itt_id __itt_timestamp __itt_timestamp ITT_FORMAT lu const __itt_domain __itt_id __itt_id __itt_string_handle ITT_FORMAT p const __itt_domain ITT_FORMAT p const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_string_handle unsigned long long ITT_FORMAT lu const __itt_domain __itt_id __itt_string_handle __itt_metadata_type type
void const char const char int ITT_FORMAT __itt_group_sync x void const char ITT_FORMAT __itt_group_sync s void ITT_FORMAT __itt_group_sync p void ITT_FORMAT p void ITT_FORMAT p no args __itt_suppress_mode_t unsigned int void size_t ITT_FORMAT d void ITT_FORMAT p void ITT_FORMAT p __itt_model_site __itt_model_site_instance ITT_FORMAT p __itt_model_task __itt_model_task_instance ITT_FORMAT p void ITT_FORMAT p void ITT_FORMAT p void size_t ITT_FORMAT d void ITT_FORMAT p const wchar_t ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s const char ITT_FORMAT s no args void ITT_FORMAT p size_t ITT_FORMAT d no args const wchar_t const wchar_t ITT_FORMAT s __itt_heap_function h
bool insert_with_key(const value_type &v)
Copyright © 2005-2020 Intel Corporation. All Rights Reserved.
Intel, Pentium, Intel Xeon, Itanium, Intel XScale and VTune are
registered trademarks or trademarks of Intel Corporation or its
subsidiaries in the United States and other countries.
* Other names and brands may be claimed as the property of others.