3#ifndef ENGINE_CLIENT_SERVERBROWSER_H
4#define ENGINE_CLIENT_SERVERBROWSER_H
149 void Clear()
override;
151 bool Empty()
const override;
154 const std::vector<CCommunityId> &
Entries()
const;
165 void Clear()
override;
167 bool Empty()
const override;
187 void Clear()
override;
189 bool Empty()
const override;
195 std::map<CCommunityId, std::set<CCommunityCountryName>>
m_Entries;
210 void Clear()
override;
212 bool Empty()
const override;
218 std::map<CCommunityId, std::set<CCommunityTypeName>>
m_Entries;
280 const std::vector<CCommunity> &
Communities()
const override;
const SHA256_DIGEST SHA256_ZEROED
Definition hash.cpp:6
Definition serverbrowser.h:250
int NumServers() const override
Definition serverbrowser.h:263
CFavoriteCommunityFilterList & FavoriteCommunitiesFilter() override
Definition serverbrowser.h:292
static void Con_RemoveExcludedType(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:197
CExcludedCommunityFilterList & CommunitiesFilter() override
Definition serverbrowser.h:293
CExcludedCommunityCountryFilterList m_CountriesFilter
Definition serverbrowser.h:347
int64_t m_BroadcastTime
Definition serverbrowser.h:370
void OnServerInfoUpdate(const NETADDR &Addr, int Token, const CServerInfo *pInfo)
Definition serverbrowser.cpp:888
CServerEntry * ReplaceEntry(CServerEntry *pEntry, const NETADDR *pAddrs, int NumAddrs)
Definition serverbrowser.cpp:860
static bool ParseCommunityServers(CCommunity *pCommunity, const json_value &Servers)
Definition serverbrowser.cpp:1408
IFavorites * m_pFavorites
Definition serverbrowser.h:324
static void Con_RemoveFavoriteCommunity(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:140
void RemoveRequest(CServerEntry *pEntry)
Definition serverbrowser.cpp:644
bool IsGettingServerlist() const override
Definition serverbrowser.cpp:1698
int Players(const CServerInfo &Item) const override
Definition serverbrowser.cpp:310
CCommunityCache m_CommunityCache
Definition serverbrowser.h:344
static void ConfigSaveCallback(IConfigManager *pConfigManager, void *pUserData)
Definition serverbrowser.cpp:122
int m_ServerlistType
Definition serverbrowser.h:369
void RequestCurrentServer(const NETADDR &Addr) const
Definition serverbrowser.cpp:1123
bool SortCompareName(int Index1, int Index2) const
Definition serverbrowser.cpp:347
int LoadingProgression() const override
Definition serverbrowser.cpp:1708
void UpdateFromHttp()
Definition serverbrowser.cpp:1138
int GenerateToken(const NETADDR &Addr) const
Definition serverbrowser.cpp:327
SHA256_DIGEST DDNetInfoSha256() const override
Definition serverbrowser.h:288
static void Con_LeakIpAddress(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:207
const CExcludedCommunityTypeFilterList & TypesFilter() const override
Definition serverbrowser.h:299
void UpdateServerRank(CServerInfo *pInfo) const
Definition serverbrowser.cpp:1659
void SetLatency(NETADDR Addr, int Latency)
Definition serverbrowser.cpp:780
void LoadDDNetServers()
Definition serverbrowser.cpp:1493
IConfigManager * m_pConfigManager
Definition serverbrowser.h:320
void UpdateServerFriends(CServerInfo *pInfo) const
Definition serverbrowser.cpp:1628
const char * m_pHttpPrevBestUrl
Definition serverbrowser.h:332
int m_CurrentMaxRequests
Definition serverbrowser.h:361
bool IsRefreshing() const override
Definition serverbrowser.cpp:1693
int * m_pSortedServerlist
Definition serverbrowser.h:336
void LoadDDNetLocation()
Definition serverbrowser.cpp:1395
IServerBrowserPingCache * m_pPingCache
Definition serverbrowser.h:331
bool IsRegistered(const NETADDR &Addr)
Definition serverbrowser.cpp:2348
const CCommunity * Community(const char *pCommunityId) const override
Definition serverbrowser.cpp:1745
const ICommunityCache & CommunityCache() const override
Definition serverbrowser.h:291
void SetBaseInfo(class CNetClient *pClient, const char *pNetVersion)
Definition serverbrowser.cpp:87
bool IsServerlistError() const override
Definition serverbrowser.cpp:1703
const CServerInfo * SortedGet(int Index) const override
Definition serverbrowser.cpp:320
static bool ParseCommunityFinishes(CCommunity *pCommunity, const json_value &Finishes)
Definition serverbrowser.cpp:1478
void CleanUp()
Definition serverbrowser.cpp:1246
std::unordered_map< NETADDR, int > m_ByAddr
Definition serverbrowser.h:337
int m_NumRequests
Definition serverbrowser.h:355
CServerEntry * m_pFirstReqServer
Definition serverbrowser.h:353
std::vector< CCommunity > m_vCommunities
Definition serverbrowser.h:339
CServerEntry ** m_ppServerlist
Definition serverbrowser.h:335
unsigned CurrentCommunitiesHash() const override
Definition serverbrowser.cpp:1801
void UpdateServerCommunity(CServerInfo *pInfo) const
Definition serverbrowser.cpp:1641
CFavoriteCommunityFilterList m_FavoriteCommunitiesFilter
Definition serverbrowser.h:345
IFriends * m_pFriends
Definition serverbrowser.h:323
void RegisterCommands()
Definition serverbrowser.cpp:108
CServerEntry * m_pLastReqServer
Definition serverbrowser.h:354
int m_NumSortedServers
Definition serverbrowser.h:363
void Filter()
Definition serverbrowser.cpp:415
int NumSortedPlayers() const override
Definition serverbrowser.h:267
bool SortComparePing(int Index1, int Index2) const
Definition serverbrowser.cpp:363
int NumSortedServers() const override
Definition serverbrowser.h:266
void SetInfo(CServerEntry *pEntry, const CServerInfo &Info) const
Definition serverbrowser.cpp:706
SHA256_DIGEST m_DDNetInfoSha256
Definition serverbrowser.h:351
CServerEntry * Add(const NETADDR *pAddrs, int NumAddrs)
Definition serverbrowser.cpp:816
IStorage * m_pStorage
Definition serverbrowser.h:325
const std::vector< CCommunity > & Communities() const override
Definition serverbrowser.cpp:1740
int m_NumSortedServersCapacity
Definition serverbrowser.h:364
CExcludedCommunityTypeFilterList m_TypesFilter
Definition serverbrowser.h:348
void RequestResort()
Definition serverbrowser.h:261
CExcludedCommunityCountryFilterList & CountriesFilter() override
Definition serverbrowser.h:294
bool SortCompareNumFriends(int Index1, int Index2) const
Definition serverbrowser.cpp:391
bool SortCompareMap(int Index1, int Index2) const
Definition serverbrowser.cpp:356
void RequestImpl(const NETADDR &Addr, CServerEntry *pEntry, int *pBasicToken, int *pToken, bool RandomToken) const
Definition serverbrowser.cpp:1053
std::unordered_map< NETADDR, CCommunityServer > m_CommunityServersByAddr
Definition serverbrowser.h:340
int SortHash() const
Definition serverbrowser.cpp:597
std::vector< const CCommunity * > CurrentCommunities() const override
Definition serverbrowser.cpp:1782
void RequestCurrentServerWithRandomToken(const NETADDR &Addr, int *pBasicToken, int *pToken) const
Definition serverbrowser.cpp:1128
int m_NumSortedPlayers
Definition serverbrowser.h:365
void Refresh(int Type, bool Force=false) override
Definition serverbrowser.cpp:983
bool SortCompareNumClients(int Index1, int Index2) const
Definition serverbrowser.cpp:384
static int GetBasicToken(int Token)
Definition serverbrowser.cpp:337
void QueueRequest(CServerEntry *pEntry)
Definition serverbrowser.cpp:674
void UpdateServerFilteredPlayers(CServerInfo *pInfo) const
Definition serverbrowser.cpp:1615
void CleanFilters() override
Definition serverbrowser.cpp:2337
bool DDNetInfoAvailable() const override
Definition serverbrowser.h:287
virtual ~CServerBrowser()
Definition serverbrowser.cpp:75
int Max(const CServerInfo &Item) const override
Definition serverbrowser.cpp:315
IEngine * m_pEngine
Definition serverbrowser.h:322
std::vector< const CCommunity * > SelectedCommunities() const override
Definition serverbrowser.cpp:1753
static void Con_AddFavoriteCommunity(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:131
CNetClient * m_pNetClient
Definition serverbrowser.h:319
const json_value * LoadDDNetInfo()
Definition serverbrowser.cpp:1352
int m_NumServers
Definition serverbrowser.h:366
char m_aNetVersion[128]
Definition serverbrowser.h:327
static void Con_RemoveExcludedCountry(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:177
CExcludedCommunityTypeFilterList & TypesFilter() override
Definition serverbrowser.h:295
bool SortCompareNumPlayersAndPing(int Index1, int Index2) const
Definition serverbrowser.cpp:402
int m_NumServerCapacity
Definition serverbrowser.h:367
const CExcludedCommunityCountryFilterList & CountriesFilter() const override
Definition serverbrowser.h:298
const CFavoriteCommunityFilterList & FavoriteCommunitiesFilter() const override
Definition serverbrowser.h:296
IHttp * m_pHttpClient
Definition serverbrowser.h:326
json_value * m_pDDNetInfo
Definition serverbrowser.h:350
void SetHttpInfo(const CServerInfo *pInfo)
int m_Sorthash
Definition serverbrowser.h:358
bool m_NeedResort
Definition serverbrowser.h:357
bool ValidateCountryName(const char *pCountryName) const
Definition serverbrowser.cpp:300
const char * GetTutorialServer() override
Definition serverbrowser.cpp:1665
void OnInit()
Definition serverbrowser.cpp:103
void LoadDDNetInfoJson()
Definition serverbrowser.cpp:1365
CServerBrowser()
Definition serverbrowser.cpp:54
static void Con_RemoveExcludedCommunity(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:158
bool SortCompareNumPlayers(int Index1, int Index2) const
Definition serverbrowser.cpp:377
CServerEntry * Find(const NETADDR &Addr) override
Definition serverbrowser.cpp:664
CExcludedCommunityFilterList m_CommunitiesFilter
Definition serverbrowser.h:346
IConsole * m_pConsole
Definition serverbrowser.h:321
static void Con_AddExcludedCommunity(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:149
CHeap m_ServerlistHeap
Definition serverbrowser.h:334
bool SortCompareGametype(int Index1, int Index2) const
Definition serverbrowser.cpp:370
bool ValidateTypeName(const char *pTypeName) const
Definition serverbrowser.cpp:305
static void Con_AddExcludedType(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:187
IServerBrowserHttp * m_pHttp
Definition serverbrowser.h:330
bool m_RefreshingHttp
Definition serverbrowser.h:329
void Update()
Definition serverbrowser.cpp:1260
bool ValidateCommunityId(const char *pCommunityId) const
Definition serverbrowser.cpp:295
void Sort()
Definition serverbrowser.cpp:614
unsigned char m_aTokenSeed[16]
Definition serverbrowser.h:371
void SetCurrentServerPing(const NETADDR &Addr, int Ping)
Definition serverbrowser.cpp:1133
static int GetExtraToken(int Token)
Definition serverbrowser.cpp:342
static void Con_AddExcludedCountry(IConsole::IResult *pResult, void *pUserData)
Definition serverbrowser.cpp:167
ICommunityCache & CommunityCache() override
Definition serverbrowser.h:290
int m_OwnLocation
Definition serverbrowser.h:342
std::vector< const CCommunity * > FavoriteCommunities() const override
Definition serverbrowser.cpp:1766
int GetCurrentType() override
Definition serverbrowser.h:315
const CExcludedCommunityFilterList & CommunitiesFilter() const override
Definition serverbrowser.h:297
Definition serverbrowser.h:25
@ LOC_UNKNOWN
Definition serverbrowser.h:29
@ MAX_COMMUNITY_ID_LENGTH
Definition serverbrowser.h:61
@ MAX_COMMUNITY_TYPE_LENGTH
Definition serverbrowser.h:63
@ MAX_COMMUNITY_COUNTRY_LENGTH
Definition serverbrowser.h:62
Definition favorites.h:14
Definition serverbrowser.h:245
Definition serverbrowser_http.h:11
Definition serverbrowser_ping_cache.h:9
Definition serverbrowser.h:306
Definition serverbrowser.h:267
@ NUM_TYPES
Definition serverbrowser.h:299
static constexpr const char * COMMUNITY_ALL
Definition serverbrowser.h:326
struct _json_value json_value
Definition serverbrowser.h:17
int str_comp(const char *a, const char *b)
Definition system.cpp:3324
int str_copy(char *dst, const char *src, int dst_size)
Definition system.cpp:3039
unsigned str_quickhash(const char *str)
Definition system.cpp:4438