32 #include <dods-datatypes.h> 33 #include <D4Function.h> 47 std::vector<D4RValue *> d_rvalues;
52 typedef std::vector<D4RValue *>::iterator iter;
61 if (
this == &rhs)
return *
this;
67 d_rvalues.push_back(rv);
70 D4RValue *get_rvalue(
unsigned int i) {
71 return d_rvalues.at(i);
74 iter begin() {
return d_rvalues.begin(); }
75 iter end() {
return d_rvalues.end(); }
77 unsigned int size()
const {
return d_rvalues.size(); }
103 value_kind d_value_kind;
106 void m_duplicate(
const D4RValue &src);
111 D4RValue() : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(unknown) { }
113 D4RValue(
BaseType *btp) : d_variable(btp), d_func(0), d_args(0), d_constant(0), d_value_kind(basetype) { }
114 D4RValue(D4Function f,
D4RValueList *args) : d_variable(0), d_func(f), d_args(args), d_constant(0), d_value_kind(
function) { }
120 D4RValue(std::vector<dods_byte> &byte_args);
121 D4RValue(std::vector<dods_int8> &byte_int8);
122 D4RValue(std::vector<dods_uint16> &byte_uint16);
123 D4RValue(std::vector<dods_int16> &byte_int16);
124 D4RValue(std::vector<dods_uint32> &byte_uint32);
125 D4RValue(std::vector<dods_int32> &byte_int32);
126 D4RValue(std::vector<dods_uint64> &byte_uint64);
127 D4RValue(std::vector<dods_int64> &byte_int64);
128 D4RValue(std::vector<dods_float32> &byte_float32);
129 D4RValue(std::vector<dods_float64> &byte_float64);
150 value_kind
get_kind()
const {
return d_value_kind; }
top level DAP object to house generic methods
D4RValue * D4RValueFactory(std::string cpps)
Build an appropriate RValue.
The basic data type for the DODS DAP types.
value_kind get_kind() const
What kind of thing holds the value Values in DAP4 constraints are either constants, dataset variables or function results. It might be nice to know the source of a given value in order to optimize the evaluation of certain kinds of expressions.