|
libdap++
Updated for version 3.13.1
|
Evaluate a constraint expression.
#include <ConstraintEvaluator.h>

Public Types | |
| typedef std::vector< Clause * > ::const_iterator | Clause_citer |
| typedef std::vector< Clause * > ::iterator | Clause_iter |
| typedef std::vector< BaseType * > ::const_iterator | Constants_citer |
| typedef std::vector< BaseType * > ::iterator | Constants_iter |
Public Member Functions | |
| void | append_clause (int op, rvalue *arg1, rvalue_list *arg2) |
| Add a clause to a constraint expression. More... | |
| void | append_clause (bool_func func, rvalue_list *args) |
| Add a clause to a constraint expression. More... | |
| void | append_clause (btp_func func, rvalue_list *args) |
| Add a clause to a constraint expression. More... | |
| void | append_constant (BaseType *btp) |
| bool | boolean_expression () |
| Does the current constraint expression return a boolean value? More... | |
| Clause_iter | clause_begin () |
| Clause_iter | clause_end () |
| bool | clause_value (Clause_iter &i, DDS &dds) |
| ConstraintEvaluator () | |
| BaseType * | eval_function (DDS &dds, const string &dataset) |
| Evaluate a function-valued constraint expression. More... | |
| DDS * | eval_function_clauses (DDS &dds) |
| Evaluate a function-valued constraint expression that contains several function calls. More... | |
| DataDDS * | eval_function_clauses (DataDDS &dds) |
| Evaluate a function-valued constraint expression that contains several function calls. Takes and returns a DataDDS. More... | |
| bool | eval_selection (DDS &dds, const string &dataset) |
| Evaluate a boolean-valued constraint expression. This is main method for the evaluator ans is called by the BaseType::serialize() methods. More... | |
| bool | find_function (const string &name, bool_func *f) const |
| Find a Boolean function with a given name in the function list. More... | |
| bool | find_function (const string &name, btp_func *f) const |
| Find a BaseType function with a given name in the function list. More... | |
| bool | find_function (const string &name, proj_func *f) const |
| Find a projection function with a given name in the function list. More... | |
| bool | function_clauses () |
| Does the current constraint expression contain function clauses. More... | |
| bool | functional_expression () |
| Does the current constraint expression return a BaseType pointer? This method does not evaluate the clause, it provides information to the evaluator regarding how to evaluate the clause. More... | |
| void | parse_constraint (const string &constraint, DDS &dds) |
| Parse the constraint expression given the current DDS. More... | |
| virtual | ~ConstraintEvaluator () |
Friends | |
| class | func_name_is |
Definition at line 42 of file ConstraintEvaluator.h.
| typedef std::vector<Clause *>::const_iterator libdap::ConstraintEvaluator::Clause_citer |
Definition at line 65 of file ConstraintEvaluator.h.
| typedef std::vector<Clause *>::iterator libdap::ConstraintEvaluator::Clause_iter |
Definition at line 66 of file ConstraintEvaluator.h.
| typedef std::vector<BaseType *>::const_iterator libdap::ConstraintEvaluator::Constants_citer |
Definition at line 68 of file ConstraintEvaluator.h.
| typedef std::vector<BaseType *>::iterator libdap::ConstraintEvaluator::Constants_iter |
Definition at line 69 of file ConstraintEvaluator.h.
| libdap::ConstraintEvaluator::ConstraintEvaluator | ( | ) |
Definition at line 52 of file ConstraintEvaluator.cc.
References libdap::ServerFunctionsList::TheList().

|
virtual |
Definition at line 64 of file ConstraintEvaluator.cc.
| void libdap::ConstraintEvaluator::append_clause | ( | int | op, |
| rvalue * | arg1, | ||
| rvalue_list * | arg2 | ||
| ) |
This function adds an operator clause to the constraint expression.
| op | An integer indicating the operator in use. These values are generated by bison. |
| arg1 | A pointer to the argument on the left side of the operator. |
| arg2 | A pointer to a list of the arguments on the right side of the operator. |
Definition at line 115 of file ConstraintEvaluator.cc.
| void libdap::ConstraintEvaluator::append_clause | ( | bool_func | func, |
| rvalue_list * | args | ||
| ) |
This function adds a boolean function clause to the constraint expression.
| func | A pointer to a boolean function from the list of supported functions. |
| args | A list of arguments to that function. |
Definition at line 131 of file ConstraintEvaluator.cc.
| void libdap::ConstraintEvaluator::append_clause | ( | btp_func | func, |
| rvalue_list * | args | ||
| ) |
This function adds a real-valued (BaseType) function clause to the constraint expression.
| func | A pointer to a BaseType function from the list of supported functions. |
| args | A list of arguments to that function. |
Definition at line 147 of file ConstraintEvaluator.cc.
| void libdap::ConstraintEvaluator::append_constant | ( | BaseType * | btp | ) |
The Constraint Evaluator maintains a list of BaseType pointers for all the constants that the constraint expression parser generates. These objects are deleted by the Constraint Evaluator destructor. Note that there are no list accessors; these constants are never accessed from the list. The list is simply a convenient way to make sure the constants are disposed of properly.
Definition at line 161 of file ConstraintEvaluator.cc.
| bool libdap::ConstraintEvaluator::boolean_expression | ( | ) |
Definition at line 311 of file ConstraintEvaluator.cc.
| ConstraintEvaluator::Clause_iter libdap::ConstraintEvaluator::clause_begin | ( | ) |
Returns the first clause in a parsed constraint expression.
Definition at line 81 of file ConstraintEvaluator.cc.
| ConstraintEvaluator::Clause_iter libdap::ConstraintEvaluator::clause_end | ( | ) |
Returns a reference to the end of the list of clauses in a parsed constraint expression. It does not reference the last clause
Definition at line 88 of file ConstraintEvaluator.cc.
| bool libdap::ConstraintEvaluator::clause_value | ( | Clause_iter & | iter, |
| DDS & | dds | ||
| ) |
Returns the value of the indicated clause of a constraint expression.
Definition at line 95 of file ConstraintEvaluator.cc.
Definition at line 206 of file ConstraintEvaluator.cc.
References libdap::Clause::value().
Referenced by libdap::DODSFilter::send_data(), and libdap::DODSFilter::send_data_ddx().

