bes
Updated for version 3.20.6
AggMemberDatasetWithDimensionCacheBase.h
1
// 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_WITH_DIMENSION_CACHE_BASE_H__
30
#define __AGG_UTIL__AGG_MEMBER_DATASET_WITH_DIMENSION_CACHE_BASE_H__
31
32
#include "AggMemberDataset.h"
33
#include <vector>
34
35
namespace
libdap
{
36
class
BaseType;
37
}
38
39
namespace
agg_util
{
40
41
class
AggMemberDatasetWithDimensionCacheBase
:
public
AggMemberDataset
{
42
public
:
43
AggMemberDatasetWithDimensionCacheBase
(
const
std::string& location);
44
45
AggMemberDatasetWithDimensionCacheBase
(
const
AggMemberDatasetWithDimensionCacheBase
& proto);
46
47
virtual
~
AggMemberDatasetWithDimensionCacheBase
();
48
49
AggMemberDatasetWithDimensionCacheBase
& operator=(
const
AggMemberDatasetWithDimensionCacheBase
& rhs);
50
51
/* This will stay pure virtual for subclasses */
52
/* virtual const libdap::DDS* getDDS() = 0; */
53
54
virtual
unsigned
int
getCachedDimensionSize
(
const
std::string& dimName)
const
;
55
virtual
bool
isDimensionCached
(
const
std::string& dimName)
const
;
56
virtual
void
setDimensionCacheFor
(
const
Dimension
& dim,
bool
throwIfFound);
57
virtual
void
fillDimensionCacheByUsingDDS
();
58
virtual
void
flushDimensionCache
();
59
61
virtual
void
saveDimensionCache
(std::ostream& ostr);
62
virtual
void
loadDimensionCache
(std::istream& istr);
63
64
private
:
65
// Helper Functions
66
70
Dimension
* findDimension(
const
std::string& dimName);
71
77
void
addDimensionsForVariableRecursive(libdap::BaseType& var);
78
79
void
saveDimensionCacheInternal(std::ostream& ostr);
80
void
loadDimensionCacheInternal(std::istream& istr);
81
82
83
private
:
84
// Data Rep
85
std::vector<Dimension> _dimensionCache;
86
87
};
88
89
}
90
91
#endif
/* __AGG_UTIL__AGG_MEMBER_DATASET_WITH_DIMENSION_CACHE_BASE_H__ */
agg_util::AggMemberDatasetWithDimensionCacheBase
Definition:
AggMemberDatasetWithDimensionCacheBase.h:41
agg_util::AggMemberDatasetWithDimensionCacheBase::fillDimensionCacheByUsingDDS
virtual void fillDimensionCacheByUsingDDS()
Definition:
AggMemberDatasetWithDimensionCacheBase.cc:146
agg_util::Dimension
Definition:
Dimension.h:49
agg_util::AggMemberDatasetWithDimensionCacheBase::getCachedDimensionSize
virtual unsigned int getCachedDimensionSize(const std::string &dimName) const
Definition:
AggMemberDatasetWithDimensionCacheBase.cc:102
agg_util
Helper class for temporarily hijacking an existing dhi to load a DDX response for one particular file...
Definition:
AggMemberDataset.cc:38
agg_util::AggMemberDatasetWithDimensionCacheBase::flushDimensionCache
virtual void flushDimensionCache()
Definition:
AggMemberDatasetWithDimensionCacheBase.cc:161
libdap
Definition:
BESDapFunctionResponseCache.h:35
agg_util::AggMemberDatasetWithDimensionCacheBase::isDimensionCached
virtual bool isDimensionCached(const std::string &dimName) const
Definition:
AggMemberDatasetWithDimensionCacheBase.cc:116
agg_util::AggMemberDataset
Definition:
AggMemberDataset.h:63
agg_util::AggMemberDatasetWithDimensionCacheBase::setDimensionCacheFor
virtual void setDimensionCacheFor(const Dimension &dim, bool throwIfFound)
Definition:
AggMemberDatasetWithDimensionCacheBase.cc:122
agg_util::AggMemberDatasetWithDimensionCacheBase::loadDimensionCache
virtual void loadDimensionCache(std::istream &istr)
Definition:
AggMemberDatasetWithDimensionCacheBase.cc:173
agg_util::AggMemberDatasetWithDimensionCacheBase::saveDimensionCache
virtual void saveDimensionCache(std::ostream &ostr)
Definition:
AggMemberDatasetWithDimensionCacheBase.cc:167
modules
ncml_module
AggMemberDatasetWithDimensionCacheBase.h
Generated by
1.8.17