2023-06-20 04:33:09 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "types.h"
|
|
|
|
#include "application_manager.h"
|
|
|
|
#include "user_manager.h"
|
|
|
|
#include "image_manager.h"
|
|
|
|
#include "activity_manager.h"
|
|
|
|
#include "relationship_manager.h"
|
|
|
|
#include "lobby_manager.h"
|
|
|
|
#include "network_manager.h"
|
|
|
|
#include "overlay_manager.h"
|
|
|
|
#include "storage_manager.h"
|
|
|
|
#include "store_manager.h"
|
2024-03-08 09:09:27 +00:00
|
|
|
#include "voice_manager.h"
|
|
|
|
#include "achievement_manager.h"
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
namespace discord {
|
|
|
|
|
|
|
|
class Core final {
|
|
|
|
public:
|
|
|
|
static Result Create(ClientId clientId, std::uint64_t flags, Core** instance);
|
|
|
|
|
|
|
|
~Core();
|
|
|
|
|
|
|
|
Result RunCallbacks();
|
|
|
|
void SetLogHook(LogLevel minLevel, std::function<void(LogLevel, char const*)> hook);
|
|
|
|
|
|
|
|
discord::ApplicationManager& ApplicationManager();
|
|
|
|
discord::UserManager& UserManager();
|
|
|
|
discord::ImageManager& ImageManager();
|
|
|
|
discord::ActivityManager& ActivityManager();
|
|
|
|
discord::RelationshipManager& RelationshipManager();
|
|
|
|
discord::LobbyManager& LobbyManager();
|
|
|
|
discord::NetworkManager& NetworkManager();
|
|
|
|
discord::OverlayManager& OverlayManager();
|
|
|
|
discord::StorageManager& StorageManager();
|
|
|
|
discord::StoreManager& StoreManager();
|
2024-03-08 09:09:27 +00:00
|
|
|
discord::VoiceManager& VoiceManager();
|
|
|
|
discord::AchievementManager& AchievementManager();
|
2023-06-20 04:33:09 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
Core() = default;
|
|
|
|
Core(Core const& rhs) = delete;
|
|
|
|
Core& operator=(Core const& rhs) = delete;
|
|
|
|
Core(Core&& rhs) = delete;
|
|
|
|
Core& operator=(Core&& rhs) = delete;
|
|
|
|
|
|
|
|
IDiscordCore* internal_;
|
|
|
|
Event<LogLevel, char const*> setLogHook_;
|
|
|
|
discord::ApplicationManager applicationManager_;
|
|
|
|
discord::UserManager userManager_;
|
|
|
|
discord::ImageManager imageManager_;
|
|
|
|
discord::ActivityManager activityManager_;
|
|
|
|
discord::RelationshipManager relationshipManager_;
|
|
|
|
discord::LobbyManager lobbyManager_;
|
|
|
|
discord::NetworkManager networkManager_;
|
|
|
|
discord::OverlayManager overlayManager_;
|
|
|
|
discord::StorageManager storageManager_;
|
|
|
|
discord::StoreManager storeManager_;
|
2024-03-08 09:09:27 +00:00
|
|
|
discord::VoiceManager voiceManager_;
|
|
|
|
discord::AchievementManager achievementManager_;
|
2023-06-20 04:33:09 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace discord
|