1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
#include "EditorConfigCache.h"
#include "fileutils.h"
EditorConfigCache::EditorConfigCache() {}
EditorConfigCache::~EditorConfigCache() {}
bool EditorConfigCache::Get(const wxFileName& filename, clEditorConfigSection& section)
{
wxString key = filename.GetFullPath();
if(m_map.count(key) == 0) return false;
CachedItem& entry = m_map[key];
time_t lastModTimeOnDisk = FileUtils::GetFileModificationTime(entry.section.GetFilename());
if(lastModTimeOnDisk != entry.lastModified) {
// remove this entry and return false
m_map.erase(key);
return false;
}
section = entry.section;
return true;
}
void EditorConfigCache::Add(const wxFileName& filename, const clEditorConfigSection& section)
{
wxString key = filename.GetFullPath();
if(m_map.count(key)) {
m_map.erase(key);
}
CachedItem entry;
entry.lastModified = FileUtils::GetFileModificationTime(section.GetFilename());
entry.section = section;
m_map.insert(std::make_pair(key, entry));
}
void EditorConfigCache::Clear() { m_map.clear(); }
|