32#include "dods-datatypes.h"
39class ConstraintEvaluator;
57 friend class D4EnumTest;
69 void m_duplicate(
const D4Enum &src);
70 void m_check_value(int64_t v)
const;
72 unsigned int m_type_width()
const {
73 switch(d_element_type) {
89 assert(!
"illegal type for D4Enum");
97 D4Enum(
const string &
name,
const string &enum_type);
108 BaseType::operator=(rhs);
115 virtual D4EnumDef *enumeration()
const {
return d_enum_def; }
116 virtual void set_enumeration(
D4EnumDef *enum_def);
120 Type element_type() {
return d_element_type; }
121 void set_element_type(
Type type) { d_element_type =
type; }
123 bool is_signed()
const {
return d_is_signed; }
124 void set_is_signed(
Type t);
134 template<
typename T>
void value(T *v)
const {
135 *v =
static_cast<T
>(d_buf);
148 template <
typename T>
void set_value(T v,
bool check_value =
true)
150 if (check_value) m_check_value(v);
151 d_buf =
static_cast<int64_t
>(v);
169 virtual unsigned int width(
bool =
false)
const {
return m_type_width();}
176 virtual void print_val(ostream &out,
string space =
"",
bool print_decl_p =
true);
182 virtual void dump(ostream &strm)
const;
184 unsigned int val2buf(
void *,
bool);
Contains the attributes for a dataset.
The basic data type for the DODS DAP types.
virtual string name() const
Returns the name of the class instance.
virtual string dataset() const
Returns the name of the dataset used to create this instance.
BaseType(const string &n, const Type &t, bool is_dap4=false)
The BaseType constructor.
virtual Type type() const
Returns the type of the class instance.
Holds a DAP4 enumeration.
virtual std::vector< BaseType * > * transform_to_dap2(AttrTable *parent_attr_table)
Convert an Enum to a DAP2 int type.
virtual bool ops(BaseType *b, int op)
Evaluate relational operators.
virtual void deserialize(D4StreamUnMarshaller &um, DMR &dmr)
virtual void serialize(D4StreamMarshaller &m, DMR &dmr, bool filter=false)
Serialize a D4Enum Use the (integer) data type associated with an Enumeration definition to serialize...
virtual void compute_checksum(Crc32 &checksum)
include the data for this variable in the checksum DAP4 includes a checksum with every data response....
unsigned int buf2val(void **)
Reads the class data.
virtual void dump(ostream &strm) const
dumps information about this object
virtual unsigned int width(bool=false) const
Return the number of bytes in an instance of an Enum. This returns the number of bytes an instance of...
virtual void print_val(ostream &out, string space="", bool print_decl_p=true)
Prints the value of the variable.
virtual void print_xml_writer(XMLWriter &xml, bool constrained)
unsigned int val2buf(void *, bool)
Loads class data.
virtual BaseType * ptr_duplicate()
void set_value(T v, bool check_value=true)
Set the value of the Enum Template member function to set the value of the Enum. The libdap library c...
void value(T *v) const
Get the value of an Enum Get the value of this instance. The caller is responsible for using a type T...
Marshaller that knows how to marshal/serialize dap data objects to a C++ iostream using DAP4's receiv...
Read data from the stream made by D4StreamMarshaller.
top level DAP object to house generic methods
Type
Identifies the data type.