Home ⌂Doc Index ◂Up ▴
Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::internal::concurrent_queue_base_v8 Class Referenceabstract

For internal use only. More...

#include <_concurrent_queue_impl.h>

Inheritance diagram for tbb::internal::concurrent_queue_base_v8:
Collaboration diagram for tbb::internal::concurrent_queue_base_v8:

Protected Member Functions

 concurrent_queue_base_v8 (size_t item_sz)
 
void __TBB_EXPORTED_METHOD move_content (concurrent_queue_base_v8 &src)
 move items More...
 
bool __TBB_EXPORTED_METHOD internal_push_move_if_not_full (const void *src)
 Attempt to enqueue item onto queue using move operation. More...
 
void __TBB_EXPORTED_METHOD internal_push_move (const void *src)
 Enqueue item at tail of queue using move operation. More...
 
- Protected Member Functions inherited from tbb::internal::concurrent_queue_base_v3
__TBB_EXPORTED_METHOD concurrent_queue_base_v3 (size_t item_size)
 
virtual __TBB_EXPORTED_METHOD ~concurrent_queue_base_v3 ()
 
void __TBB_EXPORTED_METHOD internal_push (const void *src)
 Enqueue item at tail of queue using copy operation. More...
 
void __TBB_EXPORTED_METHOD internal_pop (void *dst)
 Dequeue item from head of queue. More...
 
void __TBB_EXPORTED_METHOD internal_abort ()
 Abort all pending queue operations. More...
 
bool __TBB_EXPORTED_METHOD internal_push_if_not_full (const void *src)
 Attempt to enqueue item onto queue using copy operation. More...
 
bool __TBB_EXPORTED_METHOD internal_pop_if_present (void *dst)
 Attempt to dequeue item from queue. More...
 
ptrdiff_t __TBB_EXPORTED_METHOD internal_size () const
 Get size of queue. More...
 
bool __TBB_EXPORTED_METHOD internal_empty () const
 Check if the queue is empty. More...
 
void __TBB_EXPORTED_METHOD internal_set_capacity (ptrdiff_t capacity, size_t element_size)
 Set the queue capacity. More...
 
virtual pageallocate_page ()=0
 custom allocator More...
 
virtual void deallocate_page (page *p)=0
 custom de-allocator More...
 
void __TBB_EXPORTED_METHOD internal_finish_clear ()
 free any remaining pages More...
 
void __TBB_EXPORTED_METHOD internal_throw_exception () const
 throw an exception More...
 
void __TBB_EXPORTED_METHOD assign (const concurrent_queue_base_v3 &src)
 copy internal representation More...
 
void internal_swap (concurrent_queue_base_v3 &src)
 swap queues More...
 
void internal_insert_item (const void *src, copy_specifics op_type)
 Enqueues item at tail of queue using specified operation (copy or move) More...
 
bool internal_insert_if_not_full (const void *src, copy_specifics op_type)
 Attempts to enqueue at tail of queue using specified operation (copy or move) More...
 
void internal_assign (const concurrent_queue_base_v3 &src, copy_specifics op_type)
 Assigns one queue to another using specified operation (copy or move) More...
 

Private Member Functions

virtual void move_page_item (page &dst, size_t dindex, const page &src, size_t sindex)=0
 
virtual void move_item (page &dst, size_t index, const void *src)=0
 

Friends

struct micro_queue
 

Additional Inherited Members

- Protected Types inherited from tbb::internal::concurrent_queue_base_v3
enum  copy_specifics { copy, move }
 
- Protected Attributes inherited from tbb::internal::concurrent_queue_base_v3
ptrdiff_t my_capacity
 Capacity of the queue. More...
 
size_t items_per_page
 Always a power of 2. More...
 
size_t item_size
 Size of an item. More...
 

Detailed Description

For internal use only.

Backward compatible modification of concurrent_queue_base_v3

Definition at line 940 of file _concurrent_queue_impl.h.

Constructor & Destructor Documentation

◆ concurrent_queue_base_v8()

tbb::internal::concurrent_queue_base_v8::concurrent_queue_base_v8 ( size_t  item_sz)
inlineprotected

Definition at line 942 of file _concurrent_queue_impl.h.

942 : concurrent_queue_base_v3( item_sz ) {}
__TBB_EXPORTED_METHOD concurrent_queue_base_v3(size_t item_size)

Member Function Documentation

◆ internal_push_move()

void tbb::internal::concurrent_queue_base_v8::internal_push_move ( const void src)
protected

Enqueue item at tail of queue using move operation.

Definition at line 367 of file concurrent_queue.cpp.

367  {
368  internal_insert_item( src, move );
369 }
void internal_insert_item(const void *src, copy_specifics op_type)
Enqueues item at tail of queue using specified operation (copy or move)

References tbb::internal::concurrent_queue_base_v3::internal_insert_item(), and tbb::internal::concurrent_queue_base_v3::move.

Here is the call graph for this function:

◆ internal_push_move_if_not_full()

bool tbb::internal::concurrent_queue_base_v8::internal_push_move_if_not_full ( const void src)
protected

Attempt to enqueue item onto queue using move operation.

Definition at line 495 of file concurrent_queue.cpp.

495  {
496  return internal_insert_if_not_full( src, move );
497 }
bool internal_insert_if_not_full(const void *src, copy_specifics op_type)
Attempts to enqueue at tail of queue using specified operation (copy or move)

References tbb::internal::concurrent_queue_base_v3::internal_insert_if_not_full(), and tbb::internal::concurrent_queue_base_v3::move.

Referenced by tbb::concurrent_bounded_queue< T, A >::try_push().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ move_content()

void tbb::internal::concurrent_queue_base_v8::move_content ( concurrent_queue_base_v8 src)
protected

move items

Definition at line 573 of file concurrent_queue.cpp.

573  {
574  internal_assign( src, move );
575 }
void internal_assign(const concurrent_queue_base_v3 &src, copy_specifics op_type)
Assigns one queue to another using specified operation (copy or move)

References tbb::internal::concurrent_queue_base_v3::internal_assign(), and tbb::internal::concurrent_queue_base_v3::move.

Referenced by tbb::concurrent_bounded_queue< T, A >::concurrent_bounded_queue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ move_item()

virtual void tbb::internal::concurrent_queue_base_v8::move_item ( page dst,
size_t  index,
const void src 
)
privatepure virtual

◆ move_page_item()

virtual void tbb::internal::concurrent_queue_base_v8::move_page_item ( page dst,
size_t  dindex,
const page src,
size_t  sindex 
)
privatepure virtual

Friends And Related Function Documentation

◆ micro_queue

friend struct micro_queue
friend

Definition at line 953 of file _concurrent_queue_impl.h.


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

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.