18#ifndef DB2HotfixGenerator_h__
19#define DB2HotfixGenerator_h__
22#include <initializer_list>
27 static void LogMissingRecord(std::string
const& storageName,
uint32 recordId);
28 static void AddClientHotfix(
uint32 tableHash,
uint32 recordId);
38 void ApplyHotfix(std::initializer_list<uint32> ids,
void(*fixer)(T*),
bool notifyClient =
false) {
ApplyHotfix(ids.begin(), ids.end(), fixer, notifyClient); }
40 template<class I, class = typename std::enable_if<!std::is_void<decltype(*std::begin(std::declval<I>()))>::value>::type>
41 void ApplyHotfix(I
const& ids,
void(*fixer)(T*),
bool notifyClient =
false) {
ApplyHotfix(std::begin(ids), std::end(ids), fixer, notifyClient); }
51 T
const* entry =
_storage.LookupEntry(
id);
58 fixer(
const_cast<T*
>(entry));
static void AddClientHotfix(uint32 tableHash, uint32 recordId)
static void LogMissingRecord(std::string const &storageName, uint32 recordId)
void ApplyHotfix(uint32 id, void(*fixer)(T *), bool notifyClient=false)
DB2HotfixGenerator(DB2Storage< T > &storage)
void ApplyHotfix(uint32 const *begin, uint32 const *end, void(*fixer)(T *), bool notifyClient)
uint32 GetAppliedHotfixesCount() const
void ApplyHotfix(I const &ids, void(*fixer)(T *), bool notifyClient=false)
DB2Storage< T > & _storage
void ApplyHotfix(std::initializer_list< uint32 > ids, void(*fixer)(T *), bool notifyClient=false)