destruct static vector and unorderd_map when last RasterContainer is destructed.

This commit is contained in:
Tomonobu Saito 2019-10-04 17:30:35 +09:00
parent f9ee74d78e
commit a587b14006
2 changed files with 10 additions and 1 deletions

View File

@ -126,7 +126,14 @@ class RasterSource
class RasterContainer
{
public:
RasterContainer() = default;
RasterContainer() { ++count; }
~RasterContainer() {
--count;
if (0 == count) {
LoadedSources.clear();
LoadedSourcePaths.clear();
}
}
int LoadRasterSource(const std::string &path_string,
double xmin,
@ -143,6 +150,7 @@ class RasterContainer
private:
static std::vector<RasterSource> LoadedSources;
static std::unordered_map<std::string, int> LoadedSourcePaths;
static int count;
};
}
}

View File

@ -81,6 +81,7 @@ RasterDatum RasterSource::GetRasterInterpolate(const int lon, const int lat) con
// static member of Raster Container
std::vector<RasterSource> RasterContainer::LoadedSources;
std::unordered_map<std::string, int> RasterContainer::LoadedSourcePaths;
int RasterContainer::count = 0;
// Load raster source into memory
int RasterContainer::LoadRasterSource(const std::string &path_string,