27#ifndef I_D4StreamUnMarshaller_h
28#define I_D4StreamUnMarshaller_h 1
33#define USE_XDR_FOR_IEEE754_ENCODING 0
35#if USE_XDR_FOR_IEEE754_ENCODING
41#include <netinet/in.h>
52#include "dods-datatypes.h"
73#if USE_XDR_FOR_IEEE754_ENCODING
79 D4StreamUnMarshaller();
80 D4StreamUnMarshaller(
const D4StreamUnMarshaller &);
81 D4StreamUnMarshaller &operator=(
const D4StreamUnMarshaller &);
82#if USE_XDR_FOR_IEEE754_ENCODING
83 void m_deserialize_reals(
char *val, int64_t num,
int width,
Type type);
85 void m_twidle_vector_elements(
char *vals, int64_t num,
int width);
88 D4StreamUnMarshaller(istream &in,
bool twiddle_bytes);
89 D4StreamUnMarshaller(istream &in);
128 virtual void get_str(
string &val);
129 virtual void get_url(
string &val);
132 throw InternalErr(__FILE__, __LINE__,
"Not implemented for DAP4, use get_opaque_dap4() instead.");
145 throw InternalErr(__FILE__, __LINE__,
"Not implemented for DAP4");
149 throw InternalErr(__FILE__, __LINE__,
"Not implemented for DAP4");
152 virtual void get_vector(
char *val, int64_t num_bytes);
153 virtual void get_vector(
char *val, int64_t num_elem,
int elem_size);
157 virtual void dump(ostream &strm)
const;
string get_checksum_str()
virtual void get_byte(dods_byte &val)
virtual void get_vector_float64(char *val, int64_t num_elem)
Crc32::checksum get_checksum()
bool is_source_big_endian() const
Is the data source we are reading from a big-endian machine? We need this because the value of the CR...
virtual void get_uint64(dods_uint64 &val)
virtual void get_int32(dods_int32 &val)
virtual void get_vector_float32(char *val, int64_t num_elem)
virtual void get_uint16(dods_uint16 &val)
virtual void get_str(string &val)
virtual void get_int(int &)
virtual void get_float64(dods_float64 &val)
void set_twiddle_bytes(bool twiddle)
virtual void get_url(string &val)
virtual void get_opaque_dap4(char **val, int64_t &len)
virtual ~D4StreamUnMarshaller()
virtual void get_int16(dods_int16 &val)
virtual void dump(ostream &strm) const
dump the contents of this object to the specified ostream
virtual void get_vector(char **, unsigned int &, int, Vector &)
static const unsigned int c_checksum_length
virtual void get_vector(char **, unsigned int &, Vector &)
virtual void get_int8(dods_int8 &val)
virtual void get_float32(dods_float32 &val)
virtual void get_int64(dods_int64 &val)
virtual void get_uint32(dods_uint32 &val)
virtual void get_opaque(char *, unsigned int)
A class for software fault reporting.
abstract base class used to unmarshall/deserialize dap data objects
Holds a one-dimensional collection of DAP2 data types.
top level DAP object to house generic methods
Type
Identifies the data type.
bool is_host_big_endian()
Does this host use big-endian byte order?