mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-31 09:06:46 +00:00
[Performance] Pre-Compute CLE Server Lists (#4838)
* [Performance] Pre-Compute CLE Server Lists * Remove debug
This commit is contained in:
+14
-2
@@ -60,8 +60,6 @@ public:
|
||||
void CLCheckStale();
|
||||
void CLEKeepAlive(uint32 numupdates, uint32* wid);
|
||||
void CLEAdd(uint32 login_server_id, const char* login_server_name, const char* login_name, const char* login_key, int16 world_admin = AccountStatus::Player, uint32 ip_address = 0, uint8 is_local=0);
|
||||
std::vector<uint32_t> GetGuildZoneServers(uint32 guild_id);
|
||||
std::vector<uint32_t> GetZoneServersWithGMs();
|
||||
void UpdateClientGuild(uint32 char_id, uint32 guild_id);
|
||||
bool IsAccountInGame(uint32 iLSID);
|
||||
|
||||
@@ -78,6 +76,15 @@ public:
|
||||
void SendCharacterMessageID(const std::string& character_name, int chat_type, int eqstr_id, std::initializer_list<std::string> args = {});
|
||||
void SendCharacterMessageID(ClientListEntry* character, int chat_type, int eqstr_id, std::initializer_list<std::string> args = {});
|
||||
|
||||
void AddToZoneServerCaches(ClientListEntry* cle);
|
||||
void RebuildZoneServerCaches();
|
||||
|
||||
std::vector<uint32_t> GetGuildZoneServers(uint32 guild_id);
|
||||
inline std::vector<uint32_t> GetZoneServersWithGMs()
|
||||
{
|
||||
return {m_gm_zone_server_ids.begin(), m_gm_zone_server_ids.end()};
|
||||
}
|
||||
|
||||
private:
|
||||
void OnTick(EQ::Timer *t);
|
||||
inline uint32 GetNextCLEID() { return NextCLEID++; }
|
||||
@@ -92,6 +99,11 @@ private:
|
||||
|
||||
|
||||
std::unique_ptr<EQ::Timer> m_tick;
|
||||
|
||||
// Zone server routing caches
|
||||
Timer m_poll_cache_timer;
|
||||
std::unordered_set<uint32_t> m_gm_zone_server_ids;
|
||||
std::unordered_map<uint32_t, std::unordered_set<uint32_t>> m_guild_zone_server_ids;
|
||||
};
|
||||
|
||||
#endif /*CLIENTLIST_H_*/
|
||||
|
||||
Reference in New Issue
Block a user