void AreaStore::invalidateCache()
{
- if (cache_enabled) {
+ if (m_cache_enabled) {
m_res_cache.invalidate();
}
}
void AreaStore::setCacheParams(bool enabled, u8 block_radius, size_t limit)
{
- cache_enabled = enabled;
+ m_cache_enabled = enabled;
m_cacheblock_radius = MYMAX(block_radius, 16);
m_res_cache.setLimit(MYMAX(limit, 20));
invalidateCache();
void AreaStore::getAreasForPos(std::vector<Area *> *result, v3s16 pos)
{
- if (cache_enabled) {
+ if (m_cache_enabled) {
v3s16 mblock = getContainerPos(pos, m_cacheblock_radius);
const std::vector<Area *> *pre_list = m_res_cache.lookupCache(mblock);
// TODO change to unordered_map when we can
std::map<u32, Area> areas_map;
- bool cache_enabled; // don't write to this from subclasses, only read.
public:
// Updates the area's ID
virtual bool insertArea(Area *a) = 0;
{}
AreaStore() :
- cache_enabled(true),
m_cacheblock_radius(64),
m_res_cache(1000, &cacheMiss, this),
- m_next_id(0)
+ m_next_id(0),
+ m_cache_enabled(true)
{
}
u8 m_cacheblock_radius; // if you modify this, call invalidateCache()
LRUCache<v3s16, std::vector<Area *> > m_res_cache;
u32 m_next_id;
-
+ bool m_cache_enabled;
};