Cockatrice 2025-11-30-Development-2.11.0-beta.38
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:
23 ~ICardDatabaseParser() override = default;
24
31 virtual bool getCanParseFile(const QString &name, QIODevice &device) = 0;
32
37 virtual void parseFile(QIODevice &device) = 0;
38
49 CardNameMap cards,
50 const QString &fileName,
51 const QString &sourceUrl = "unknown",
52 const QString &sourceVersion = "unknown") = 0;
53
55 static void clearSetlist();
56
57protected:
60
70 CardSetPtr internalAddSet(const QString &setName,
71 const QString &longName = "",
72 const QString &setType = "",
73 const QDate &releaseDate = QDate(),
75
76signals:
78 void addCard(CardInfoPtr card);
79
81 void addSet(CardSetPtr set);
82};
83
84Q_DECLARE_INTERFACE(ICardDatabaseParser, "ICardDatabaseParser")
85
86#endif
QSharedPointer< CardInfo > CardInfoPtr
Definition card_info.cpp:20
QSharedPointer< CardSet > CardSetPtr
Definition card_info.h:24
QHash< QString, CardSetPtr > SetNameMap
Definition card_info.h:28
QHash< QString, CardInfoPtr > CardNameMap
Definition card_info.h:27
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
static void clearSetlist()
Clears the cached global set list.
Definition card_database_parser.cpp:7
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:12
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:59
virtual bool getCanParseFile(const QString &name, QIODevice &device)=0
Checks whether this parser can parse the given file.
~ICardDatabaseParser() override=default
virtual bool saveToFile(SetNameMap sets, CardNameMap cards, const QString &fileName, const QString &sourceUrl="unknown", const QString &sourceVersion="unknown")=0
Saves card and set data to a file.