Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
RealmList.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_REALMLIST_H
7
#define SF_REALMLIST_H
8
9
#include "
Common.h
"
10
#include "
NetworkAddress.h
"
11
#include "
Platform/Singleton.h
"
12
13
enum
RealmFlags
14
{
15
REALM_FLAG_NONE
= 0x00,
16
REALM_FLAG_INVALID
= 0x01,
17
REALM_FLAG_OFFLINE
= 0x02,
18
REALM_FLAG_SPECIFYBUILD
= 0x04,
19
REALM_FLAG_UNK1
= 0x08,
20
REALM_FLAG_UNK2
= 0x10,
21
REALM_FLAG_RECOMMENDED
= 0x20,
22
REALM_FLAG_NEW
= 0x40,
23
REALM_FLAG_FULL
= 0x80
24
};
25
26
// Storage object for a realm
27
struct
Realm
28
{
29
Realm
() :
icon
(0),
flag
(
REALM_FLAG_NONE
),
timezone
(0),
m_ID
(0),
30
allowedSecurityLevel
(
AccountTypes
::
SEC_PLAYER
),
populationLevel
(0.0f),
gamebuild
(0) {}
31
Skyfire::Net::Address
ExternalAddress
;
32
Skyfire::Net::Address
LocalAddress
;
33
Skyfire::Net::Address
LocalSubnetMask
;
34
std::string
name
;
35
uint8
icon
;
36
RealmFlags
flag
;
37
uint8
timezone
;
38
uint32
m_ID
;
39
AccountTypes
allowedSecurityLevel
;
40
float
populationLevel
;
41
uint32
gamebuild
;
42
};
43
45
class
RealmList
46
{
47
public
:
48
typedef
std::map<std::string, Realm>
RealmMap
;
49
50
RealmList
();
51
~RealmList
() { }
52
53
void
Initialize
(
uint32
updateInterval);
54
55
void
UpdateIfNeed
();
56
57
void
AddRealm
(
const
Realm
& NewRealm) {
m_realms
[NewRealm.
name
] = NewRealm; }
58
59
RealmMap::const_iterator
begin
()
const
{
return
m_realms
.begin(); }
60
RealmMap::const_iterator
end
()
const
{
return
m_realms
.end(); }
61
uint32
size
()
const
{
return
m_realms
.size(); }
62
63
private
:
64
void
UpdateRealms
(
bool
init =
false
);
65
void
UpdateRealm
(
uint32
id
,
const
std::string& name,
Skyfire::Net::Address
const
& address,
66
Skyfire::Net::Address
const
& localAddr,
Skyfire::Net::Address
const
& localSubmask,
67
uint8
icon,
RealmFlags
flag,
uint8
timezone,
AccountTypes
allowedSecurityLevel,
68
float
popu,
uint32
build);
69
70
RealmMap
m_realms
;
71
uint32
m_UpdateInterval
;
72
time_t
m_NextUpdateTime
;
73
};
74
75
#define sRealmList Skyfire::Singleton<RealmList, Skyfire::NullMutex>::instance()
76
#endif
Common.h
AccountTypes
AccountTypes
Definition
Common.h:129
AccountTypes::SEC_PLAYER
@ SEC_PLAYER
Definition
Common.h:130
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
NetworkAddress.h
RealmFlags
RealmFlags
Definition
RealmList.h:14
REALM_FLAG_NEW
@ REALM_FLAG_NEW
Definition
RealmList.h:22
REALM_FLAG_OFFLINE
@ REALM_FLAG_OFFLINE
Definition
RealmList.h:17
REALM_FLAG_UNK1
@ REALM_FLAG_UNK1
Definition
RealmList.h:19
REALM_FLAG_NONE
@ REALM_FLAG_NONE
Definition
RealmList.h:15
REALM_FLAG_INVALID
@ REALM_FLAG_INVALID
Definition
RealmList.h:16
REALM_FLAG_UNK2
@ REALM_FLAG_UNK2
Definition
RealmList.h:20
REALM_FLAG_RECOMMENDED
@ REALM_FLAG_RECOMMENDED
Definition
RealmList.h:21
REALM_FLAG_FULL
@ REALM_FLAG_FULL
Definition
RealmList.h:23
REALM_FLAG_SPECIFYBUILD
@ REALM_FLAG_SPECIFYBUILD
Definition
RealmList.h:18
Singleton.h
RealmList::m_NextUpdateTime
time_t m_NextUpdateTime
Definition
RealmList.h:72
RealmList::~RealmList
~RealmList()
Definition
RealmList.h:51
RealmList::m_UpdateInterval
uint32 m_UpdateInterval
Definition
RealmList.h:71
RealmList::end
RealmMap::const_iterator end() const
Definition
RealmList.h:60
RealmList::AddRealm
void AddRealm(const Realm &NewRealm)
Definition
RealmList.h:57
RealmList::begin
RealmMap::const_iterator begin() const
Definition
RealmList.h:59
RealmList::UpdateRealm
void UpdateRealm(uint32 id, const std::string &name, Skyfire::Net::Address const &address, Skyfire::Net::Address const &localAddr, Skyfire::Net::Address const &localSubmask, uint8 icon, RealmFlags flag, uint8 timezone, AccountTypes allowedSecurityLevel, float popu, uint32 build)
Definition
RealmList.cpp:21
RealmList::Initialize
void Initialize(uint32 updateInterval)
Definition
RealmList.cpp:13
RealmList::RealmMap
std::map< std::string, Realm > RealmMap
Definition
RealmList.h:48
RealmList::UpdateIfNeed
void UpdateIfNeed()
Definition
RealmList.cpp:44
RealmList::size
uint32 size() const
Definition
RealmList.h:61
RealmList::m_realms
RealmMap m_realms
Definition
RealmList.h:70
RealmList::RealmList
RealmList()
Definition
RealmList.cpp:10
RealmList::UpdateRealms
void UpdateRealms(bool init=false)
Definition
RealmList.cpp:59
Skyfire::Net::Address
Definition
NetworkAddress.h:18
Realm
Definition
RealmList.h:28
Realm::LocalAddress
Skyfire::Net::Address LocalAddress
Definition
RealmList.h:32
Realm::name
std::string name
Definition
RealmList.h:34
Realm::flag
RealmFlags flag
Definition
RealmList.h:36
Realm::allowedSecurityLevel
AccountTypes allowedSecurityLevel
Definition
RealmList.h:39
Realm::icon
uint8 icon
Definition
RealmList.h:35
Realm::timezone
uint8 timezone
Definition
RealmList.h:37
Realm::m_ID
uint32 m_ID
Definition
RealmList.h:38
Realm::populationLevel
float populationLevel
Definition
RealmList.h:40
Realm::ExternalAddress
Skyfire::Net::Address ExternalAddress
Definition
RealmList.h:31
Realm::gamebuild
uint32 gamebuild
Definition
RealmList.h:41
Realm::Realm
Realm()
Definition
RealmList.h:29
Realm::LocalSubnetMask
Skyfire::Net::Address LocalSubnetMask
Definition
RealmList.h:33
src
server
authserver
Realms
RealmList.h
Generated on
for Project SkyFire Core by
1.17.0