28#ifndef I_D4StreamMarshaller_h
29#define I_D4StreamMarshaller_h 1
36#define USE_XDR_FOR_IEEE754_ENCODING 0
38#if USE_XDR_FOR_IEEE754_ENCODING
44#include <netinet/in.h>
59class MarshallerThread;
74#if USE_XDR_FOR_IEEE754_ENCODING
88 D4StreamMarshaller(
const D4StreamMarshaller &);
89 D4StreamMarshaller &operator=(
const D4StreamMarshaller &);
91#if USE_XDR_FOR_IEEE754_ENCODING
92 void m_serialize_reals(
char *val, int64_t num,
int width,
Type type);
96 D4StreamMarshaller(std::ostream &out,
bool write_data =
true);
122 virtual void put_str(
const string &val);
123 virtual void put_url(
const string &val);
126 throw InternalErr(__FILE__, __LINE__,
"Not implemented for DAP4; use put_opaque_dap4() instead.");
132 virtual void put_int(
int) {
throw InternalErr(__FILE__, __LINE__,
"Not Implemented; use put_length_prefix."); }
134 virtual void put_vector(
char *val, int64_t num_bytes);
135 virtual void put_vector(
char *val, int64_t num_elem,
int elem_size);
140 throw InternalErr(__FILE__, __LINE__,
"Not Implemented; use other put_vector() versions.");
143 throw InternalErr(__FILE__, __LINE__,
"Not Implemented; use other put_vector() versions.");
169 virtual void dump(std::ostream &strm)
const;
virtual void put_uint16(dods_uint16 val)
virtual void put_checksum()
Write the checksum Write the checksum for the data sent since the last call to reset_checksum() to th...
virtual void put_vector_start(int)
virtual void put_int32(dods_int32 val)
virtual void reset_checksum()
virtual void put_opaque_dap4(const char *val, int64_t len)
virtual void put_uint64(dods_uint64 val)
virtual ~D4StreamMarshaller()
virtual void put_vector_float32(char *val, int64_t num_elem)
Write a fixed size vector.
virtual void put_vector_part(char *, unsigned int, int, Type)
virtual void put_byte(dods_byte val)
virtual void put_str(const string &val)
virtual void put_vector(char *val, int64_t num_bytes)
Write a fixed size vector.
virtual void put_int(int)
virtual void dump(std::ostream &strm) const
dump the contents of this object to the specified ostream
virtual void put_count(int64_t count)
virtual void put_int8(dods_int8 val)
virtual void put_int64(dods_int64 val)
virtual void put_url(const string &val)
virtual void put_int16(dods_int16 val)
virtual void put_vector(char *, int, Vector &)
virtual void put_uint32(dods_uint32 val)
virtual void checksum_update(const void *data, unsigned long len)
virtual void put_float64(dods_float64 val)
virtual void put_vector(char *, int, int, Vector &)
virtual void put_vector_float64(char *val, int64_t num_elem)
Write a fixed size vector of float64s.
virtual void put_opaque(char *, unsigned int)
virtual void put_float32(dods_float32 val)
virtual string get_checksum()
virtual void put_vector_end()
A class for software fault reporting.
abstract base class used to marshal/serialize 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.