Cockatrice 2026-01-14-Development-2.11.0-beta.46
A cross-platform virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_database_parser.h
Go to the documentation of this file.
1#ifndef CARDDATABASE_PARSER_H
2#define CARDDATABASE_PARSER_H
3
4#include "../../card_info.h"
5
6#include <QIODevice>
7#include <QString>
8
9#define COCKATRICE_XML_XSI_NAMESPACE "http://www.w3.org/2001/XMLSchema-instance"
10
19class ICardDatabaseParser : public QObject
20{
21 Q_OBJECT
22public:
24 ~ICardDatabaseParser() override = default;
25
32 virtual bool getCanParseFile(const QString &name, QIODevice &device) = 0;
33
38 virtual void parseFile(QIODevice &device) = 0;
39
50 virtual bool saveToFile(FormatRulesNameMap _formats,
52 CardNameMap cards,
53 const QString &fileName,
54 const QString &sourceUrl = "unknown",
55 const QString &sourceVersion = "unknown") = 0;
56
58 static void clearSetlist();
59
60protected:
64
74 CardSetPtr internalAddSet(const QString &setName,
75 const QString &longName = "",
76 const QString &setType = "",
77 const QDate &releaseDate = QDate(),
79
80signals:
82 void addCard(CardInfoPtr card);
83
85 void addSet(CardSetPtr set);
86
88};
89
90Q_DECLARE_INTERFACE(ICardDatabaseParser, "ICardDatabaseParser")
91
92#endif
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
QHash< QString, FormatRulesPtr > FormatRulesNameMap
Definition card_info.h:31
QSharedPointer< FormatRules > FormatRulesPtr
Definition card_info.h:26
QSharedPointer< CardSet > CardSetPtr
Definition card_info.h:25
QHash< QString, CardSetPtr > SetNameMap
Definition card_info.h:30
QHash< QString, CardInfoPtr > CardNameMap
Definition card_info.h:29
Priority
Defines relative ordering and importance of sets.
Definition card_set.h:42
@ PriorityFallback
Used when no other priority is defined.
Definition card_set.h:43
Defines the base parser interface (ICardDatabaseParser) for all card database parsers.
Definition card_database_parser.h:20
ICardSetPriorityController * cardSetPriorityController
Definition card_database_parser.h:63
ICardDatabaseParser(ICardSetPriorityController *cardSetPriorityController)
Definition card_database_parser.cpp:7
static void clearSetlist()
Clears the cached global set list.
Definition card_database_parser.cpp:11
CardSetPtr internalAddSet(const QString &setName, const QString &longName="", const QString &setType="", const QDate &releaseDate=QDate(), const CardSet::Priority priority=CardSet::PriorityFallback)
Internal helper to add a set to the global set cache.
Definition card_database_parser.cpp:16
virtual bool saveToFile(FormatRulesNameMap _formats, SetNameMap sets, CardNameMap cards, const QString &fileName, const QString &sourceUrl="unknown", const QString &sourceVersion="unknown")=0
Saves card and set data to a file.
virtual void parseFile(QIODevice &device)=0
Parses a database file and emits addCard/addSet signals.
void addCard(CardInfoPtr card)
void addSet(CardSetPtr set)
static SetNameMap sets
Cached global list of sets shared between all parsers.
Definition card_database_parser.h:62
virtual bool getCanParseFile(const QString &name, QIODevice &device)=0
Checks whether this parser can parse the given file.
~ICardDatabaseParser() override=default
void addFormat(FormatRulesPtr format)
Definition interface_card_set_priority_controller.h:7