mirror-chatterino2/src/accountmanager.hpp

50 lines
1.1 KiB
C++
Raw Normal View History

#pragma once
2017-04-12 17:46:44 +02:00
2017-06-11 09:31:45 +02:00
#include "twitch/twitchuser.hpp"
2017-04-12 17:46:44 +02:00
2017-09-24 18:14:22 +02:00
#include <pajlada/settings/setting.hpp>
2017-04-13 16:06:23 +02:00
#include <mutex>
#include <vector>
2017-04-13 16:06:23 +02:00
2017-04-12 17:46:44 +02:00
namespace chatterino {
class AccountManager
{
public:
static AccountManager &getInstance()
{
static AccountManager instance;
2017-04-12 17:46:44 +02:00
return instance;
}
void load();
2017-04-13 16:06:23 +02:00
twitch::TwitchUser &getTwitchAnon();
2017-06-11 12:00:53 +02:00
// Returns first user from twitchUsers, or twitchAnonymousUser if twitchUsers is empty
twitch::TwitchUser &getTwitchUser();
2017-06-11 12:00:53 +02:00
// Return a copy of the current available twitch users
2017-04-13 16:06:23 +02:00
std::vector<twitch::TwitchUser> getTwitchUsers();
2017-06-11 12:00:53 +02:00
// Remove twitch user with the given username
2017-04-13 16:06:23 +02:00
bool removeTwitchUser(const QString &userName);
2017-06-11 12:00:53 +02:00
void setCurrentTwitchUser(const QString &username);
2017-06-11 12:00:53 +02:00
// Add twitch user to the list of available twitch users
2017-04-13 16:06:23 +02:00
void addTwitchUser(const twitch::TwitchUser &user);
2017-04-12 17:46:44 +02:00
private:
AccountManager();
2017-09-24 18:14:22 +02:00
pajlada::Settings::Setting<std::string> currentUser;
2017-06-11 12:00:53 +02:00
twitch::TwitchUser twitchAnonymousUser;
std::vector<twitch::TwitchUser> twitchUsers;
std::mutex twitchUsersMutex;
2017-04-12 17:46:44 +02:00
};
2017-04-14 17:52:22 +02:00
} // namespace chatterino