X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Femerge.h;h=1bac4b70830d968156be7b636d214541dcde3f5a;hb=refs%2Fheads%2Fmaster;hp=aac3e7dd3b018887fb7ed29ece07cdcb2bf13b47;hpb=7824a4956bf489b4e2cc35e0c97272eee06be6ba;p=dragonfireclient.git diff --git a/src/emerge.h b/src/emerge.h index aac3e7dd3..1bac4b708 100644 --- a/src/emerge.h +++ b/src/emerge.h @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "network/networkprotocol.h" #include "irr_v3d.h" #include "util/container.h" +#include "util/metricsbackend.h" #include "mapgen/mapgen.h" // for MapgenParams #include "map.h" @@ -69,6 +70,14 @@ enum EmergeAction { EMERGE_GENERATED, }; +const static std::string emergeActionStrs[] = { + "cancelled", + "errored", + "from_memory", + "from_disk", + "generated", +}; + // Callback typedef void (*EmergeCompletionCallback)( v3s16 blockpos, EmergeAction action, void *param); @@ -138,7 +147,7 @@ class EmergeManager { MapSettingsManager *map_settings_mgr; // Methods - EmergeManager(Server *server); + EmergeManager(Server *server, MetricsBackend *mb); ~EmergeManager(); DISABLE_CLASS_COPY(EmergeManager); @@ -174,13 +183,12 @@ class EmergeManager { EmergeCompletionCallback callback, void *callback_param); - v3s16 getContainingChunk(v3s16 blockpos); + bool isBlockInQueue(v3s16 pos); Mapgen *getCurrentMapgen(); // Mapgen helpers methods int getSpawnLevelAtPoint(v2s16 p); - int getGroundLevelAtPoint(v2s16 p); bool isBlockUnderground(v3s16 blockpos); static v3s16 getContainingChunk(v3s16 blockpos, s16 chunksize); @@ -192,11 +200,14 @@ class EmergeManager { std::mutex m_queue_mutex; std::map m_blocks_enqueued; - std::unordered_map m_peer_queue_count; + std::unordered_map m_peer_queue_count; - u16 m_qlimit_total; - u16 m_qlimit_diskonly; - u16 m_qlimit_generate; + u32 m_qlimit_total; + u32 m_qlimit_diskonly; + u32 m_qlimit_generate; + + // Emerge metrics + MetricCounterPtr m_completed_emerge_counter[5]; // Managers of various map generation-related components // Note that each Mapgen gets a copy(!) of these to work with @@ -219,5 +230,7 @@ class EmergeManager { bool popBlockEmergeData(v3s16 pos, BlockEmergeData *bedata); + void reportCompletedEmerge(EmergeAction action); + friend class EmergeThread; };