libdap Updated for version 3.20.11
libdap4 is an implementation of OPeNDAP's DAP protocol.
|
Evaluate a constraint expression. More...
#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 (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_clause (int op, rvalue *arg1, rvalue_list *arg2) |
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) |
BaseType * | eval_function (DDS &dds, const std::string &dataset) |
Evaluate a function-valued constraint expression. More... | |
DataDDS * | eval_function_clauses (DataDDS &dds) |
Evaluate a function-valued constraint expression that contains several function calls. Takes and returns a DataDDS. More... | |
DDS * | eval_function_clauses (DDS &dds) |
Evaluate a function-valued constraint expression that contains several function calls. More... | |
bool | eval_selection (DDS &dds, const std::string &dataset) |
Evaluate a boolean-valued constraint expression. This is main method for the evaluator and is called by the BaseType::serialize() methods. More... | |
bool | find_function (const std::string &name, bool_func *f) const |
Find a Boolean function with a given name in the function list. More... | |
bool | find_function (const std::string &name, btp_func *f) const |
Find a BaseType function with a given name in the function list. More... | |
bool | find_function (const std::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 std::string &constraint, DDS &dds) |
Parse the constraint expression given the current DDS. More... | |
Friends | |
class | func_name_is |
Evaluate a constraint expression.
Definition at line 42 of file ConstraintEvaluator.h.
typedef std::vector<Clause*>::const_iterator libdap::ConstraintEvaluator::Clause_citer |
Definition at line 61 of file ConstraintEvaluator.h.
typedef std::vector<Clause*>::iterator libdap::ConstraintEvaluator::Clause_iter |
Definition at line 62 of file ConstraintEvaluator.h.
typedef std::vector<BaseType*>::const_iterator libdap::ConstraintEvaluator::Constants_citer |
Definition at line 64 of file ConstraintEvaluator.h.
typedef std::vector<BaseType*>::iterator libdap::ConstraintEvaluator::Constants_iter |
Definition at line 65 of file ConstraintEvaluator.h.
libdap::ConstraintEvaluator::ConstraintEvaluator | ( | ) |
Definition at line 50 of file ConstraintEvaluator.cc.
|
virtual |
Definition at line 62 of file ConstraintEvaluator.cc.
void libdap::ConstraintEvaluator::append_clause | ( | bool_func | func, |
rvalue_list * | args | ||
) |
Add a clause to a constraint expression.
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 129 of file ConstraintEvaluator.cc.
void libdap::ConstraintEvaluator::append_clause | ( | btp_func | func, |
rvalue_list * | args | ||
) |
Add a clause to a constraint expression.
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 145 of file ConstraintEvaluator.cc.
void libdap::ConstraintEvaluator::append_clause | ( | int | op, |
rvalue * | arg1, | ||
rvalue_list * | arg2 | ||
) |
Add a clause to a constraint expression.
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 113 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 159 of file ConstraintEvaluator.cc.
bool libdap::ConstraintEvaluator::boolean_expression | ( | ) |
Does the current constraint expression return a boolean value?
Definition at line 309 of file ConstraintEvaluator.cc.
ConstraintEvaluator::Clause_iter libdap::ConstraintEvaluator::clause_begin | ( | ) |
Returns the first clause in a parsed constraint expression.
Definition at line 79 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 86 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 93 of file ConstraintEvaluator.cc.
Evaluate a function-valued constraint expression.
Definition at line 204 of file ConstraintEvaluator.cc.
Evaluate a function-valued constraint expression that contains several function calls. Takes and returns a DataDDS.
Definition at line 285 of file ConstraintEvaluator.cc.
Evaluate a function-valued constraint expression that contains several function calls.
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 256 of file ConstraintEvaluator.cc.
bool libdap::ConstraintEvaluator::eval_selection | ( | DDS & | dds, |
const std::string & | dataset | ||
) |
Evaluate a boolean-valued constraint expression. This is main method for the evaluator and is called by the BaseType::serialize() methods.
dds | Use these variables when evaluating the expressions. |
dataset | This string is passed to the read() methods. |
Definition at line 329 of file ConstraintEvaluator.cc.
bool libdap::ConstraintEvaluator::find_function | ( | const std::string & | name, |
bool_func * | f | ||
) | const |
Find a Boolean function with a given name in the function list.
Definition at line 165 of file ConstraintEvaluator.cc.
bool libdap::ConstraintEvaluator::find_function | ( | const std::string & | name, |
btp_func * | f | ||
) | const |
Find a BaseType function with a given name in the function list.
Definition at line 171 of file ConstraintEvaluator.cc.
bool libdap::ConstraintEvaluator::find_function | ( | const std::string & | name, |
proj_func * | f | ||
) | const |
Find a projection function with a given name in the function list.
Definition at line 177 of file ConstraintEvaluator.cc.
bool libdap::ConstraintEvaluator::function_clauses | ( | ) |
Does the current constraint expression contain function clauses.
This method does not evaluate the clauses, it provides information to the evaluator regarding how to evaluate the clause.
Definition at line 226 of file ConstraintEvaluator.cc.
bool libdap::ConstraintEvaluator::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.
Definition at line 191 of file ConstraintEvaluator.cc.
void libdap::ConstraintEvaluator::parse_constraint | ( | const std::string & | constraint, |
DDS & | dds | ||
) |
Parse the constraint expression given the current 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 363 of file ConstraintEvaluator.cc.
|
friend |
Definition at line 58 of file ConstraintEvaluator.h.