| OSSIA
    Open Scenario System for Interactive Application | 
This file defines the expression API. An expression is a logical construct such as :
(a:/b == 1) && (c:/d <= 2.)
pulse(a:/b)
!(c:/d == e:/f/g)
etc...
The basic logical operators are expression_not (!) and expression_composition (and, or, xor).
expression_atom is used for numeric comparison : <=, ==, >, etc.
expression_bool is a simple boolean value.
expression_pulse is an expression that will become true if a particular message happened since the last time it has been updated.
The expressions are organised as a tree. The expression results are passed by cascading callbacks to allow notification when an expression is listened to.
Go to the source code of this file.
| Namespaces | |
| namespace | ossia | 
| Functions | |
| bool | ossia::expressions::evaluate (const expression_base &e) | 
| evaluate | |
| bool | ossia::expressions::evaluate (const expression_ptr &e) | 
| void | ossia::expressions::update (const expression_base &e) | 
| update | |
| void | ossia::expressions::update (const expression_ptr &e) | 
| void | ossia::expressions::reset (expression_base &e) | 
| reset | |
| void | ossia::expressions::reset (const expression_ptr &e) | 
| bool | ossia::expressions::operator== (const expression_base &lhs, const expression_base &rhs) | 
| operator==(const expression_base& lhs, const expression_base& rhs) Compares two expressions. | |
| bool | ossia::expressions::operator!= (const expression_base &lhs, const expression_base &rhs) | 
| expression_callback_iterator | ossia::expressions::add_callback (expression_base &, expression_result_callback) | 
| add_callback Add a callback to an expression. | |
| void | ossia::expressions::remove_callback (expression_base &, expression_callback_iterator) | 
| remove_callback Remove a callback to an expression. | |
| std::size_t | ossia::expressions::callback_count (expression_base &) | 
| callback_count | |
| const expression_base & | ossia::expressions::expression_true () | 
| expression_true Convenience constant expression always evaluating to true. | |
| const expression_base & | ossia::expressions::expression_false () | 
| false Convenience constant expression always evaluating to false. | |
| expression_ptr | ossia::expressions::make_expression_true () | 
| make_expression_true | |
| bool | ossia::expressions::is_expression_true (ossia::expression &e) noexcept | 
| expression_ptr | ossia::expressions::make_expression_false () | 
| make_expression_false | |
| template<typename... Args> | |
| expression_ptr | ossia::expressions::make_expression_atom (Args &&... args) | 
| make_expression_atom | |
| expression_ptr | ossia::expressions::make_expression_atom (const expression_atom::val_t &lhs, comparator c, const expression_atom::val_t &rhs) | 
| expression_ptr | ossia::expressions::make_expression_atom (expression_atom::val_t &&lhs, comparator c, expression_atom::val_t &&rhs) | 
| template<typename... Args> | |
| expression_ptr | ossia::expressions::make_expression_bool (Args &&... args) | 
| make_expression_bool | |
| template<typename... Args> | |
| expression_ptr | ossia::expressions::make_expression_composition (Args &&... args) | 
| make_expression_composition | |
| template<typename... Args> | |
| expression_ptr | ossia::expressions::make_expression_not (Args &&... args) | 
| make_expression_not | |
| template<typename... Args> | |
| expression_ptr | ossia::expressions::make_expression_pulse (Args &&... args) | 
| make_expression_pulse | |
| template<typename T , typename... Args> | |
| expression_ptr | ossia::expressions::make_expression_generic (Args &&... args) | 
| OSSIA_EXPORT bool ossia::expressions::evaluate | ( | const expression_base & | e | ) | 
evaluate
| e | An expression | 
| OSSIA_EXPORT void ossia::expressions::update | ( | const expression_base & | e | ) | 
update
| e | An expression | 
Recursively asks an expression to query the addresses that it refers, in order to check if the value has changed.
| OSSIA_EXPORT void ossia::expressions::reset | ( | expression_base & | e | ) | 
reset
| e | An expression | 
| OSSIA_EXPORT bool ossia::expressions::operator== | ( | const expression_base & | lhs, | 
| const expression_base & | rhs | ||
| ) | 
operator==(const expression_base& lhs, const expression_base& rhs) Compares two expressions.
Two expressions are comparable if they have all the same terms.
| OSSIA_EXPORT std::size_t ossia::expressions::callback_count | ( | expression_base & | ) | 
callback_count
| 
 | inline | 
make_expression_true
The following functions are factories used to create expressions.
| 
 | inline | 
make_expression_false
| expression_ptr ossia::expressions::make_expression_atom | ( | Args &&... | args | ) | 
make_expression_atom
| expression_ptr ossia::expressions::make_expression_bool | ( | Args &&... | args | ) | 
make_expression_bool
| expression_ptr ossia::expressions::make_expression_composition | ( | Args &&... | args | ) | 
make_expression_composition
| expression_ptr ossia::expressions::make_expression_not | ( | Args &&... | args | ) | 
make_expression_not
| expression_ptr ossia::expressions::make_expression_pulse | ( | Args &&... | args | ) | 
make_expression_pulse