libdap
Updated for version 3.20.6
libdap4 is an implementation of OPeNDAP's DAP protocol.
|
51 #include "Structure.h"
56 #include "Marshaller.h"
57 #include "UnMarshaller.h"
60 #include "D4StreamMarshaller.h"
61 #include "D4StreamUnMarshaller.h"
65 #include "Operators.h"
66 #include "InternalErr.h"
69 #include "DapIndent.h"
99 d_buf = copy_from.d_buf;
105 return new Str(*
this);
109 Str::operator=(
const Str &rhs)
115 dynamic_cast<BaseType &
>(*this) = rhs;
125 return d_buf.length();
131 return sizeof(string);
138 DBG(cerr <<
"Entering (" << this->
name() <<
" [" <<
this <<
"])" << endl);
139 #if USE_LOCAL_TIMEOUT_SCHEME
147 #if USE_LOCAL_TIMEOUT_SCHEME
152 DBG(cerr <<
"Exiting: buf = " << d_buf << endl);
162 um.get_str( d_buf ) ;
170 checksum.
AddData(
reinterpret_cast<const uint8_t*
>(d_buf.data()), d_buf.length());
193 um.get_str( d_buf ) ;
212 "No place to store a reference to the data.");
217 *val =
new string(d_buf);
219 *
static_cast<string*
>(*val) = d_buf;
221 return sizeof(
string*);
241 throw InternalErr(__FILE__, __LINE__,
"NULL pointer.");
243 d_buf = *
static_cast<string*
>(val);
245 return sizeof(
string*);
274 fwrite(oss.str().data(),
sizeof(
char), oss.str().length(), out);
282 out <<
" = \"" <<
escattr(d_buf) <<
"\";\n" ;
285 out <<
"\"" <<
escattr(d_buf) <<
"\"" ;
298 throw InternalErr(__FILE__, __LINE__,
"This value was not read!");
308 throw InternalErr(__FILE__, __LINE__,
"Argument value was not read!");
330 throw Error(malformed_expr,
"Relational operators can only compare compatible types (string, number).");
332 return StrCmp<string, string>(op, d_buf,
static_cast<Str*
>(b)->
value());
334 return StrCmp<string, string>(op, d_buf,
static_cast<Url*
>(b)->
value());
336 throw Error(malformed_expr,
"Relational operators only work with scalar types.");
351 strm << DapIndent::LMarg <<
"Str::dump - ("
352 << (
void *)
this <<
")" << endl ;
353 DapIndent::Indent() ;
355 strm << DapIndent::LMarg <<
"value: " << d_buf << endl ;
356 DapIndent::UnIndent() ;
Evaluate a constraint expression.
virtual bool set_value(const string &value)
abstract base class used to unmarshall/deserialize dap data objects
virtual void print_val(FILE *out, string space="", bool print_decl_p=true)
Prints the value of the variable.
virtual string name() const
Returns the name of the class instance.
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 bool ops(BaseType *b, int op)
Evaluate relational operators.
abstract base class used to marshal/serialize dap data objects
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
virtual unsigned int val2buf(void *val, bool reuse=false)
virtual bool d4_ops(BaseType *b, int op)
top level DAP object to house generic methods
Holds an Internet address (URL).
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 unsigned int buf2val(void **val)
virtual bool read_p()
Has this variable been read?
virtual Type type() const
Returns the type of the class instance.
virtual BaseType * ptr_duplicate()
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 ...
Holds character string data.
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 bool read()
Read data into a local buffer.
virtual bool serialize(ConstraintEvaluator &eval, DDS &dds, Marshaller &m, bool ce_eval=true)
Move data to the net, then remove them from the object.
The basic data type for the DODS DAP types.
virtual string value() const
virtual int length() const
How many elements are in this variable.
virtual void compute_checksum(Crc32 &checksum)
include the data for this variable in the checksum DAP4 includes a checksum with every data response....
virtual unsigned int width(bool constrained=false) const
How many bytes does this variable use Return the number of bytes of storage this variable uses....
Marshaller that knows how to marshal/serialize dap data objects to a C++ iostream using DAP4's receiv...