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

#include <flow_graph.h>

Collaboration diagram for tbb::flow::interface10::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::interface10::internal::async_storage< T >

Definition at line 192 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::interface10::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::interface10::internal::async_storage< T >::async_storage ( )
inline

Definition at line 32 of file flow_graph.h.

◆ ~async_storage()

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

Definition at line 36 of file flow_graph.h.

◆ async_storage() [2/2]

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

Definition at line 46 of file flow_graph.h.

55  {

Member Function Documentation

◆ set()

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

Definition at line 54 of file flow_graph.h.

55  {
56  namespace flow {
57  using std::tuple;
58  using std::tuple_size;
59  using std::tuple_element;
60  using std::get;
61  }
62 }
63 #else
64  #include "compat/tuple"
65 #endif
66 
67 #include<list>
68 #include<queue>
69 
80 namespace tbb {
81 namespace flow {
82 
The graph class.

◆ subscribe()

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

Definition at line 84 of file flow_graph.h.

84  { unlimited = 0, serial = 1 };
85 
86 namespace interface10 {
87 
89 struct null_type {};
90 
92 class continue_msg {};
93 
95 template< typename T > class sender;
96 template< typename T > class receiver;
97 class continue_receiver;
98 } // namespaceX
99 namespace interface11 {
100 template< typename T, typename U > class limiter_node; // needed for resetting decrementer
101 }
102 namespace interface10 {
103 template< typename R, typename B > class run_and_put_task;
104 
105 namespace internal {
106 
107 template<typename T, typename M> class successor_cache;
108 template<typename T, typename M> class broadcast_cache;

Member Data Documentation

◆ my_clients

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

Definition at line 116 of file flow_graph.h.

◆ my_data

template<typename T >
T tbb::flow::interface10::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::interface10::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::interface10::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::interface10::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-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.