bes
Updated for version 3.20.5
GridAggregateOnOuterDimension.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) 2009 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__GRID_AGGREGATE_ON_OUTER_DIMENSION_H__
30
#define __AGG_UTIL__GRID_AGGREGATE_ON_OUTER_DIMENSION_H__
31
32
#include <memory>
33
#include <string>
34
#include <vector>
35
36
#include "AggregationUtil.h"
// agg_util
37
#include "AggMemberDataset.h"
// agg_util
38
#include "Dimension.h"
// agg_util
39
#include "DDSLoader.h"
// agg_util
40
#include <Grid.h>
// libdap
41
#include "GridAggregationBase.h"
// agg_util
42
43
namespace
libdap
{
44
class
Array;
45
class
Grid;
46
}
47
48
using
std::string;
49
using
std::vector;
50
using
libdap::Array;
51
using
libdap::Grid;
52
53
namespace
agg_util
{
82
class
GridAggregateOnOuterDimension
:
public
GridAggregationBase
{
83
public
:
92
GridAggregateOnOuterDimension
(
const
Grid& proto,
const
Dimension
& newDim,
const
AMDList& memberDatasets,
93
const
DDSLoader
& loaderProto);
94
95
GridAggregateOnOuterDimension
(
const
GridAggregateOnOuterDimension
& proto);
96
97
virtual
~
GridAggregateOnOuterDimension
();
98
99
virtual
GridAggregateOnOuterDimension
* ptr_duplicate();
100
101
GridAggregateOnOuterDimension
& operator=(
const
GridAggregateOnOuterDimension
& rhs);
102
103
protected
:
104
// Subclass Impl
105
116
virtual
void
transferConstraintsToSubGridHook
(Grid* pSubGrid);
117
118
virtual
const
Dimension
&
getAggregationDimension
()
const
;
119
120
private
:
121
// helpers
122
124
void
duplicate(
const
GridAggregateOnOuterDimension
& rhs);
125
127
void
cleanup()
throw
();
128
134
void
createRep(
const
AMDList& memberDatasets);
135
136
// Local helpers called from transferConstraintsToSubGridMapsHook()
137
void
transferConstraintsToSubGridMaps(Grid* pSubGrid);
138
void
transferConstraintsToSubGridArray(Grid* pSubGrid);
139
140
private
:
141
// data rep
142
// The new outer dimension description
143
Dimension
_newDim;
144
145
};
146
147
}
148
149
#endif // __AGG_UTIL__GRID_AGGREGATE_ON_OUTER_DIMENSION_H__
agg_util::GridAggregationBase
Definition:
GridAggregationBase.h:46
agg_util::DDSLoader
Definition:
DDSLoader.h:62
agg_util::Dimension
Definition:
Dimension.h:49
agg_util::GridAggregateOnOuterDimension::transferConstraintsToSubGridHook
virtual void transferConstraintsToSubGridHook(Grid *pSubGrid)
Definition:
GridAggregateOnOuterDimension.cc:146
agg_util
Helper class for temporarily hijacking an existing dhi to load a DDX response for one particular file...
Definition:
AggMemberDataset.cc:38
libdap
Definition:
BESDapFunctionResponseCache.h:35
agg_util::GridAggregateOnOuterDimension::GridAggregateOnOuterDimension
GridAggregateOnOuterDimension(const Grid &proto, const Dimension &newDim, const AMDList &memberDatasets, const DDSLoader &loaderProto)
Definition:
GridAggregateOnOuterDimension.cc:69
agg_util::GridAggregateOnOuterDimension
Definition:
GridAggregateOnOuterDimension.h:82
agg_util::GridAggregateOnOuterDimension::getAggregationDimension
virtual const Dimension & getAggregationDimension() const
Definition:
GridAggregateOnOuterDimension.cc:155
modules
ncml_module
GridAggregateOnOuterDimension.h
Generated by
1.8.16