1#ifndef COCKATRICE_CARD_DATABASE_LOADER_H
2#define COCKATRICE_CARD_DATABASE_LOADER_H
6#include <QLoggingCategory>
13inline Q_LOGGING_CATEGORY(CardDatabaseLoadingSuccessOrFailureLog,
"card_database.loading.success_or_failure");
138 [[nodiscard]] QByteArray
computeSourceHash(
const QStringList &customPaths)
const;
Q_LOGGING_CATEGORY(CardDatabaseLoadingLog, "card_database.loading")
LoadStatus
Represents the result of attempting to load a card database.
Definition card_database_loader.h:23
@ Ok
Definition card_database_loader.h:24
@ FileError
Definition card_database_loader.h:28
@ NoCards
Definition card_database_loader.h:29
@ NotLoaded
Definition card_database_loader.h:27
@ VersionTooOld
Definition card_database_loader.h:25
@ Invalid
Definition card_database_loader.h:26
void loadingFailed()
Emitted when loading fails.
void loadingFinished()
Emitted when loading finishes successfully.
void loadingStarted()
Emitted when loading starts.
bool saveCustomTokensToFile()
Saves custom tokens to the user-defined custom database path.
Definition card_database_loader.cpp:215
CardDatabase * database
Definition card_database_loader.h:163
void databaseDataReady(CardDatabaseData data)
Emitted with the fully-built snapshot once background loading completes. The receiver swaps it into t...
QList< ICardDatabaseParser * > availableParsers
Definition card_database_loader.h:166
ICardDatabasePathProvider * pathProvider
Definition card_database_loader.h:164
bool initialLoadComplete
Definition card_database_loader.h:170
QByteArray computeSourceHash(const QStringList &customPaths) const
Computes a hash identifying the current set of input database files.
Definition card_database_loader.cpp:158
void allNewSetsEnabled()
Emitted when all newly discovered sets have been enabled.
CardDatabaseLoader(QObject *parent, CardDatabase *db, ICardDatabasePathProvider *pathProvider, ICardPreferenceProvider *preferenceProvider, ICardSetPriorityController *_priorityController)
Constructs a CardDatabaseLoader.
Definition card_database_loader.cpp:18
ICardSetPriorityController * priorityController
Definition card_database_loader.h:165
LoadStatus loadFromFile(const QString &fileName, CardDatabaseData &data)
Parses a single file into the given snapshot using the available parsers.
Definition card_database_loader.cpp:43
void newSetsFound(int numSets, const QStringList &setNames)
Emitted when new sets are discovered during loading.
LoadStatus loadCardDatabase(const QString &path, CardDatabaseData &data)
Loads a single card database file into the given snapshot.
Definition card_database_loader.cpp:62
QStringList collectCustomDatabasePaths() const
Collects custom card database paths recursively.
Definition card_database_loader.cpp:202
LoadStatus loadCardDatabases()
Loads all configured card databases.
Definition card_database_loader.cpp:79
QBasicMutex * loadFromFileMutex
Definition card_database_loader.h:168
bool loadFromCache(CardDatabaseData &data, const QByteArray &sourceHash)
Attempts to populate the snapshot from the binary cache.
Definition card_database_loader.cpp:186
~CardDatabaseLoader() override
Destructor cleans up allocated parsers.
Definition card_database_loader.cpp:37
QString cachePath() const
Path of the binary cache file derived from the main card database path.
Definition card_database_loader.cpp:153
LoadStatus doLoadCardDatabases()
Performs the actual load work synchronously on the calling thread.
Definition card_database_loader.cpp:84
bool saveToCache(const CardDatabaseData &data, const QByteArray &sourceHash)
Writes the snapshot to the binary cache for the current inputs.
Definition card_database_loader.cpp:194
QBasicMutex * reloadDatabaseMutex
Definition card_database_loader.h:169
Core in-memory container for card and set data.
Definition card_database.h:30
Defines the base parser interface (ICardDatabaseParser) for all card database parsers.
Definition card_database_parser.h:21
Definition interface_card_database_path_provider.h:6
Definition interface_card_preference_provider.h:7
Definition interface_card_set_priority_controller.h:7
Value type holding the full parsed state of a card database.
Definition card_database_data.h:17