#pragma once #include "common/Aliases.hpp" #include "common/Atomic.hpp" #include #include namespace chatterino { struct Emote; using EmotePtr = std::shared_ptr; class EmoteMap; class Channel; class FfzEmotes final { public: FfzEmotes(); std::shared_ptr emotes() const; boost::optional emote(const EmoteName &name) const; void loadEmotes(); void setEmotes(std::shared_ptr emotes); static void loadChannel( std::weak_ptr channel, const QString &channelId, std::function emoteCallback, std::function)> modBadgeCallback, std::function)> vipBadgeCallback, bool manualRefresh); private: Atomic> global_; }; } // namespace chatterino