Intel(R) Threading Building Blocks Doxygen Documentation  version 4.2.3
tbb::flow::interface11::internal::async_storage< T > Class Template Reference

#include <flow_graph.h>

Collaboration diagram for tbb::flow::interface11::internal::async_storage< T >:

Public Types

typedef receiver< T > async_storage_client
 

Public Member Functions

 async_storage ()
 
 ~async_storage ()
 
template<typename C >
 async_storage (C &&data)
 
template<typename C >
bool set (C &&data)
 
tasksubscribe (async_storage_client &client, graph &g)
 

Private Types

typedef std::vector< async_storage_client * > subscriber_list_type
 

Private Attributes

graphmy_graph
 
tbb::spin_mutex my_mutex
 
tbb::atomic< bool > my_data_ready
 
my_data
 
subscriber_list_type my_clients
 

Detailed Description

template<typename T>
class tbb::flow::interface11::internal::async_storage< T >

Definition at line 212 of file flow_graph.h.

Member Typedef Documentation

◆ async_storage_client

Definition at line 30 of file flow_graph.h.

◆ subscriber_list_type

template<typename T >
typedef std::vector<async_storage_client*> tbb::flow::interface11::internal::async_storage< T >::subscriber_list_type
private

Definition at line 115 of file flow_graph.h.

Constructor & Destructor Documentation

◆ async_storage() [1/2]

template<typename T >
tbb::flow::interface11::internal::async_storage< T >::async_storage ( )
inline

Definition at line 32 of file flow_graph.h.

41  : 2196 )

◆ ~async_storage()

template<typename T >
tbb::flow::interface11::internal::async_storage< T >::~async_storage ( )
inline

Definition at line 36 of file flow_graph.h.

41  : 2196 )
42  #endif
43  #define __TBB_NOINLINE_SYM __attribute__((noinline))
#define __TBB_NOINLINE_SYM
Definition: flow_graph.h:45

◆ async_storage() [2/2]

template<typename T >
template<typename C >
tbb::flow::interface11::internal::async_storage< T >::async_storage ( C &&  data)
inline

Definition at line 46 of file flow_graph.h.

Member Function Documentation

◆ set()

template<typename T >
template<typename C >
bool tbb::flow::interface11::internal::async_storage< T >::set ( C &&  data)
inline

Definition at line 54 of file flow_graph.h.

69  {
70  namespace flow {
71  using std::tuple;
72  using std::tuple_size;
73  using std::tuple_element;
74  using std::get;
75  }
76 }
77 #else
78  #include "compat/tuple"
79 #endif
80 
81 #include<list>
82 #include<queue>

◆ subscribe()

template<typename T >
task* tbb::flow::interface11::internal::async_storage< T >::subscribe ( async_storage_client client,
graph g 
)
inline

Definition at line 84 of file flow_graph.h.

94  {
95 namespace flow {
96 
98 enum concurrency { unlimited = 0, serial = 1 };
99 
100 namespace interface11 {
101 
103 struct null_type {};
104 
106 class continue_msg {};
107 
concurrency
An enumeration the provides the two most common concurrency levels: unlimited and serial.
Definition: flow_graph.h:98

Member Data Documentation

◆ my_clients

template<typename T >
subscriber_list_type tbb::flow::interface11::internal::async_storage< T >::my_clients
private

Definition at line 116 of file flow_graph.h.

◆ my_data

template<typename T >
T tbb::flow::interface11::internal::async_storage< T >::my_data
private

Definition at line 114 of file flow_graph.h.

◆ my_data_ready

template<typename T >
tbb::atomic<bool> tbb::flow::interface11::internal::async_storage< T >::my_data_ready
private

Definition at line 113 of file flow_graph.h.

◆ my_graph

template<typename T >
graph* tbb::flow::interface11::internal::async_storage< T >::my_graph
private

Definition at line 111 of file flow_graph.h.

◆ my_mutex

template<typename T >
tbb::spin_mutex tbb::flow::interface11::internal::async_storage< T >::my_mutex
private

Definition at line 112 of file flow_graph.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.