bes  Updated for version 3.20.6
DmrppD4Opaque.h
1 
2 // -*- mode: c++; c-basic-offset:4 -*-
3 
4 // This file is part of the BES
5 
6 // Copyright (c) 2016 OPeNDAP, Inc.
7 // Author: James Gallagher <jgallagher@opendap.org>
8 //
9 // This library is free software; you can redistribute it and/or
10 // modify it under the terms of the GNU Lesser General Public
11 // License as published by the Free Software Foundation; either
12 // version 2.1 of the License, or (at your option) any later version.
13 //
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 // Lesser General Public License for more details.
18 //
19 // You should have received a copy of the GNU Lesser General Public
20 // License along with this library; if not, write to the Free Software
21 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22 //
23 // You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
24 
25 #ifndef _dmrpp_d4opaque_h
26 #define _dmrpp_d4opaque_h 1
27 
28 #include <string>
29 
30 #include <D4Opaque.h>
31 #include "DmrppCommon.h"
32 
33 namespace libdap {
34 class XMLWriter;
35 }
36 
37 namespace dmrpp {
38 
39 class DmrppD4Opaque: public libdap::D4Opaque, public DmrppCommon {
40  void _duplicate(const DmrppD4Opaque &ts);
41 
42  void insert_chunk(Chunk *chunk);
43  void read_chunks_parallel();
44 
45 public:
46  DmrppD4Opaque(const std::string &n);
47  DmrppD4Opaque(const std::string &n, const std::string &d);
48  DmrppD4Opaque(const DmrppD4Opaque &rhs);
49 
50  virtual ~DmrppD4Opaque() {}
51 
52  DmrppD4Opaque &operator=(const DmrppD4Opaque &rhs);
53 
54  virtual libdap::BaseType *ptr_duplicate();
55 
63  virtual unsigned char *get_buf()
64  {
65  return &d_buf[0];
66  }
67 
72  virtual void resize(unsigned long long size)
73  {
74  d_buf.resize(size);
75  }
76 
77  virtual bool read();
78 
79  virtual void print_dap4(libdap::XMLWriter &writer, bool constrained = false)
80  {
81  DmrppCommon::print_dmrpp(writer, constrained);
82  }
83 
84  virtual void dump(ostream & strm) const;
85 };
86 
87 } // namespace dmrpp
88 
89 #endif // _dmrpp_d4opaque_h
dmrpp::DmrppD4Opaque
Definition: DmrppD4Opaque.h:39
dmrpp::Chunk
Definition: Chunk.h:43
dmrpp::DmrppD4Opaque::read
virtual bool read()
Read opaque data.
Definition: DmrppD4Opaque.cc:177
dmrpp::DmrppCommon
Size and offset information of data included in DMR++ files.
Definition: DmrppCommon.h:62
libdap
Definition: BESDapFunctionResponseCache.h:35
dmrpp::DmrppD4Opaque::resize
virtual void resize(unsigned long long size)
Allocate.
Definition: DmrppD4Opaque.h:72
dmrpp::DmrppCommon::print_dmrpp
void print_dmrpp(libdap::XMLWriter &writer, bool constrained=false)
Print the DMR++ response for the Scalar types.
Definition: DmrppCommon.cc:282
dmrpp::DmrppD4Opaque::get_buf
virtual unsigned char * get_buf()
Get a pointer to start of the Opaque data buffer.
Definition: DmrppD4Opaque.h:63