mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-18 19:35:42 +00:00
28 lines
1.1 KiB
C++
28 lines
1.1 KiB
C++
#ifndef __SAVINGSYSTEM_H
|
|
#define __SAVINGSYSTEM_H
|
|
|
|
#include "Common.h"
|
|
|
|
// to evenly distribute saving players to db
|
|
|
|
class SavingSystemMgr
|
|
{
|
|
public:
|
|
static void Update(uint32 diff);
|
|
|
|
static uint32 GetSavingCurrentValue() { return m_savingCurrentValue; } // modified only during single thread
|
|
static uint32 GetSavingMaxValue() { return m_savingMaxValueAssigned; } // modified only during single thread
|
|
static void IncreaseSavingCurrentValue(uint32 inc) { m_savingCurrentValue += inc; } // used and modified only during single thread
|
|
static uint32 IncreaseSavingMaxValue(uint32 inc) { TRINITY_GUARD(ACE_Thread_Mutex, _savingLock); return (m_savingMaxValueAssigned += inc); }
|
|
static void InsertToSavingSkipListIfNeeded(uint32 id) { if (id > m_savingCurrentValue) { TRINITY_GUARD(ACE_Thread_Mutex, _savingLock); m_savingSkipList.push_back(id); } }
|
|
|
|
protected:
|
|
static uint32 m_savingCurrentValue;
|
|
static uint32 m_savingMaxValueAssigned;
|
|
static uint32 m_savingDiffSum;
|
|
static std::list<uint32> m_savingSkipList;
|
|
static ACE_Thread_Mutex _savingLock;
|
|
};
|
|
|
|
#endif
|