forked from Mirrorlandia_minetest/minetest
Make AreaStore cache setting private
This commit is contained in:
parent
095db16990
commit
f021db7243
@ -112,14 +112,14 @@ void AreaStore::serialize(std::ostream &os) const
|
|||||||
|
|
||||||
void AreaStore::invalidateCache()
|
void AreaStore::invalidateCache()
|
||||||
{
|
{
|
||||||
if (cache_enabled) {
|
if (m_cache_enabled) {
|
||||||
m_res_cache.invalidate();
|
m_res_cache.invalidate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AreaStore::setCacheParams(bool enabled, u8 block_radius, size_t limit)
|
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_cacheblock_radius = MYMAX(block_radius, 16);
|
||||||
m_res_cache.setLimit(MYMAX(limit, 20));
|
m_res_cache.setLimit(MYMAX(limit, 20));
|
||||||
invalidateCache();
|
invalidateCache();
|
||||||
@ -148,7 +148,7 @@ void AreaStore::cacheMiss(void *data, const v3s16 &mpos, std::vector<Area *> *de
|
|||||||
|
|
||||||
void AreaStore::getAreasForPos(std::vector<Area *> *result, v3s16 pos)
|
void AreaStore::getAreasForPos(std::vector<Area *> *result, v3s16 pos)
|
||||||
{
|
{
|
||||||
if (cache_enabled) {
|
if (m_cache_enabled) {
|
||||||
v3s16 mblock = getContainerPos(pos, m_cacheblock_radius);
|
v3s16 mblock = getContainerPos(pos, m_cacheblock_radius);
|
||||||
const std::vector<Area *> *pre_list = m_res_cache.lookupCache(mblock);
|
const std::vector<Area *> *pre_list = m_res_cache.lookupCache(mblock);
|
||||||
|
|
||||||
|
@ -62,7 +62,6 @@ protected:
|
|||||||
|
|
||||||
// TODO change to unordered_map when we can
|
// TODO change to unordered_map when we can
|
||||||
std::map<u32, Area> areas_map;
|
std::map<u32, Area> areas_map;
|
||||||
bool cache_enabled; // don't write to this from subclasses, only read.
|
|
||||||
public:
|
public:
|
||||||
// Updates the area's ID
|
// Updates the area's ID
|
||||||
virtual bool insertArea(Area *a) = 0;
|
virtual bool insertArea(Area *a) = 0;
|
||||||
@ -83,10 +82,10 @@ public:
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
AreaStore() :
|
AreaStore() :
|
||||||
cache_enabled(true),
|
|
||||||
m_cacheblock_radius(64),
|
m_cacheblock_radius(64),
|
||||||
m_res_cache(1000, &cacheMiss, this),
|
m_res_cache(1000, &cacheMiss, this),
|
||||||
m_next_id(0)
|
m_next_id(0),
|
||||||
|
m_cache_enabled(true)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,7 +102,7 @@ private:
|
|||||||
u8 m_cacheblock_radius; // if you modify this, call invalidateCache()
|
u8 m_cacheblock_radius; // if you modify this, call invalidateCache()
|
||||||
LRUCache<v3s16, std::vector<Area *> > m_res_cache;
|
LRUCache<v3s16, std::vector<Area *> > m_res_cache;
|
||||||
u32 m_next_id;
|
u32 m_next_id;
|
||||||
|
bool m_cache_enabled;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user