Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant Class Reference
Collaboration diagram for tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant:

Public Member Functions

 variant ()
 
template<typename T >
 variant (const T &x)
 
 variant (const variant &other)
 
void operator= (const variant &rhs)
 
template<typename U >
const U & variant_cast_to () const
 
template<typename U >
bool variant_is_a () const
 
bool variant_is_default_constructed () const
 
 ~variant ()
 

Private Types

typedef pick_tuple_max< N, Tuple, alignment_of >::type AlignType
 
typedef pick_tuple_max< N, Tuple, size_of >::type MaxSizeType
 
typedef tbb::aligned_space< AlignType, MaxNElementsSpaceType
 

Private Attributes

SpaceType my_space
 

Static Private Attributes

static const size_t N = tbb::flow::tuple_size<Tuple>::value
 
static const size_t MaxNBytes = (sizeof(Wrapper<MaxSizeType>)+sizeof(AlignType)-1)
 
static const size_t MaxNElements = MaxNBytes/sizeof(AlignType)
 
static const size_t MaxSize = sizeof(SpaceType)
 

Detailed Description

template<typename TagType, typename T0, typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
class tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant

Definition at line 634 of file flow_graph.h.

Member Typedef Documentation

◆ AlignType

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
typedef pick_tuple_max<N, Tuple, alignment_of>::type tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::AlignType
private

Definition at line 636 of file flow_graph.h.

◆ MaxSizeType

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
typedef pick_tuple_max<N, Tuple, size_of>::type tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxSizeType
private

Definition at line 637 of file flow_graph.h.

◆ SpaceType

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
typedef tbb::aligned_space<AlignType, MaxNElements> tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::SpaceType
private

Definition at line 640 of file flow_graph.h.

Constructor & Destructor Documentation

◆ variant() [1/3]

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant ( )
inline

Definition at line 645 of file flow_graph.h.

647 {

◆ variant() [2/3]

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
template<typename T >
tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant ( const T &  x)
inline

Definition at line 648 of file flow_graph.h.

652  {

◆ variant() [3/3]

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant ( const variant other)
inline

Definition at line 652 of file flow_graph.h.

652  {
654  return my_built_predecessors.edge_count();
655  }
friend class scoped_lock
Definition: spin_mutex.h:179

◆ ~variant()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::~variant ( )
inline

Definition at line 681 of file flow_graph.h.

Member Function Documentation

◆ operator=()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
void tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::operator= ( const variant rhs)
inline

Definition at line 659 of file flow_graph.h.

659  :
660  template< typename R, typename B > friend class run_and_put_task;
661  template<typename X, typename Y> friend class internal::broadcast_cache;
662  template<typename X, typename Y> friend class internal::round_robin_cache;
663  // execute body is supposed to be too small to create a task for.
664  task *try_put_task( const input_type & ) __TBB_override {
665  {
task * try_put_task(const T &t) __TBB_override
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 * task
A cache of successors that are put in a round-robin fashion.
#define __TBB_override
Definition: tbb_stddef.h:240
friend class scoped_lock
Definition: spin_mutex.h:179
A cache of successors that are broadcast to.

◆ variant_cast_to()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
template<typename U >
const U& tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant_cast_to ( ) const
inline

Definition at line 669 of file flow_graph.h.

674  }
675 
static tbb::task *const SUCCESSFULLY_ENQUEUED

◆ variant_is_a()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
template<typename U >
bool tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant_is_a ( ) const
inline

Definition at line 677 of file flow_graph.h.

◆ variant_is_default_constructed()

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
bool tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::variant_is_default_constructed ( ) const
inline

Definition at line 679 of file flow_graph.h.

Member Data Documentation

◆ MaxNBytes

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxNBytes = (sizeof(Wrapper<MaxSizeType>)+sizeof(AlignType)-1)
staticprivate

Definition at line 638 of file flow_graph.h.

◆ MaxNElements

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxNElements = MaxNBytes/sizeof(AlignType)
staticprivate

Definition at line 639 of file flow_graph.h.

◆ MaxSize

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::MaxSize = sizeof(SpaceType)
staticprivate

Definition at line 642 of file flow_graph.h.

◆ my_space

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
SpaceType tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::my_space
private

Definition at line 641 of file flow_graph.h.

◆ N

template<typename TagType , typename T0 , typename T1 = tagged_null_type, typename T2 = tagged_null_type, typename T3 = tagged_null_type, typename T4 = tagged_null_type, typename T5 = tagged_null_type, typename T6 = tagged_null_type, typename T7 = tagged_null_type, typename T8 = tagged_null_type, typename T9 = tagged_null_type>
const size_t tbb::flow::interface11::internal::tagged_msg< TagType, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::variant::N = tbb::flow::tuple_size<Tuple>::value
staticprivate

Definition at line 635 of file flow_graph.h.


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.