Intel(R) Threading Building Blocks Doxygen Documentation version 4.2.3
Loading...
Searching...
No Matches
tbb::internal::concurrent_queue_iterator< Container, Value > Class Template Reference

Meets requirements of a forward iterator for STL. More...

#include <_concurrent_queue_impl.h>

Inheritance diagram for tbb::internal::concurrent_queue_iterator< Container, Value >:
Collaboration diagram for tbb::internal::concurrent_queue_iterator< Container, Value >:

Public Member Functions

 concurrent_queue_iterator ()
 
 concurrent_queue_iterator (const concurrent_queue_iterator< Container, typename Container::value_type > &other)
 
concurrent_queue_iteratoroperator= (const concurrent_queue_iterator< Container, typename Container::value_type > &other)
 Iterator assignment.
 
Value & operator* () const
 Reference to current item.
 
Value * operator-> () const
 
concurrent_queue_iteratoroperator++ ()
 Advance to next item in queue.
 
Value * operator++ (int)
 Post increment.
 

Private Member Functions

 concurrent_queue_iterator (const concurrent_queue_base_v3 &queue)
 Construct iterator pointing to head of queue.
 

Friends

template<typename T , class A >
class ::tbb::concurrent_bounded_queue
 

Additional Inherited Members

- Protected Member Functions inherited from tbb::internal::concurrent_queue_iterator_base_v3
 concurrent_queue_iterator_base_v3 ()
 Default constructor.
 
 concurrent_queue_iterator_base_v3 (const concurrent_queue_iterator_base_v3 &i)
 Copy constructor.
 
concurrent_queue_iterator_base_v3operator= (const concurrent_queue_iterator_base_v3 &i)
 
__TBB_EXPORTED_METHOD concurrent_queue_iterator_base_v3 (const concurrent_queue_base_v3 &queue)
 Obsolete entry point for constructing iterator pointing to head of queue.
 
__TBB_EXPORTED_METHOD concurrent_queue_iterator_base_v3 (const concurrent_queue_base_v3 &queue, size_t offset_of_data)
 Construct iterator pointing to head of queue.
 
void __TBB_EXPORTED_METHOD assign (const concurrent_queue_iterator_base_v3 &i)
 Assignment.
 
void __TBB_EXPORTED_METHOD advance ()
 Advance iterator one step towards tail of queue.
 
__TBB_EXPORTED_METHOD ~concurrent_queue_iterator_base_v3 ()
 Destructor.
 
- Protected Attributes inherited from tbb::internal::concurrent_queue_iterator_base_v3
voidmy_item
 Pointer to current item.
 

Detailed Description

template<typename Container, typename Value>
class tbb::internal::concurrent_queue_iterator< Container, Value >

Meets requirements of a forward iterator for STL.

Value is either the T or const T type of the container.

Definition at line 1012 of file _concurrent_queue_impl.h.

Constructor & Destructor Documentation

◆ concurrent_queue_iterator() [1/3]

template<typename Container , typename Value >
tbb::internal::concurrent_queue_iterator< Container, Value >::concurrent_queue_iterator ( const concurrent_queue_base_v3 queue)
inlineexplicitprivate

Construct iterator pointing to head of queue.

Definition at line 1023 of file _concurrent_queue_impl.h.

1023 :
1024 concurrent_queue_iterator_base_v3(queue,__TBB_offsetof(concurrent_queue_base_v3::padded_page<Value>,last))
1025 {
1026 }
#define __TBB_offsetof(class_name, member_name)
Extended variant of the standard offsetof macro.
Definition: tbb_stddef.h:266
auto last(Container &c) -> decltype(begin(c))

◆ concurrent_queue_iterator() [2/3]

template<typename Container , typename Value >
tbb::internal::concurrent_queue_iterator< Container, Value >::concurrent_queue_iterator ( )
inline

Definition at line 1029 of file _concurrent_queue_impl.h.

1029{}

◆ concurrent_queue_iterator() [3/3]

template<typename Container , typename Value >
tbb::internal::concurrent_queue_iterator< Container, Value >::concurrent_queue_iterator ( const concurrent_queue_iterator< Container, typename Container::value_type > &  other)
inline

If Value==Container::value_type, then this routine is the copy constructor. If Value==const Container::value_type, then this routine is a conversion constructor.

Definition at line 1033 of file _concurrent_queue_impl.h.

1033 :
1035 {}

Member Function Documentation

◆ operator*()

template<typename Container , typename Value >
Value & tbb::internal::concurrent_queue_iterator< Container, Value >::operator* ( ) const
inline

Reference to current item.

Definition at line 1044 of file _concurrent_queue_impl.h.

1044 {
1045 return *static_cast<Value*>(my_item);
1046 }

References tbb::internal::concurrent_queue_iterator_base_v3::my_item.

Referenced by tbb::internal::concurrent_queue_iterator< Container, Value >::operator++(), and tbb::internal::concurrent_queue_iterator< Container, Value >::operator->().

Here is the caller graph for this function:

◆ operator++() [1/2]

template<typename Container , typename Value >
concurrent_queue_iterator & tbb::internal::concurrent_queue_iterator< Container, Value >::operator++ ( )
inline

Advance to next item in queue.

Definition at line 1051 of file _concurrent_queue_impl.h.

1051 {
1052 advance();
1053 return *this;
1054 }
void __TBB_EXPORTED_METHOD advance()
Advance iterator one step towards tail of queue.

References tbb::internal::concurrent_queue_iterator_base_v3::advance().

Referenced by tbb::internal::concurrent_queue_iterator< Container, Value >::operator++().

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

◆ operator++() [2/2]

template<typename Container , typename Value >
Value * tbb::internal::concurrent_queue_iterator< Container, Value >::operator++ ( int  )
inline

Post increment.

Definition at line 1057 of file _concurrent_queue_impl.h.

1057 {
1058 Value* result = &operator*();
1059 operator++();
1060 return result;
1061 }
concurrent_queue_iterator & operator++()
Advance to next item in queue.
Value & operator*() const
Reference to current item.

References tbb::internal::concurrent_queue_iterator< Container, Value >::operator*(), and tbb::internal::concurrent_queue_iterator< Container, Value >::operator++().

Here is the call graph for this function:

◆ operator->()

template<typename Container , typename Value >
Value * tbb::internal::concurrent_queue_iterator< Container, Value >::operator-> ( ) const
inline

Definition at line 1048 of file _concurrent_queue_impl.h.

1048{return &operator*();}

References tbb::internal::concurrent_queue_iterator< Container, Value >::operator*().

Here is the call graph for this function:

◆ operator=()

template<typename Container , typename Value >
concurrent_queue_iterator & tbb::internal::concurrent_queue_iterator< Container, Value >::operator= ( const concurrent_queue_iterator< Container, typename Container::value_type > &  other)
inline

Iterator assignment.

Definition at line 1038 of file _concurrent_queue_impl.h.

1038 {
1040 return *this;
1041 }
concurrent_queue_iterator_base_v3 & operator=(const concurrent_queue_iterator_base_v3 &i)

References tbb::internal::concurrent_queue_iterator_base_v3::operator=().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ ::tbb::concurrent_bounded_queue

template<typename Container , typename Value >
template<typename T , class A >
friend class ::tbb::concurrent_bounded_queue
friend

Definition at line 1017 of file _concurrent_queue_impl.h.


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

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.