libdap
Updated for version 3.20.6
libdap4 is an implementation of OPeNDAP's DAP protocol.
|
Marshaller that knows how to marshal/serialize dap data objects to a C++ iostream using DAP4's receiver-makes-right scheme. This code adds checksums to the stream and uses the xdr library to encode real values if the underlying representation is not IEEE 754. It also supports computing the checksum only. More...
#include <D4StreamMarshaller.h>
Public Member Functions | |
virtual void | checksum_update (const void *data, unsigned long len) |
D4StreamMarshaller (std::ostream &out, bool write_data=true) | |
virtual void | dump (std::ostream &strm) const |
dump the contents of this object to the specified ostream More... | |
virtual string | get_checksum () |
virtual void | put_byte (dods_byte val) |
virtual void | put_checksum () |
Write the checksum Write the checksum for the data sent since the last call to reset_checksum() to the I/O stream associated with this marshaller. Use this to send the checksum, not get_checksum(). More... | |
virtual void | put_count (int64_t count) |
virtual void | put_float32 (dods_float32 val) |
virtual void | put_float64 (dods_float64 val) |
virtual void | put_int (int) |
virtual void | put_int16 (dods_int16 val) |
virtual void | put_int32 (dods_int32 val) |
virtual void | put_int64 (dods_int64 val) |
virtual void | put_int8 (dods_int8 val) |
virtual void | put_opaque (char *, unsigned int) |
virtual void | put_opaque_dap4 (const char *val, int64_t len) |
virtual void | put_str (const string &val) |
virtual void | put_uint16 (dods_uint16 val) |
virtual void | put_uint32 (dods_uint32 val) |
virtual void | put_uint64 (dods_uint64 val) |
virtual void | put_url (const string &val) |
virtual void | put_vector (char *val, int64_t num_bytes) |
Write a fixed size vector. More... | |
virtual void | put_vector (char *val, int64_t num_elem, int elem_size) |
virtual void | put_vector (char *, int, Vector &) |
virtual void | put_vector (char *, int, int, Vector &) |
virtual void | put_vector_end () |
virtual void | put_vector_float32 (char *val, int64_t num_elem) |
Write a fixed size vector. More... | |
virtual void | put_vector_float64 (char *val, int64_t num_elem) |
Write a fixed size vector of float64s. More... | |
virtual void | put_vector_part (char *, unsigned int, int, Type) |
virtual void | put_vector_start (int) |
virtual void | reset_checksum () |
Marshaller that knows how to marshal/serialize dap data objects to a C++ iostream using DAP4's receiver-makes-right scheme. This code adds checksums to the stream and uses the xdr library to encode real values if the underlying representation is not IEEE 754. It also supports computing the checksum only.
Definition at line 71 of file D4StreamMarshaller.h.
libdap::D4StreamMarshaller::D4StreamMarshaller | ( | std::ostream & | out, |
bool | write_data = true |
||
) |
Build an instance of D4StreamMarshaller. Bind the C++ stream out to this instance. If the write_data parameter is true, write the data in addition to computing and sending the checksum.
out | Write to this stream object. |
write_data | If true, write data values. True by default |
Definition at line 201 of file D4StreamMarshaller.cc.
|
virtual |
Update the current CRC 32 checksum value. Calling this with len equal to zero has no effect on the checksum value.
Definition at line 276 of file D4StreamMarshaller.cc.
|
virtual |
dump the contents of this object to the specified ostream
This method is implemented by all derived classes to dump their contents, in other words, any state they might have, private variables, etc...
strm | C++ i/o stream to dump the object to |
Implements libdap::Marshaller.
Definition at line 820 of file D4StreamMarshaller.cc.
|
virtual |
Get the current checksum. It is not possible to continue computing the checksum once this has been called.
Definition at line 248 of file D4StreamMarshaller.cc.
|
virtual |
Write the checksum Write the checksum for the data sent since the last call to reset_checksum() to the I/O stream associated with this marshaller. Use this to send the checksum, not get_checksum().
Definition at line 263 of file D4StreamMarshaller.cc.
|
virtual |
Used only for Sequences, where the count must be added to the stream and then the fields sent using separate calls to methods here. The methods put_opaque_dap4(), ..., that need counts sent as prefixes to their data handle it themselves.
count | How many elements follow. |
Definition at line 489 of file D4StreamMarshaller.cc.
|
virtual |
Write a fixed size vector.
val | Pointer to the data |
num | Number of bytes to write |
Definition at line 546 of file D4StreamMarshaller.cc.
|
inlinevirtual |
Close a vector when its values are written using put_vector_part(). In DAP4 this does nothing because arrays are serialized using the server's binary representation (i.e., using 'reader make right').
Reimplemented from libdap::Marshaller.
Definition at line 170 of file D4StreamMarshaller.h.
|
virtual |
Write a fixed size vector.
val | Pointer to the data |
num | Number of elements |
width | Size of a single element |
type | DAP variable type; used to handle float32 and float64 types correctly |
Definition at line 625 of file D4StreamMarshaller.cc.
|
virtual |
Write a fixed size vector of float64s.
val | Pointer to the data |
num | Number of elements |
width | Size of a single element |
type | DAP variable type; used to handle float32 and float64 types correctly |
Definition at line 699 of file D4StreamMarshaller.cc.
|
virtual |
Write one part of a vector's contents.
val | Pointer to the part's values |
num | The number of values in this part |
width | The number of bytes per value |
type | The DAP2 data type for each value |
Reimplemented from libdap::Marshaller.
Definition at line 762 of file D4StreamMarshaller.cc.
|
inlinevirtual |
Prepare to send a single array/vector using a series of 'put' calls. In DAP4 this does nothing because arrays are serialized using the server's binary representation (i.e., using 'reader make right').
num | Ignored |
Reimplemented from libdap::Marshaller.
Definition at line 157 of file D4StreamMarshaller.h.
|
virtual |
Initialize the checksum buffer. This resets the checksum calculation.
Definition at line 233 of file D4StreamMarshaller.cc.