1#include "MemoryCache.h"
4Cogs::Core::TerrainProvider::MemoryCache::~MemoryCache()
8bool Cogs::Core::TerrainProvider::MemoryCache::getTile(Memory::MemoryBuffer& contents, MimeType& kind,
const TileId&
id)
10 Cogs::LockGuard guard(mutex);
12 if (
auto it = items.find(tileKey(
id)); it != items.end()) {
13 auto& item = it->second;
15 contents.resize(item.contents.size(),
false);
16 std::memcpy(contents.data(), item.contents.data(), item.contents.size());
22bool Cogs::Core::TerrainProvider::MemoryCache::storeTile(
const Memory::MemoryBuffer& contents, MimeType kind,
const TileId&
id, StringView )
24 if (contents.size() == 0)
return true;
26 Cogs::LockGuard guard(mutex);
27 if (
auto it = items.find(tileKey(
id)); it != items.end()) {
28 auto& item = it->second;
30 item.contents.resize(contents.size());
31 std::memcpy(item.contents.data(), contents.data(),contents.size());
39 item.contents.resize(contents.size());
40 std::memcpy(item.contents.data(), contents.data(), contents.size());
41 items[tileKey(
id)] = std::move(item);