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 34 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 119 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 36 of file flow_graph.h.

◆ ~async_storage()

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

Definition at line 40 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 50 of file flow_graph.h.

59  {

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 58 of file flow_graph.h.

59  {
60  namespace flow {
61  using std::tuple;
62  using std::tuple_size;
63  using std::tuple_element;
64  using std::get;
65  }
66 }
67 #else
68  #include "compat/tuple"
69 #endif
70 
71 #include<list>
72 #include<queue>
73 
84 namespace tbb {
85 namespace flow {
86 
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 88 of file flow_graph.h.

88  { unlimited = 0, serial = 1 };
89 
90 namespace interface10 {
91 
93 struct null_type {};
94 
96 class continue_msg {};
97 
99 template< typename T > class sender;
100 template< typename T > class receiver;
101 class continue_receiver;
102 template< typename T > class limiter_node; // needed for resetting decrementer
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;
109 template<typename T, typename M> class round_robin_cache;
110 template<typename T, typename M> class predecessor_cache;
111 template<typename T, typename M> class reservable_predecessor_cache;
112 

Member Data Documentation

◆ my_clients

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

Definition at line 120 of file flow_graph.h.

◆ my_data

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

Definition at line 118 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 117 of file flow_graph.h.

◆ my_graph

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

Definition at line 115 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 116 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.