bes
Updated for version 3.20.13
AggMemberDatasetSharedDDSWrapper.h
1
2
// This file is part of the "NcML Module" project, a BES module designed
3
// to allow NcML files to be used to be used as a wrapper to add
4
// AIS to existing datasets of any format.
5
//
6
// Copyright (c) 2010 OPeNDAP, Inc.
7
// Author: Michael Johnson <m.johnson@opendap.org>
8
//
9
// For more information, please also see the main website: http://opendap.org/
10
//
11
// This library is free software; you can redistribute it and/or
12
// modify it under the terms of the GNU Lesser General Public
13
// License as published by the Free Software Foundation; either
14
// version 2.1 of the License, or (at your option) any later version.
15
//
16
// This library is distributed in the hope that it will be useful,
17
// but WITHOUT ANY WARRANTY; without even the implied warranty of
18
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
// Lesser General Public License for more details.
20
//
21
// You should have received a copy of the GNU Lesser General Public
22
// License along with this library; if not, write to the Free Software
23
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24
//
25
// Please see the files COPYING and COPYRIGHT for more information on the GLPL.
26
//
27
// You can contact OPeNDAP, Inc. at PO Box 112, Saunderstown, RI. 02874-0112.
29
#ifndef __AGG_UTIL__AGG_MEMBER_DATASET_SHARED_DDS_WRAPPER_H__
30
#define __AGG_UTIL__AGG_MEMBER_DATASET_SHARED_DDS_WRAPPER_H__
31
32
#include "AggMemberDatasetWithDimensionCacheBase.h"
// super
33
34
namespace
agg_util
35
{
36
// fdecls
37
class
DDSAccessRCInterface;
38
54
class
AggMemberDatasetSharedDDSWrapper
:
public
AggMemberDatasetWithDimensionCacheBase
55
{
56
public
:
57
AggMemberDatasetSharedDDSWrapper
();
58
explicit
AggMemberDatasetSharedDDSWrapper
(
const
DDSAccessRCInterface
* pDDSHolder);
59
~AggMemberDatasetSharedDDSWrapper
()
override
;
60
61
AggMemberDatasetSharedDDSWrapper
(
const
AggMemberDatasetSharedDDSWrapper
& proto);
62
AggMemberDatasetSharedDDSWrapper
& operator=(
const
AggMemberDatasetSharedDDSWrapper
& that);
63
69
const
libdap::DDS*
getDDS
()
override
;
70
71
private
:
72
73
// If _pDDSHolder, unref() and null it.
74
void
cleanup()
noexcept
;
75
76
// If rhs._pDDSHodler, we ref() it
77
// and maintain an alias ourselves.
78
// ASSUMES: !_pDDSHolder
79
void
copyRepFrom(
const
AggMemberDatasetSharedDDSWrapper
& rhs);
80
81
// data rep
82
83
// Invariant: If not-null, we maintain a strong ref() to it
84
// and unref() in cleanup().
85
const
DDSAccessRCInterface
* _pDDSHolder {
nullptr
};
86
87
};
// class AggMemberDatasetSharedDDSWrapper
88
89
}
// namespace agg_util
90
91
#endif
/* __AGG_UTIL__AGG_MEMBER_DATASET_SHARED_DDS_WRAPPER_H__ */
agg_util::AggMemberDatasetSharedDDSWrapper
Definition:
AggMemberDatasetSharedDDSWrapper.h:55
agg_util::AggMemberDatasetSharedDDSWrapper::getDDS
const libdap::DDS * getDDS() override
Definition:
AggMemberDatasetSharedDDSWrapper.cc:77
agg_util::AggMemberDatasetWithDimensionCacheBase
Definition:
AggMemberDatasetWithDimensionCacheBase.h:41
agg_util::DDSAccessRCInterface
Definition:
DDSAccessInterface.h:62
agg_util
Helper class for temporarily hijacking an existing dhi to load a DDX response for one particular file...
Definition:
AggMemberDataset.cc:36
modules
ncml_module
AggMemberDatasetSharedDDSWrapper.h
Generated by
1.9.6