mirror-chatterino2/src/providers/chatterino/ChatterinoBadges.hpp

35 lines
704 B
C++
Raw Normal View History

2018-08-02 14:23:27 +02:00
#pragma once
#include <boost/optional.hpp>
#include <common/Singleton.hpp>
#include <memory>
2021-05-01 13:38:58 +02:00
#include <shared_mutex>
#include <unordered_map>
#include <vector>
2021-05-01 13:38:58 +02:00
#include "common/Aliases.hpp"
#include "util/QStringHash.hpp"
2018-08-02 14:23:27 +02:00
namespace chatterino {
struct Emote;
using EmotePtr = std::shared_ptr<const Emote>;
class ChatterinoBadges : public Singleton
2018-08-02 14:23:27 +02:00
{
public:
virtual void initialize(Settings &settings, Paths &paths) override;
2018-08-02 14:23:27 +02:00
ChatterinoBadges();
2019-08-23 16:52:04 +02:00
boost::optional<EmotePtr> getBadge(const UserId &id);
2018-08-02 14:23:27 +02:00
private:
void loadChatterinoBadges();
2021-05-01 13:38:58 +02:00
std::shared_mutex mutex_;
std::unordered_map<QString, int> badgeMap;
std::vector<EmotePtr> emotes;
2018-08-02 14:23:27 +02:00
};
} // namespace chatterino