Provides a experimental library for writing epocal and functional data-models. More...
Classes | |
class | inoutput |
Provides access to reading and writing values of type T . More... | |
class | input |
Provides access to reading values of type T . More... | |
struct | no_value_error |
Raised by the view when it produces no value yet. More... | |
class | output |
Provides access to writing values of type T . More... | |
class | sensor |
class | state |
struct | structure |
Functions | |
template<typename... RootValueTs> | |
void | commit (RootValueTs &&...roots) |
template<typename T > | |
auto | declval_ () -> typename std::add_rvalue_reference< T >::type |
ABL_CONCEPT_SPEC (In_value) | |
Concept for objects that provide values via a getter. More... | |
ABL_CONCEPT_SPEC (Out_value) | |
Concept for objects that provide values via a setter. More... | |
ABL_CONCEPT_SPEC (Inout_value) | |
Concept for objects that meet boot In_value and Out_value . More... | |
ABL_CONCEPT_SPEC (Root_value) | |
Concept for values that can be commited. More... | |
template<typename InT > | |
auto | in (InT &&object) -> estd::enable_if_t< (In_value< InT >()), detail::input_impl< detail::signal_type_t< InT > > > |
Creates an in from another in value. More... | |
template<typename InoutT > | |
auto | inout (InoutT &&object) -> estd::enable_if_t< (Inout_value< InoutT >()), detail::inoutput_impl< detail::signal_type_t< InoutT > > > |
Creates an inout from another inout value. More... | |
template<typename OutT > | |
auto | out (OutT &&object) -> estd::enable_if_t< (Out_value< OutT >()), detail::output_impl< detail::signal_type_t< OutT > > > |
Creates an out from another out value. More... | |
template<typename SensorFnT > | |
sensor< SensorFnT > | make_sensor (SensorFnT fn) |
template<typename T > | |
state< T > | make_state (T value) |
template<typename T > | |
bool | operator== (const structure< T > &a, const structure< T > &b) |
template<typename T > | |
bool | operator< (const structure< T > &a, const structure< T > &b) |
template<typename T > | |
auto | operator<< (std::ostream &os, const T &x) -> estd::enable_if_t< std::is_convertible< T &, structure< T > & >::value, std::ostream & > |
template<typename T > | |
auto | modified (T &) -> estd::enable_if_t<!std::is_convertible< T &, structure< T > & >::value > |
Call this on an structure value to indicate that is has indeed changed, invalidating its cached values. More... | |
template<typename T > | |
void | modified (structure< T > &x) |
template<typename InputValueT , typename CallbackT > | |
auto | watch (InputValueT &&value, CallbackT &&callback) -> decltype( detail::access::watchers(std::forward< InputValueT >(value)) .connect(std::forward< CallbackT >(callback))) |
template<typename Xform , typename... InTs> | |
auto | xformed (Xform &&xform, InTs &&...ins) -> estd::enable_if_t< meta::all(In_value< InTs >()...), detail::xformed_input< typename decltype( detail::make_xform_down_signal( xform, detail::access::signal(ins)...) )::element_type > > |
Returns a new in formed by applying a transducer xform on the successive values of the in. More... | |
template<typename Xform , typename Xform2 , typename... InoutTs> | |
auto | xformed (Xform &&xform, Xform2 &&xform2, InoutTs &&...ins) -> estd::enable_if_t< (!In_value< Xform2 >()&&meta::all(Inout_value< InoutTs >()...)), detail::xformed_inoutput< typename decltype( detail::make_xform_up_down_signal( xform, xform2, detail::access::signal(ins)...) )::element_type > > |
template<typename KeyT > | |
auto | xat (KeyT &&key) -> xform::transducer_impl< detail::at_rf_gen, estd::decay_t< KeyT > > |
Transducer that projects the key key from containers with a standard-style at() method. More... | |
template<typename KeyT > | |
auto | uat (KeyT &&key) -> detail::at_updater< estd::decay_t< KeyT > > |
Update function that updates the key in a container with a standard-style at() method. More... | |
template<typename KeyT , typename... Ins> | |
auto | atted (KeyT &&k, Ins &&...ins) -> estd::enable_if_t< meta::all(In_value< Ins >()&&!Out_value< Ins >()...), decltype(xformed(xat(k), ins...)) > |
Returns xformed version of the ins using xat . More... | |
template<typename AttrPtrT > | |
auto | get_attr (AttrPtrT p) -> detail::get_attr_fn< AttrPtrT > |
Returns a unary function that dereferences the given pointer to member to the applied objects. More... | |
template<typename AttrPtrT > | |
auto | set_attr (AttrPtrT p) -> detail::set_attr_fn< AttrPtrT > |
Returns a update function that uses the given pointer to member. More... | |
template<typename AttrPtrT , typename... Ins> | |
auto | attred (AttrPtrT attr, Ins &&...ins) -> estd::enable_if_t< meta::all(In_value< Ins >()&&!Out_value< Ins >()...), decltype(xformed(xform::map(get_attr(attr)), ins...)) > |
Given a pointer to member, returns a xformed version of the ins accessed through the member. More... | |
Detailed Description
Provides a experimental library for writing epocal and functional data-models.
Function Documentation
atria::funken::ABL_CONCEPT_SPEC | ( | In_value | ) |
Concept for objects that provide values via a getter.
Definition at line 48 of file concepts.hpp.
atria::funken::ABL_CONCEPT_SPEC | ( | Out_value | ) |
Concept for objects that provide values via a setter.
Definition at line 61 of file concepts.hpp.
atria::funken::ABL_CONCEPT_SPEC | ( | Inout_value | ) |
Concept for objects that meet boot In_value
and Out_value
.
- See also
- In_value
- Out_value
Definition at line 76 of file concepts.hpp.
atria::funken::ABL_CONCEPT_SPEC | ( | Root_value | ) |
Concept for values that can be commited.
Definition at line 88 of file concepts.hpp.
auto atted | ( | KeyT && | k, |
Ins &&... | ins | ||
) | -> estd::enable_if_t< meta::all(In_value<Ins>() && !Out_value<Ins>()...), decltype(xformed(xat(k), ins...)) > |
Returns xformed version of the ins using xat
.
If the ins are also outs, it is updated with uat
.
Definition at line 190 of file xformed.hpp.
auto attred | ( | AttrPtrT | attr, |
Ins &&... | ins | ||
) | -> estd::enable_if_t< meta::all(In_value<Ins>() && !Out_value<Ins>()...), decltype(xformed(xform::map(get_attr(attr)), ins...)) > |
Given a pointer to member, returns a xformed version of the ins accessed through the member.
If the ins are also outs, the xformed version is an inout.
Definition at line 260 of file xformed.hpp.
auto atria::funken::get_attr | ( | AttrPtrT | p | ) | -> detail::get_attr_fn<AttrPtrT> |
Returns a unary function that dereferences the given pointer to member to the applied objects.
Definition at line 245 of file xformed.hpp.
auto atria::funken::in | ( | InT && | object | ) | -> estd::enable_if_t< (In_value<InT>()), detail::input_impl<detail::signal_type_t<InT> > > |
auto atria::funken::inout | ( | InoutT && | object | ) | -> estd::enable_if_t< (Inout_value<InoutT>()), detail::inoutput_impl<detail::signal_type_t<InoutT> > > |
auto atria::funken::modified | ( | T & | ) | -> estd::enable_if_t<!std::is_convertible<T&, structure<T>& >::value> |
Call this on an structure
value to indicate that is has indeed changed, invalidating its cached values.
Definition at line 160 of file structure.hpp.
auto atria::funken::out | ( | OutT && | object | ) | -> estd::enable_if_t< (Out_value<OutT>()), detail::output_impl<detail::signal_type_t<OutT> > > |
auto atria::funken::set_attr | ( | AttrPtrT | p | ) | -> detail::set_attr_fn<AttrPtrT> |
Returns a update function that uses the given pointer to member.
- See also
- update
Definition at line 252 of file xformed.hpp.
auto atria::funken::uat | ( | KeyT && | key | ) | -> detail::at_updater<estd::decay_t<KeyT> > |
Update function that updates the key
in a container with a standard-style at()
method.
Does not update the container if the key was not already present.
- See also
- update
Definition at line 177 of file xformed.hpp.
auto atria::funken::xat | ( | KeyT && | key | ) | -> xform::transducer_impl<detail::at_rf_gen, estd::decay_t<KeyT> > |
Transducer that projects the key key
from containers with a standard-style at()
method.
It filters out ins without the given key.
Definition at line 164 of file xformed.hpp.
auto atria::funken::xformed | ( | Xform && | xform, |
InTs &&... | ins | ||
) | -> estd::enable_if_t< meta::all(In_value<InTs>()...), detail::xformed_input< typename decltype( detail::make_xform_down_signal( xform, detail::access::signal(ins)...) )::element_type > > |
Returns a new in formed by applying a transducer xform
on the successive values of the in.
If two xform
parameters are given and the ins are also outs, values can be set back using the second xform
to go back into the original domain.
Definition at line 70 of file xformed.hpp.