SensESP 3.0.1
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
sensesp::Join4< T1, T2, T3, T4 > Class Template Reference

Merge four producer values into a tuple. More...

#include <sensesp/transforms/join.h>

Inheritance diagram for sensesp::Join4< T1, T2, T3, T4 >:
[legend]

Public Member Functions

 Join4 (long max_age=0)
 
- Public Member Functions inherited from sensesp::JoinBase< 4 >
 JoinBase (long max_age=0)
 
- Public Member Functions inherited from sensesp::ValueProducer< std::tuple< T1, T2, T3, T4 > >
 ValueProducer ()
 
 ValueProducer (const std::tuple< T1, T2, T3, T4 > &initial_value)
 
virtual const std::tuple< T1, T2, T3, T4 > & get () const
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< std::tuple< T1, T2, T3, T4 >, typenameVConsumer::input_type >::value, std::shared_ptr< VConsumer > >::type connect_to (std::shared_ptr< VConsumer > consumer)
 Connect a producer to a transform with a different input type.
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< std::tuple< T1, T2, T3, T4 >, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer *consumer)
 
std::enable_if< std::is_base_of< ValueConsumer< typenameVConsumer::input_type >, VConsumer >::value &&std::is_convertible< std::tuple< T1, T2, T3, T4 >, typenameVConsumer::input_type >::value, VConsumer * >::type connect_to (VConsumer &consumer)
 
void emit (const std::tuple< T1, T2, T3, T4 > &new_value)
 
- Public Member Functions inherited from sensesp::Observable
 Observable ()
 
 Observable (Observable &&other)
 Move constructor.
 
void notify ()
 
void attach (std::function< void()> observer)
 

Public Attributes

std::tuple< LambdaConsumer< T1 >, LambdaConsumer< T2 >, LambdaConsumer< T3 >, LambdaConsumer< T4 > > consumers
 

Protected Member Functions

void emit_tuple () override
 
- Protected Member Functions inherited from sensesp::JoinBase< 4 >
void check_emit ()
 

Protected Attributes

std::tuple< T1, T2, T3, T4 > values
 
- Protected Attributes inherited from sensesp::JoinBase< 4 >
elapsedMillis age_ [N]
 
long max_age_
 
- Protected Attributes inherited from sensesp::ValueProducer< std::tuple< T1, T2, T3, T4 > >
std::tuple< T1, T2, T3, T4 > output_
 

Detailed Description

template<typename T1, typename T2, typename T3, typename T4>
class sensesp::Join4< T1, T2, T3, T4 >

Merge four producer values into a tuple.

Merges the connected producers' values into a tuple. The tuple is emitted once all producers have emitted a new value within max_age milliseconds.

Definition at line 116 of file join.h.

Constructor & Destructor Documentation

◆ Join4()

template<typename T1 , typename T2 , typename T3 , typename T4 >
sensesp::Join4< T1, T2, T3, T4 >::Join4 ( long max_age = 0)
inline

Definition at line 119 of file join.h.

Member Function Documentation

◆ emit_tuple()

template<typename T1 , typename T2 , typename T3 , typename T4 >
void sensesp::Join4< T1, T2, T3, T4 >::emit_tuple ( )
inlineoverrideprotectedvirtual

Implements sensesp::JoinBase< 4 >.

Definition at line 147 of file join.h.

Here is the call graph for this function:

Member Data Documentation

◆ consumers

template<typename T1 , typename T2 , typename T3 , typename T4 >
std::tuple<LambdaConsumer<T1>, LambdaConsumer<T2>, LambdaConsumer<T3>, LambdaConsumer<T4> > sensesp::Join4< T1, T2, T3, T4 >::consumers
Initial value:
= {LambdaConsumer<T1>([this](T1 value) {
std::get<0>(values) = value;
age_[0] = 0;
}),
LambdaConsumer<T2>([this](T2 value) {
std::get<1>(values) = value;
age_[1] = 0;
}),
LambdaConsumer<T3>([this](T3 value) {
std::get<2>(values) = value;
age_[2] = 0;
}),
LambdaConsumer<T4>([this](T4 value) {
std::get<3>(values) = value;
age_[3] = 0;
})}
std::tuple< T1, T2, T3, T4 > values
Definition join.h:145
elapsedMillis age_[N]
Definition join.h:27
Provides an easy way of calling a function based on the output of any ValueProducer.

Definition at line 123 of file join.h.

◆ values

template<typename T1 , typename T2 , typename T3 , typename T4 >
std::tuple<T1, T2, T3, T4> sensesp::Join4< T1, T2, T3, T4 >::values
protected

Definition at line 145 of file join.h.


The documentation for this class was generated from the following file: