libdap
Updated for version 3.19.1
libdap4 is an implementation of OPeNDAP's DAP protocol.
|
56 #include "Operators.h"
57 #include "Marshaller.h"
58 #include "UnMarshaller.h"
61 #include "D4Attributes.h"
62 #include "D4StreamMarshaller.h"
63 #include "D4StreamUnMarshaller.h"
68 #include "dods-limits.h"
69 #include "InternalErr.h"
103 d_buf = copy_from.d_buf;
108 return new Byte(*
this);
111 Byte & Byte::operator=(
const Byte & rhs)
116 dynamic_cast < BaseType &
>(*this) = rhs;
125 return sizeof(dods_byte);
140 #if USE_LOCAL_TIMEOUT_SCHEME
148 #if USE_LOCAL_TIMEOUT_SCHEME
151 m.put_byte( d_buf ) ;
161 um.get_byte( d_buf ) ;
169 checksum.
AddData(
reinterpret_cast<uint8_t*
>(&d_buf),
sizeof(d_buf));
186 m.put_byte( d_buf ) ;
192 um.get_byte( d_buf ) ;
207 throw InternalErr(
"the incoming pointer does not contain any data.");
209 d_buf = *(dods_byte *) val;
222 *val =
new dods_byte;
224 *(dods_byte *) * val = d_buf;
252 fwrite(oss.str().data(),
sizeof(
char), oss.str().length(), out);
259 out <<
" = " << (int) d_buf <<
";\n";
299 return USCmp<dods_byte, dods_int8>(op, d_buf,
static_cast<Int8*
>(b)->
value());
301 return Cmp<dods_byte, dods_byte>(op, d_buf,
static_cast<Byte*
>(b)->
value());
303 return USCmp<dods_byte, dods_int16>(op, d_buf,
static_cast<Int16*
>(b)->
value());
305 return Cmp<dods_byte, dods_uint16>(op, d_buf,
static_cast<UInt16*
>(b)->
value());
307 return USCmp<dods_byte, dods_int32>(op, d_buf,
static_cast<Int32*
>(b)->
value());
309 return Cmp<dods_byte, dods_uint32>(op, d_buf,
static_cast<UInt32*
>(b)->
value());
311 return USCmp<dods_byte, dods_int64>(op, d_buf,
static_cast<Int64*
>(b)->
value());
313 return Cmp<dods_byte, dods_uint64>(op, d_buf,
static_cast<UInt64*
>(b)->
value());
315 return USCmp<dods_byte, dods_float32>(op, d_buf,
static_cast<Float32*
>(b)->
value());
317 return USCmp<dods_byte, dods_float64>(op, d_buf,
static_cast<Float64*
>(b)->
value());
320 throw Error(malformed_expr,
"Relational operators can only compare compatible types (number, string).");
322 throw Error(malformed_expr,
"Relational operators only work with scalar types.");
344 std::vector<BaseType *> *
347 DBG(cerr << __func__ <<
"() - BEGIN" << endl;);
351 oss << __func__ <<
"() - Something Bad Happened. This transform should produce only ";
352 oss <<
" a single BaseType yet it produced " << vec->size();
353 throw new Error(internal_error,oss.str());
357 DBG(cerr << __func__ <<
"() - type(): " <<
type() << endl;);
358 DBG(cerr << __func__ <<
"() - dest->type(): " << dest->
type() << endl;);
363 if(
type()!=dods_byte_c){
368 DBG(cerr << __func__ <<
"() - END" << endl;);
382 strm << DapIndent::LMarg <<
"Byte::dump - ("
383 << (
void *)
this <<
")" << endl;
386 strm << DapIndent::LMarg <<
"value: " << d_buf << endl;
387 DapIndent::UnIndent();
Evaluate a constraint expression.
Byte(const string &n)
The Byte constructor.
Holds a 64-bit unsigned integer.
virtual BaseType * ptr_duplicate()
abstract base class used to unmarshall/deserialize dap data objects
virtual bool deserialize(UnMarshaller &um, DDS *, bool)
Deserialize the char on stdin and put the result in _BUF.
virtual std::vector< BaseType * > * transform_to_dap2(AttrTable *parent_attr_table)
DAP4 to DAP2 transform.
virtual void print_decl(FILE *out, string space=" ", bool print_semi=true, bool constraint_info=false, bool constrained=false)
Print an ASCII representation of the variable structure.
A class for error processing.
A class for software fault reporting.
virtual unsigned int val2buf(void *val, bool reuse=false)
abstract base class used to marshal/serialize dap data objects
Holds a 16-bit signed integer value.
Holds a 32-bit unsigned integer.
virtual bool serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval)
virtual dods_byte 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....
Holds an 8-bit signed integer value.
Holds a 32-bit floating point value.
virtual std::vector< BaseType * > * transform_to_dap2(AttrTable *parent_attr_table)
DAP4 to DAP2 transform.
virtual bool set_value(const dods_byte value)
virtual void dump(ostream &strm) const
dumps information about this object
virtual string dataset() const
Returns the name of the dataset used to create this instance.
Read data from the stream made by D4StreamMarshaller.
virtual bool d4_ops(BaseType *b, int op)
virtual bool read_p()
Has this variable been read?
Contains the attributes for a dataset.
Holds an unsigned 16-bit integer.
virtual Type type() const
Returns the type of the class instance.
bool eval_selection(DDS &dds, const std::string &dataset)
Evaluate a boolean-valued constraint expression. This is main method for the evaluator and is called ...
virtual void set_type(const Type &t)
Sets the type of the class instance.
virtual void print(FILE *out, string pad=" ", bool dereference=false)
Prints the attribute table.
virtual void set_read_p(bool state)
Sets the value of the read_p property.
void AddData(const uint8_t *pData, const uint32_t length)
virtual void print_val(FILE *out, string space="", bool print_decl_p=true)
Prints the value of the variable.
virtual bool read()
Read data into a local buffer.
Holds a 32-bit signed integer.
Holds a64-bit signed integer.
virtual bool ops(BaseType *b, int op)
Evaluate relational operators.
virtual AttrTable & get_attr_table()
The basic data type for the DODS DAP types.
virtual void compute_checksum(Crc32 &checksum)
include the data for this variable in the checksum DAP4 includes a checksum with every data response....
Holds a 64-bit (double precision) floating point value.
virtual void dump(ostream &strm) const
dumps information about this object
virtual unsigned int buf2val(void **val)
Reads the class data.
Marshaller that knows how to marshal/serialize dap data objects to a C++ iostream using DAP4's receiv...