From ca3eacbd790a7e50a7fe5070e975c10255a1e174 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sat, 10 Jul 2021 03:11:59 -0400 Subject: dont use unordered collections (reduce memory a bit) --- discord/discord.cpp | 14 +++++++------- discord/discord.hpp | 23 +++++++++++------------ 2 files changed, 18 insertions(+), 19 deletions(-) (limited to 'discord') diff --git a/discord/discord.cpp b/discord/discord.cpp index cdee337..ffab9b6 100644 --- a/discord/discord.cpp +++ b/discord/discord.cpp @@ -234,19 +234,19 @@ std::optional DiscordClient::GetMemberHighestRole(Snowflake guild_id, }); } -std::unordered_set DiscordClient::GetUsersInGuild(Snowflake id) const { +std::set DiscordClient::GetUsersInGuild(Snowflake id) const { auto it = m_guild_to_users.find(id); if (it != m_guild_to_users.end()) return it->second; - return std::unordered_set(); + return {}; } -std::unordered_set DiscordClient::GetChannelsInGuild(Snowflake id) const { +std::set DiscordClient::GetChannelsInGuild(Snowflake id) const { auto it = m_guild_to_channels.find(id); if (it != m_guild_to_channels.end()) return it->second; - return std::unordered_set(); + return {}; } bool DiscordClient::HasGuildPermission(Snowflake user_id, Snowflake guild_id, Permission perm) const { @@ -954,12 +954,12 @@ PresenceStatus DiscordClient::GetUserStatus(Snowflake id) const { return PresenceStatus::Offline; } -std::unordered_map DiscordClient::GetRelationships() const { +std::map DiscordClient::GetRelationships() const { return m_user_relationships; } -std::unordered_set DiscordClient::GetRelationships(RelationshipType type) const { - std::unordered_set ret; +std::set DiscordClient::GetRelationships(RelationshipType type) const { + std::set ret; for (const auto &[id, rtype] : m_user_relationships) if (rtype == type) ret.insert(id); diff --git a/discord/discord.hpp b/discord/discord.hpp index cfce016..6138ea3 100644 --- a/discord/discord.hpp +++ b/discord/discord.hpp @@ -6,9 +6,8 @@ #include #include #include -#include +#include #include -#include #include #include #include @@ -85,8 +84,8 @@ public: std::optional GetBan(Snowflake guild_id, Snowflake user_id) const; Snowflake GetMemberHoistedRole(Snowflake guild_id, Snowflake user_id, bool with_color = false) const; std::optional GetMemberHighestRole(Snowflake guild_id, Snowflake user_id) const; - std::unordered_set GetUsersInGuild(Snowflake id) const; - std::unordered_set GetChannelsInGuild(Snowflake id) const; + std::set GetUsersInGuild(Snowflake id) const; + std::set GetChannelsInGuild(Snowflake id) const; bool HasGuildPermission(Snowflake user_id, Snowflake guild_id, Permission perm) const; @@ -184,8 +183,8 @@ public: PresenceStatus GetUserStatus(Snowflake id) const; - std::unordered_map GetRelationships() const; - std::unordered_set GetRelationships(RelationshipType type) const; + std::map GetRelationships() const; + std::set GetRelationships(RelationshipType type) const; std::optional GetRelationship(Snowflake id) const; private: @@ -255,14 +254,14 @@ private: std::string m_token; void AddUserToGuild(Snowflake user_id, Snowflake guild_id); - std::unordered_map> m_guild_to_users; + std::map> m_guild_to_users; - std::unordered_map> m_guild_to_channels; - std::unordered_map m_guild_join_requests; + std::map> m_guild_to_channels; + std::map m_guild_join_requests; - std::unordered_map m_user_to_status; + std::map m_user_to_status; - std::unordered_map m_user_relationships; + std::map m_user_relationships; UserData m_user_data; UserSettings m_user_settings; @@ -273,7 +272,7 @@ private: std::atomic m_client_connected = false; std::atomic m_ready_received = false; - std::unordered_map m_event_map; + std::map m_event_map; void LoadEventMap(); std::thread m_heartbeat_thread; -- cgit v1.2.3