Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
MapUpdater.h
Go to the documentation of this file.
1/*
2* This file is part of Project SkyFire https://www.projectskyfire.org.
3* See LICENSE.md file for Copyright information
4*/
5
6#ifndef SF_MAP_UPDATER_H_INCLUDED
7#define SF_MAP_UPDATER_H_INCLUDED
8
9#include <condition_variable>
10#include <mutex>
11
12#include "Define.h"
13#include "DelayExecutor.h"
14
15class Map;
16
18{
19public:
20 MapUpdater();
21 virtual ~MapUpdater();
22 friend class MapUpdateRequest;
23
24 int schedule_update(Map& map, uint32 diff);
25 int wait();
26 int activate(size_t num_threads);
27 int deactivate();
28 bool activated();
30 void ResetExecutorMetrics() { m_executor.ResetMetrics(); }
31
32private:
34 std::mutex Lock;
35 std::condition_variable condition;
37
38 void update_finished();
39};
40
41#endif //_MAP_UPDATER_H_INCLUDED
std::uint32_t uint32
Definition Define.h:77
Definition Map.h:238
DelayExecutorMetricsSnapshot GetExecutorMetricsSnapshot() const
Definition MapUpdater.h:29
int schedule_update(Map &map, uint32 diff)
virtual ~MapUpdater()
int activate(size_t num_threads)
std::condition_variable condition
Definition MapUpdater.h:35
size_t pending_requests
Definition MapUpdater.h:36
bool activated()
std::mutex Lock
Definition MapUpdater.h:34
void update_finished()
friend class MapUpdateRequest
Definition MapUpdater.h:22
DelayExecutor m_executor
Definition MapUpdater.h:33
void ResetExecutorMetrics()
Definition MapUpdater.h:30
int deactivate()