39class DmrppStructure:
public libdap::Structure,
public DmrppCommon {
41 void structure_read(
vector<char> &values,
size_t &values_offset,
bool byte_swap);
42 void swap_bytes_in_structure(
char*swap_value, libdap::Type t_bt, int64_t num_eles)
const;
44 bool is_special_structure =
false;
45 friend class DmrppArray;
48 DmrppStructure(
const std::string &n) : libdap::Structure(n), DmrppCommon() { }
49 DmrppStructure(
const std::string &n,
const std::string &d) : libdap::Structure(n, d), DmrppCommon() { }
50 DmrppStructure(
const std::string &n, std::shared_ptr<DMZ> dmz)
51 : libdap::Structure(n), DmrppCommon(std::move(dmz)) { }
52 DmrppStructure(
const std::string &n,
const std::string &d, std::shared_ptr<DMZ> dmz)
53 : libdap::Structure(n, d), DmrppCommon(std::move(dmz)) { }
54 DmrppStructure(
const DmrppStructure &) =
default;
56 ~DmrppStructure()
override =
default;
58 DmrppStructure &operator=(
const DmrppStructure &rhs);
60 libdap::BaseType *ptr_duplicate()
override {
61 return new DmrppStructure(*
this);
65 void set_send_p(
bool state)
override;
67 void print_dap4(libdap::XMLWriter &writer,
bool constrained =
false)
override;
69 void dump(
ostream & strm)
const override;
70 vector<char> & get_structure_str_buffer() {
return d_structure_str_buf; }
72 void set_special_structure_flag(
bool is_special_struct) {is_special_structure = is_special_struct; }
73 bool get_special_structure_flag()
const {
return is_special_structure; }