bes  Updated for version 3.20.10
DmrppD4Enum.cc
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 #include "config.h"
26 
27 #include <string>
28 
29 #include <BESError.h>
30 #include <BESDebug.h>
31 
32 #include "DmrppD4Enum.h"
33 
34 using namespace libdap;
35 using namespace std;
36 
37 namespace dmrpp {
38 
39 DmrppD4Enum &
40 DmrppD4Enum::operator=(const DmrppD4Enum &rhs)
41 {
42  if (this == &rhs)
43  return *this;
44 
45  dynamic_cast<D4Enum &>(*this) = rhs; // run Constructor=
46 
47  dynamic_cast<DmrppCommon &>(*this) = rhs;
48  //DmrppCommon::m_duplicate_common(rhs);
49 
50  return *this;
51 }
52 
53 bool
54 DmrppD4Enum::read()
55 {
56  BESDEBUG("dmrpp", "Entering " <<__PRETTY_FUNCTION__ << " for '" << name() << "'" << endl);
57 
58  if (!get_chunks_loaded())
59  load_chunks(this);
60 
61  if (read_p())
62  return true;
63 
64  set_value(*reinterpret_cast<dods_enum*>(read_atomic(name())));
65 
66  set_read_p(true);
67 
68  return true;
69 
70 }
71 
72 void
73 DmrppD4Enum::set_send_p(bool state)
74 {
75  if (!get_attributes_loaded())
76  load_attributes(this);
77 
78  D4Enum::set_send_p(state);
79 }
80 
81 void DmrppD4Enum::dump(ostream & strm) const
82 {
83  strm << BESIndent::LMarg << "DmrppD4Enum::dump - (" << (void *) this << ")" << endl;
84  BESIndent::Indent();
85  DmrppCommon::dump(strm);
86  D4Enum::dump(strm);
87  strm << BESIndent::LMarg << "value: " << d_buf << endl;
88  BESIndent::UnIndent();
89 }
90 
91 } // namespace dmrpp