32#include <D4Function.h>
33#include <dods-datatypes.h>
45 std::vector<D4RValue *> d_rvalues;
50 typedef std::vector<D4RValue *>::iterator iter;
65 void add_rvalue(
D4RValue *rv) { d_rvalues.push_back(rv); }
67 D4RValue *get_rvalue(
unsigned int i) {
return d_rvalues.at(i); }
69 iter begin() {
return d_rvalues.begin(); }
70 iter end() {
return d_rvalues.end(); }
72 unsigned int size()
const {
return d_rvalues.size(); }
81 enum value_kind { unknown, basetype, function, constant };
91 value_kind d_value_kind;
94 void m_duplicate(
const D4RValue &src);
99 D4RValue() : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(unknown) {}
101 D4RValue(
BaseType *btp) : d_variable(btp), d_func(0), d_args(0), d_constant(0), d_value_kind(basetype) {}
103 : d_variable(0), d_func(f), d_args(args), d_constant(0), d_value_kind(function) {}
109 D4RValue(std::vector<dods_byte> &byte_args);
110 D4RValue(std::vector<dods_int8> &byte_int8);
111 D4RValue(std::vector<dods_uint16> &byte_uint16);
112 D4RValue(std::vector<dods_int16> &byte_int16);
113 D4RValue(std::vector<dods_uint32> &byte_uint32);
114 D4RValue(std::vector<dods_int32> &byte_int32);
115 D4RValue(std::vector<dods_uint64> &byte_uint64);
116 D4RValue(std::vector<dods_int64> &byte_int64);
117 D4RValue(std::vector<dods_float32> &byte_float32);
118 D4RValue(std::vector<dods_float64> &byte_float64);
139 value_kind
get_kind()
const {
return d_value_kind; }
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,...
virtual BaseType * value()
Get the value for a RValue object.
top level DAP object to house generic methods
D4RValue * D4RValueFactory(std::string cpps)
Build an appropriate RValue.