Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
WardenCheckMgr.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_WARDENCHECKMGR_H
7#define SF_WARDENCHECKMGR_H
8
10#include "Platform/Singleton.h"
11#include <map>
12
19
21{
24 uint32 Address; // PROC_CHECK, MEM_CHECK, PAGE_CHECK
25 uint8 Length; // PROC_CHECK, MEM_CHECK, PAGE_CHECK
26 std::string Str; // LUA, MPQ, DRIVER
27 std::string Comment;
30};
31
33{
34 BigNumber Result; // MEM_CHECK
35};
36
38{
39 friend class Skyfire::Singleton<WardenCheckMgr, Skyfire::NullMutex>;
42
43public:
44 // We have a linear key without any gaps, so we use vector for fast access
45 typedef std::vector<WardenCheck*> CheckContainer;
46 typedef std::map<uint32, WardenCheckResult*> CheckResultContainer;
47
50
51 std::vector<uint16> MemChecksIdPool;
52 std::vector<uint16> OtherChecksIdPool;
53
54 void LoadWardenChecks();
56
58
59private:
62};
63
64#define sWardenCheckMgr Skyfire::Singleton<WardenCheckMgr, Skyfire::NullMutex>::instance()
65
66#endif
std::uint8_t uint8
Definition Define.h:79
std::uint32_t uint32
Definition Define.h:77
std::uint16_t uint16
Definition Define.h:78
WardenActions
@ WARDEN_ACTION_KICK
@ WARDEN_ACTION_BAN
@ WARDEN_ACTION_LOG
CheckContainer CheckStore
std::vector< WardenCheck * > CheckContainer
Skyfire::SharedMutex _checkStoreLock
std::vector< uint16 > OtherChecksIdPool
WardenCheckResult * GetWardenResultById(uint16 Id)
std::vector< uint16 > MemChecksIdPool
WardenCheck * GetWardenDataById(uint16 Id)
CheckResultContainer CheckResultStore
std::map< uint32, WardenCheckResult * > CheckResultContainer
std::shared_mutex SharedMutex
Definition Threading.h:15
std::string Str
std::string Comment
enum WardenActions Action
BigNumber Data