Cockatrice/libcockatrice_card/libcockatrice/card/database/card_database_manager.h
Lukas Brübach fc6ffffcb9 Don't use Qt pointers.
Took 1 hour 7 minutes
2025-11-08 19:27:38 +01:00

37 lines
1.3 KiB
C++

/**
* @file card_database_manager.h
* @ingroup CardDatabase
* @brief The CardDatabaseManager is responsible for managing the global database singleton.
*/
#ifndef CARD_DATABASE_ACCESSOR_H
#define CARD_DATABASE_ACCESSOR_H
#pragma once
#include "card_database.h"
class CardDatabaseManager
{
public:
// Delete copy constructor and assignment operator to enforce singleton
CardDatabaseManager(const CardDatabaseManager &) = delete;
CardDatabaseManager &operator=(const CardDatabaseManager &) = delete;
// To be called once, before instantiation of the manager
static void setCardPreferenceProvider(ICardPreferenceProvider *provider);
static void setCardDatabasePathProvider(ICardDatabasePathProvider *provider);
static void setCardSetPriorityController(ICardSetPriorityController *controller);
// Static method to access the singleton instance
static CardDatabase *getInstance();
static CardDatabaseQuerier *query();
private:
CardDatabaseManager() = default; // Private constructor
~CardDatabaseManager() = default;
static ICardPreferenceProvider *cardPreferenceProvider;
static ICardDatabasePathProvider *pathProvider;
static ICardSetPriorityController *setPriorityController;
};
#endif // CARD_DATABASE_ACCESSOR_H