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
void internal_initialize_buffer()
element_type * list_array_type
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
static const size_t INITIAL_SIZE
Meets "allocator" requirements of ISO C++ Standard, Section 20.1.5.
value_type * pointer_type
aligned_pair< ValueType, void * >::type type
list_array_type * my_elements
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)
pointer_array_type pointer_array
void set_key_func(ValueToKey *vtk)
ValueToKey * get_key_func()
Allocator::template rebind< list_array_type >::other pointer_array_allocator_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 void size_t int ITT_FORMAT d __itt_heap_function void ITT_FORMAT p __itt_heap_function void void size_t new_size
bool find_with_key(const Knoref &k, value_type &v)
bool find_ref_with_key(const Knoref &k, pointer_type &v)
list_array_type * pointer_array_type
void delete_with_key(const Knoref &k)
pointer_array_type * my_pa
buffer_element_type< value_type >::type element_type
tbb::internal::strip< Key >::type Knoref
DoCleanup(pointer_array_type &pa, list_array_type &my_els, size_t sz)
bool insert_with_key(const value_type &v)
void const char const char int ITT_FORMAT __itt_group_sync p
Allocator::template rebind< element_type >::other elements_array_allocator
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
list_array_type elements_array
void set_up_free_list(element_type **p_free_list, list_array_type la, size_t sz)
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.