Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object Class Reference
Collaboration diagram for tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object:

Public Member Functions

 handle_object ()
 
 handle_object (concurrent_lru_cache &cache_ref, typename map_storage_type::reference value_ref)
 
 operator bool () const
 
 handle_object (handle_object &&src)
 
handle_objectoperator= (handle_object &&src)
 
value_type & value ()
 
 ~handle_object ()
 

Private Member Functions

void operator= (handle_object &)
 
 handle_object (handle_object &)
 

Private Attributes

concurrent_lru_cachemy_cache_pointer
 
map_storage_type::pointer my_map_record_ptr
 

Friends

handle_object && move (handle_object &h)
 

Detailed Description

template<typename key_type, typename value_type, typename value_functor_type = value_type (*)(key_type)>
class tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object

Definition at line 110 of file concurrent_lru_cache.h.

Constructor & Destructor Documentation

◆ handle_object() [1/4]

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::handle_object ( )
inline

◆ handle_object() [2/4]

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::handle_object ( concurrent_lru_cache cache_ref,
typename map_storage_type::reference  value_ref 
)
inline

Definition at line 115 of file concurrent_lru_cache.h.

◆ handle_object() [3/4]

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::handle_object ( handle_object &&  src)
inline

Definition at line 121 of file concurrent_lru_cache.h.

121  : my_cache_pointer(src.my_cache_pointer), my_map_record_ptr(src.my_map_record_ptr) {
122  __TBB_ASSERT((src.my_cache_pointer && src.my_map_record_ptr) || (!src.my_cache_pointer && !src.my_map_record_ptr), "invalid state of moving object?");
123  src.my_cache_pointer = NULL;
124  src.my_map_record_ptr = NULL;
125  }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165

References __TBB_ASSERT.

◆ ~handle_object()

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::~handle_object ( )
inline

◆ handle_object() [4/4]

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::handle_object ( handle_object )
private

Member Function Documentation

◆ operator bool()

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::operator bool ( ) const
inline

◆ operator=() [1/2]

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
handle_object& tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::operator= ( handle_object &&  src)
inline

Definition at line 126 of file concurrent_lru_cache.h.

126  {
127  __TBB_ASSERT((src.my_cache_pointer && src.my_map_record_ptr) || (!src.my_cache_pointer && !src.my_map_record_ptr), "invalid state of moving object?");
128  if (my_cache_pointer) {
130  }
131  my_cache_pointer = src.my_cache_pointer;
132  my_map_record_ptr = src.my_map_record_ptr;
133  src.my_cache_pointer = NULL;
134  src.my_map_record_ptr = NULL;
135  return *this;
136  }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165
void signal_end_of_usage(typename map_storage_type::reference value_ref)

References __TBB_ASSERT, tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::my_cache_pointer, tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::my_map_record_ptr, and tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::signal_end_of_usage().

Here is the call graph for this function:

◆ operator=() [2/2]

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
void tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::operator= ( handle_object )
private

◆ value()

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
value_type& tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::value ( )
inline

Definition at line 151 of file concurrent_lru_cache.h.

151  {
152  __TBB_ASSERT(my_cache_pointer,"get value from already moved object?");
153  __TBB_ASSERT(my_map_record_ptr,"get value from an invalid or already moved object?");
154  return my_map_record_ptr->second.my_value;
155  }
#define __TBB_ASSERT(predicate, comment)
No-op version of __TBB_ASSERT.
Definition: tbb_stddef.h:165

References __TBB_ASSERT, tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::my_cache_pointer, and tbb::interface6::concurrent_lru_cache< key_type, value_type, value_functor_type >::handle_object::my_map_record_ptr.

Friends And Related Function Documentation

◆ move

template<typename key_type , typename value_type , typename value_functor_type = value_type (*)(key_type)>
handle_object&& move ( handle_object h)
friend

Definition at line 164 of file concurrent_lru_cache.h.

164  {
165  return std::move(h);
166  }
void move(tbb_thread &t1, tbb_thread &t2)
Definition: tbb_thread.h:305
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

Member Data Documentation

◆ my_cache_pointer

◆ my_map_record_ptr


The documentation for this class was generated from the following file:

Copyright © 2005-2019 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.