56 D4RValueList::~D4RValueList()
58 for (std::vector<D4RValue *>::iterator i = d_rvalues.begin(), e = d_rvalues.end(); i != e; ++i)
62 template<
typename T,
class DAP_TYPE>
64 build_constant_array(vector<T> &values, DAP_TYPE &dt)
76 static unsigned long counter = 1;
82 D4RValue::D4RValue(
unsigned long long ull) : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
89 D4RValue::D4RValue(
long long ll) : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
96 D4RValue::D4RValue(
double r) : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
103 D4RValue::D4RValue(std::string cpps) : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
105 Str *s =
new Str(
"constant");
111 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
114 d_constant = build_constant_array(byte_args, b);
118 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
121 d_constant = build_constant_array(byte_int8, b);
125 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
128 d_constant = build_constant_array(byte_uint16, b);
132 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
135 d_constant = build_constant_array(byte_int16, b);
139 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
142 d_constant = build_constant_array(byte_uint32, b);
146 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
149 d_constant = build_constant_array(byte_int32, b);
153 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
156 d_constant = build_constant_array(byte_uint64, b);
160 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
163 d_constant = build_constant_array(byte_int64, b);
167 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
170 d_constant = build_constant_array(byte_float32, b);
174 : d_variable(0), d_func(0), d_args(0), d_constant(0), d_value_kind(constant)
177 d_constant = build_constant_array(byte_float64, b);
200 switch (d_value_kind) {
207 return (*d_func)(d_args, dmr);
213 throw InternalErr(__FILE__, __LINE__,
"Unknown rvalue type.");
virtual bool read()
Read data into a local buffer.
Holds an 8-bit signed integer value.
Holds a64-bit signed integer.
virtual bool set_value(dods_float64 val)
Holds an unsigned 16-bit integer.
virtual void set_read_p(bool state)
Indicates that the data is ready to send.
void append_dim(int size, const string &name="")
Add a dimension of a given size.
Holds a 32-bit floating point value.
A class for software fault reporting.
Holds character string data.
bool set_value(T *v, int sz)
set the value of a byte array
Holds a 16-bit signed integer value.
virtual void set_read_p(bool state)
Sets the value of the read_p property.
virtual bool set_value(dods_int64 i)
virtual bool set_value(const string &value)
Holds a 64-bit unsigned integer.
string long_to_string(long val, int base)
BaseType * value(DMR &dmr)
virtual bool set_value(dods_uint64 val)
string remove_quotes(const string &s)
The basic data type for the DODS DAP types.
Holds a 64-bit (double precision) floating point value.
virtual void set_name(const std::string &name)
Holds a 32-bit unsigned integer.
A multidimensional array of identical data types.
Holds a 32-bit signed integer.