cmFiletimeCache: Add cmFiletimeCache::Remove method

This commit is contained in:
Sebastian Holtermann
2019-03-27 13:43:08 +01:00
parent 18c30786a9
commit 5f6c236481
2 changed files with 16 additions and 6 deletions

View File

@@ -14,8 +14,8 @@ bool cmFileTimeCache::Load(std::string const& fileName, cmFileTime& fileTime)
{
// Use the stored time if available.
{
auto fit = this->FileTimes.find(fileName);
if (fit != this->FileTimes.end()) {
auto fit = this->Cache.find(fileName);
if (fit != this->Cache.end()) {
fileTime = fit->second;
return true;
}
@@ -25,10 +25,15 @@ bool cmFileTimeCache::Load(std::string const& fileName, cmFileTime& fileTime)
return false;
}
// Store file time in cache
this->FileTimes[fileName] = fileTime;
this->Cache[fileName] = fileTime;
return true;
}
bool cmFileTimeCache::Remove(std::string const& fileName)
{
return (this->Cache.erase(fileName) != 0);
}
bool cmFileTimeCache::Compare(std::string const& f1, std::string const& f2,
int* result)
{

View File

@@ -5,7 +5,7 @@
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmFileTime.h"
#include "cmFileTime.h" // IWYU pragma: keep
#include <string>
#include <unordered_map>
@@ -27,6 +27,12 @@ public:
*/
bool Load(std::string const& fileName, cmFileTime& fileTime);
/**
* @brief Removes a file time from the cache
* @return true if the file was found in the cache and removed
*/
bool Remove(std::string const& fileName);
/**
* @brief Compare file modification times.
* @return true for successful comparison and false for error.
@@ -44,8 +50,7 @@ public:
bool DifferS(std::string const& f1, std::string const& f2);
private:
typedef std::unordered_map<std::string, cmFileTime> FileTimeMap;
FileTimeMap FileTimes;
std::unordered_map<std::string, cmFileTime> Cache;
};
#endif