HomeReference ⇀ Signal.h

Signal.h

Contains the signal template classes and functions.

#include "react/Signal.h"

Synopsis

Classes

namespace react
{
    // Signal
    class Signal<D,S>

    // VarSignal
    class VarSignal<D,S>

    // TempSignal
    class TempSignal<D,S,/*unspecified*/>
}

Functions

namespace react
{
    //Creates a new variable signal
    MakeVar(V&& init)
      -> VarSignal<D,S>

    // Creates a signal as a function of other signals
    MakeSignal(F&& func, const Signal<D,TValues>& ... args)
      -> TempSignal<D,S,/*unspecified*/>

    // Creates a new signal by flattening a signal of a signal
    Flatten(const Signal<D,Signal<D,T>>& other)
      -> Signal<D,T>
} 

Operators

namespace react
{
    //
    // Overloaded unary operators
    //      Arithmetic:     +   -   ++  --
    //      Bitwise:        ~
    //      Logical:        !
    //

    // OP <Signal>
    OP(const TSignal& arg)
      -> TempSignal<D,S,/*unspecified*/>

    // OP <TempSignal>
    OP(TempSignal<D,TVal,/*unspecified*/>&& arg)
      -> TempSignal<D,S,/*unspecified*/>

    //
    // Overloaded binary operators
    //      Arithmetic:     +   -   *   /   %
    //      Bitwise:        &   |   ^
    //      Comparison:     ==  !=  <   <=  >   >=
    //      Logical:        &&  ||
    //
    // NOT overloaded:
    //      Bitwise shift:  <<  >>
    //

    // <Signal> BIN_OP <Signal>
    BIN_OP(const TLeftSignal& lhs, const TRightSignal& rhs)
      -> TempSignal<D,S,/*unspecified*/>

    // <Signal> BIN_OP <NonSignal>
    BIN_OP(const TLeftSignal& lhs, TRightVal&& rhs)
      -> TempSignal<D,S,/*unspecified*/>

    // <NonSignal> BIN_OP <Signal>
    BIN_OP(TLeftVal&& lhs, const TRightSignal& rhs)
      -> TempSignal<D,S,/*unspecified*/>

    // <TempSignal> BIN_OP <TempSignal>
    BIN_OP(TempSignal<D,TLeftVal,/*unspecified*/>&& lhs,
           TempSignal<D,TRightVal,/*unspecified*/>&& rhs)
      -> TempSignal<D,S,/*unspecified*/>

    // <TempSignal> BIN_OP <Signal>
    BIN_OP(TempSignal<D,TLeftVal,/*unspecified*/>&& lhs,
           const TRightSignal& rhs)
      -> TempSignal<D,S,/*unspecified*/>

    // <Signal> BIN_OP <TempSignal>
    BIN_OP(const TLeftSignal& lhs,
           TempSignal<D,TRightVal,/*unspecified*/>&& rhs)
      -> TempSignal<D,S,/*unspecified*/>

    // <TempSignal> BIN_OP <NonSignal>
    BIN_OP(TempSignal<D,TLeftVal,/*unspecified*/>&& lhs,
           TRightVal&& rhs)
      -> TempSignal<D,S,/*unspecified*/>

    // <NonSignal> BIN_OP <TempSignal>
    BIN_OP(TLeftVal&& lhs,
           TempSignal<D,TRightVal,/*unspecified*/>&& rhs)
      -> TempSignal<D,S,/*unspecified*/>
}