Support Class Library
A set of tools providing classes and utility
Classes | Namespaces | Functions
Channel.h File Reference
#include <mutex>
#include <queue>
#include <deque>
#include <condition_variable>
#include <chrono>
#include <tuple>
#include <utility>
#include <scl/macros.h>
#include <scl/tools/meta/type_query.h>
#include <scl/tools/meta/type_mod.h>

Go to the source code of this file.

Classes

class  scl::async::Channel< T, Lock, Guard, Container >
 A channel to use for asynchronous communication of data in a queued manner. More...
 
class  scl::async::details::ChannelSender< Chan >
 Class used to send data to a Channel. More...
 
class  scl::async::details::ChannelReceiver< Chan >
 
struct  scl::async::details::channel_transport_traits< Chan >
 Traits for the implementation of the transport of information in a scl::async::Channel. More...
 
struct  scl::async::details::channel_actor_traits< Actor >
 Traits for actors that interact with the channel. More...
 
class  scl::async::Channel< T, Lock, Guard, Container >
 A channel to use for asynchronous communication of data in a queued manner. More...
 
class  scl::async::details::ChannelSender< Chan >
 Class used to send data to a Channel. More...
 
class  scl::async::details::ChannelReceiver< Chan >
 
struct  std::tuple_size< scl::async::Channel< T, Lock, Guard, Container > >
 

Namespaces

 scl
 Global namespace of the SCL.
 
 scl::async
 Base namespace for asynchronous APIs.
 
 scl::async::details
 

Functions

template<class U , class T , class L , template< class > class G, class C >
void scl::async::operator>> (U &&value, Channel< T, L, G, C > &channel)
 Forward a value into a channel. More...
 
template<class U , class T , class L , template< class > class G, class C >
void scl::async::operator<< (U &value, Channel< T, L, G, C > &channel)
 Extract a value from the channel. More...
 
template<size_t I, class T , class Lock , template< class > class Guard, class Container >
auto std::get (scl::async::Channel< T, Lock, Guard, Container > &channel) -> scl::tools::meta ::tuple_element_t< I, typename scl::async::Channel< T, Lock, Guard, Container >::transport_type >
 Get either the sender or the receiver from the channel. More...
 

Function Documentation

◆ get()

template<size_t I, class T , class Lock , template< class > class Guard, class Container >
auto std::get ( scl::async::Channel< T, Lock, Guard, Container > &  channel) -> scl::tools::meta ::tuple_element_t<I, typename scl::async::Channel<T, Lock, Guard, Container>::transport_type>

Get either the sender or the receiver from the channel.

Template Parameters
Ibeing the index in the tuple (sender, receiver)
Tbeing the type of values used in the channel
Lockbeing the type of locks for the channel
Guardbeing the type of guards for the channel
Containerbeing the type of containers for the queue of the channel
Parameters
channelbeing the channel to extract data from
Returns
the sender or the receiver

Definition at line 730 of file Channel.h.