29 #include "AggMemberDatasetUsingLocationRef.h"
31 #include "BESDataDDSResponse.h"
33 #include "NCMLDebug.h"
36 #include "BESStopWatch.h"
40 AggMemberDatasetUsingLocationRef::AggMemberDatasetUsingLocationRef(
const std::string& locationToLoad,
42 AggMemberDatasetWithDimensionCacheBase(locationToLoad), _loader(loaderToUse), _pDataResponse(0)
46 AggMemberDatasetUsingLocationRef::~AggMemberDatasetUsingLocationRef()
51 AggMemberDatasetUsingLocationRef::AggMemberDatasetUsingLocationRef(
const AggMemberDatasetUsingLocationRef& proto) :
52 RCObjectInterface(), AggMemberDatasetWithDimensionCacheBase(proto), _loader(proto._loader), _pDataResponse(0)
56 AggMemberDatasetUsingLocationRef&
57 AggMemberDatasetUsingLocationRef::operator=(
const AggMemberDatasetUsingLocationRef& that)
63 AggMemberDatasetWithDimensionCacheBase::operator=(that);
73 if (!_pDataResponse) {
78 pDDSRet = _pDataResponse->get_dds();
84 void AggMemberDatasetUsingLocationRef::loadDDS()
87 if (BESISDEBUG(TIMING_LOG)) sw.
start(
"AggMemberDatasetUsingLocationRef::loadDDS",
"");
91 THROW_NCML_INTERNAL_ERROR(
"AggMemberDatasetUsingLocationRef():"
92 " got empty location! Cannot load!");
96 std::auto_ptr<BESDapResponse> newResponse = _loader.
makeResponseForType(DDSLoader::eRT_RequestDataDDS);
100 NCML_ASSERT_MSG(_pDataResponse,
101 "AggMemberDatasetUsingLocationRef::loadDDS(): failed to get a BESDataDDSResponse back while loading location="
106 newResponse.release();
108 BESDEBUG(
"ncml",
"Loading loadDDS for aggregation member location = " <<
getLocation() << endl);
112 void AggMemberDatasetUsingLocationRef::cleanup() throw ()
114 SAFE_DELETE(_pDataResponse);
117 void AggMemberDatasetUsingLocationRef::copyRepFrom(
const AggMemberDatasetUsingLocationRef& rhs)
119 _loader = rhs._loader;