This method can be called for any function-valued constraint expression. Unlike eval_function(), it will package the return value in a new DDS object. The server should free this object once it has been serialized and sent.
Definition at line 258 of file ConstraintEvaluator.cc.
References libdap::DDS::add_var_nocopy(), libdap::DDS::get_dataset_name(), libdap::DDS::get_factory(), and libdap::Clause::value().
Referenced by libdap::DODSFilter::send_data(), and libdap::DODSFilter::send_data_ddx().

Definition at line 287 of file ConstraintEvaluator.cc.
References libdap::DDS::add_var_nocopy(), libdap::DDS::get_dataset_name(), libdap::DDS::get_factory(), libdap::DataDDS::get_protocol(), libdap::DataDDS::get_version(), and libdap::Clause::value().

| bool libdap::ConstraintEvaluator::eval_selection | ( | DDS & | dds, |
| const string & | dataset | ||
| ) |
| dds | Use these variables when evaluating the expressions. |
| dataset | This string is passed to the read() methods. |
Definition at line 331 of file ConstraintEvaluator.cc.
References DBG.
Referenced by libdap::Sequence::read_row(), libdap::Int8::serialize(), libdap::Int64::serialize(), libdap::UInt64::serialize(), libdap::Int16::serialize(), libdap::UInt16::serialize(), libdap::UInt32::serialize(), libdap::Float64::serialize(), libdap::Float32::serialize(), libdap::Byte::serialize(), libdap::Int32::serialize(), libdap::Str::serialize(), libdap::Constructor::serialize(), libdap::Vector::serialize(), and libdap::Grid::serialize().
| bool libdap::ConstraintEvaluator::find_function | ( | const string & | name, |
| bool_func * | f | ||
| ) | const |
Definition at line 167 of file ConstraintEvaluator.cc.
References libdap::ServerFunctionsList::find_function().

| bool libdap::ConstraintEvaluator::find_function | ( | const string & | name, |
| btp_func * | f | ||
| ) | const |
Definition at line 173 of file ConstraintEvaluator.cc.
References libdap::ServerFunctionsList::find_function().

| bool libdap::ConstraintEvaluator::find_function | ( | const string & | name, |
| proj_func * | f | ||
| ) | const |
Definition at line 179 of file ConstraintEvaluator.cc.
References libdap::ServerFunctionsList::find_function().

| bool libdap::ConstraintEvaluator::function_clauses | ( | ) |
This method does not evaluate the clauses, it provides information to the evaluator regarding how to evaluate the clause.
Definition at line 228 of file ConstraintEvaluator.cc.
References libdap::Clause::value_clause().
Referenced by libdap::DODSFilter::send_data(), and libdap::DODSFilter::send_data_ddx().

| bool libdap::ConstraintEvaluator::functional_expression | ( | ) |
Definition at line 193 of file ConstraintEvaluator.cc.
References libdap::Clause::value_clause().
Referenced by libdap::DODSFilter::send_data(), libdap::DODSFilter::send_data_ddx(), libdap::DODSFilter::send_dds(), and libdap::DODSFilter::send_ddx().

| void libdap::ConstraintEvaluator::parse_constraint | ( | const string & | constraint, |
| DDS & | dds | ||
| ) |
Evaluate the constraint expression; return the value of the expression. As a side effect, mark the DDS so that BaseType's mfuncs can be used to correctly read the variable's value and send it to the client.
| constraint | A string containing the constraint expression. |
| dds | The DDS that provides the environment within which the constraint is evaluated. |
| Throws | Error if the constraint does not parse. |
Definition at line 365 of file ConstraintEvaluator.cc.
References ce_expr_delete_buffer(), ce_expr_string(), ce_expr_switch_to_buffer(), ce_exprdebug, and ce_exprparse().
Referenced by libdap::DODSFilter::send_data(), libdap::DODSFilter::send_data_ddx(), libdap::DODSFilter::send_dds(), and libdap::DODSFilter::send_ddx().

|
friend |
Definition at line 62 of file ConstraintEvaluator.h.