41 #include "dods-limits.h" 54 const unsigned int max_str_len = DODS_USHRT_MAX - 1;
69 Str(
const string &n,
const string &d);
76 Str &operator=(
const Str &rhs);
80 virtual unsigned int width(
bool constrained =
false)
const;
84 virtual int length()
const;
95 virtual unsigned int val2buf(
void *val,
bool reuse =
false);
96 virtual unsigned int buf2val(
void **val);
99 virtual string value()
const;
101 virtual void print_val(FILE *out,
string space =
"",
102 bool print_decl_p =
true);
103 virtual void print_val(ostream &out,
string space =
"",
104 bool print_decl_p =
true);
109 virtual void dump(ostream &strm)
const ;
virtual void print_val(FILE *out, string space="", bool print_decl_p=true)
Prints the value of the variable.
abstract base class used to unmarshall/deserialize dap data objects
virtual unsigned int val2buf(void *val, bool reuse=false)
virtual BaseType * ptr_duplicate()
Read data from the stream made by D4StreamMarshaller.
virtual bool serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval=true)
Move data to the net, then remove them from the object.
Holds character string data.
virtual bool deserialize(UnMarshaller &um, DDS *dds, bool reuse=false)
Receive data from the net.
virtual void dump(ostream &strm) const
dumps information about this object
Marshaller that knows how to marshal/serialize dap data objects to a C++ iostream using DAP4's receiv...
virtual bool ops(BaseType *b, int op)
Evaluate relational operators.
virtual bool set_value(const string &value)
virtual void compute_checksum(Crc32 &checksum)
include the data for this variable in the checksum DAP4 includes a checksum with every data response...
virtual bool d4_ops(BaseType *b, int op)
Evaluate a constraint expression.
The basic data type for the DODS DAP types.
abstract base class used to marshal/serialize dap data objects
virtual string value() const
virtual unsigned int width(bool constrained=false) const
How many bytes does this use Return the number of bytes of storage this variable uses. For scalar types, this is pretty simple (an int32 uses 4 bytes, etc.). For arrays and Constructors, it is a bit more complex. Note that a scalar String variable uses sizeof(String*) bytes, not the length of the string. In other words, the value returned is independent of the type. Also note width() of a String array returns the number of elements in the array times sizeof(String*). That is, each different array size is a different data type.
virtual int length() const
How many elements are in this variable.
virtual unsigned int buf2val(void **val)