47 using libdap::DataDDS;
58 static const string DEBUG_CHANNEL(
"ncml:2");
62 GridAggregateOnOuterDimension::duplicate(
const GridAggregateOnOuterDimension& rhs)
64 _newDim = rhs._newDim;
76 BESDEBUG(DEBUG_CHANNEL,
"GridAggregateOnOuterDimension() ctor called!" << endl);
78 createRep(memberDatasets);
85 BESDEBUG(DEBUG_CHANNEL,
"GridAggregateOnOuterDimension() copy ctor called!" << endl);
109 BESDEBUG(DEBUG_CHANNEL,
"~GridAggregateOnOuterDimension() dtor called!" << endl);
117 GridAggregateOnOuterDimension::createRep(
const AMDList& memberDatasets)
120 "Replacing the Grid's data Array with an ArrayAggregateOnOuterDimension..." << endl);
123 Array* pArr =
static_cast<Array*
>(array_var());
125 "Expected to find a contained data Array but we did not!");
132 std::auto_ptr<ArrayAggregateOnOuterDimension> aggDataArray(
145 set_array(aggDataArray.get());
149 aggDataArray.release();
153 GridAggregateOnOuterDimension::cleanup() throw()
162 transferConstraintsToSubGridMaps(pSubGrid);
163 transferConstraintsToSubGridArray(pSubGrid);
174 GridAggregateOnOuterDimension::transferConstraintsToSubGridMaps(Grid* pSubGrid)
176 BESDEBUG(DEBUG_CHANNEL,
"Transferring constraints to the subgrid maps..." << endl);
177 Map_iter subGridMapIt = pSubGrid->map_begin();
178 for (Map_iter it = map_begin(); it != map_end(); ++it)
181 if (it == map_begin())
185 Array* subGridMap =
static_cast<Array*
>(*subGridMapIt);
186 Array* superGridMap =
static_cast<Array*
>(*it);
198 GridAggregateOnOuterDimension::transferConstraintsToSubGridArray(Grid* pSubGrid)
200 BESDEBUG(DEBUG_CHANNEL,
"Transferring constraints to the subgrid array..." << endl);
202 Array* pSubGridArray =
static_cast<Array*
>(pSubGrid->get_array());
204 Array* pThisArray =
static_cast<Array*
>(array_var());
virtual ~GridAggregateOnOuterDimension()
#define BESDEBUG_FUNC(channel, info)
class ArrayAggregateOnOuterDimension
#define NCML_ASSERT(cond)
Helper class for temporarily hijacking an existing dhi to load a DDX response for one particular file...
#define NCML_ASSERT_MSG(cond, msg)
class GridAggregateOnOuterDimension : public GridAggregationBase
virtual const Dimension & getAggregationDimension() const
Get the contained aggregation dimension info.
Struct for holding information about a dimension of data, minimally a name and a cardinality (size)...
GridAggregateOnOuterDimension & operator=(const GridAggregateOnOuterDimension &rhs)
GridAggregateOnOuterDimension(const Grid &proto, const Dimension &newDim, const AMDList &memberDatasets, const DDSLoader &loaderProto)
Create the new Grid from the template proto...
virtual GridAggregateOnOuterDimension * ptr_duplicate()
std::vector< RCPtr< AggMemberDataset > > AMDList
static void transferArrayConstraints(libdap::Array *pToArray, const libdap::Array &fromArray, bool skipFirstFromDim, bool skipFirstToDim, bool printDebug=false, const std::string &debugChannel="agg_util")
Copy the constraints from the from Array into the pToArray in Dim_iter order.
#define BESDEBUG(x, y)
macro used to send debug information to the debug stream
GridAggregationBase & operator=(const GridAggregationBase &rhs)
virtual void transferConstraintsToSubGridHook(Grid *pSubGrid)
For the data array and all maps, transfer the constraints from the super grid (ie this) to all the gr...