32 #include "dods-datatypes.h"
35 #include "InternalErr.h"
36 #include "dods-datatypes.h"
37 #include "dods-limits.h"
45 class ConstraintEvaluator;
63 friend class D4EnumTest;
75 void m_duplicate(
const D4Enum &src);
76 void m_check_value(int64_t v)
const;
78 unsigned int m_type_width()
const {
79 switch(d_element_type) {
95 assert(!
"illegal type for D4Enum");
103 D4Enum(
const string &
name,
const string &enum_type);
114 static_cast<BaseType &
>(*this) = rhs;
121 virtual D4EnumDef *enumeration()
const {
return d_enum_def; }
122 virtual void set_enumeration(
D4EnumDef *enum_def);
126 Type element_type() {
return d_element_type; }
127 void set_element_type(
Type type) { d_element_type =
type; }
129 bool is_signed()
const {
return d_is_signed; }
130 void set_is_signed(
Type t);
140 template<
typename T>
void value(T *v)
const {
141 *v =
static_cast<T
>(d_buf);
154 template <
typename T>
void set_value(T v,
bool check_value =
true)
156 if (check_value) m_check_value(v);
157 d_buf =
static_cast<int64_t
>(v);
175 virtual unsigned int width(
bool =
false)
const {
return m_type_width();}
182 virtual void print_val(ostream &out,
string space =
"",
bool print_decl_p =
true);
188 virtual void dump(ostream &strm)
const;
190 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 BaseType * ptr_duplicate()
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.
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.