Cockatrice
2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Toggle main menu visibility
Loading...
Searching...
No Matches
raw_json_scanner.h
Go to the documentation of this file.
1
#ifndef RAW_JSON_SCANNER_H
2
#define RAW_JSON_SCANNER_H
3
4
#include <QList>
5
#include <QString>
6
#include <QtGlobal>
7
#include <functional>
8
9
class
QByteArray;
10
11
namespace
RawJson
12
{
13
19
struct
SetDataRange
20
{
22
qsizetype
start
= -1;
24
qsizetype
length
= 0;
26
int
cardCount
= 0;
27
};
28
29
struct
SetRange
30
{
32
SetDataRange
dataRange
;
33
QString
code
;
34
QString
name
;
35
QString
type
;
36
QString
releaseDate
;
37
};
38
39
struct
ScanError
40
{
41
bool
isError
()
const
42
{
43
return
!
message
.isEmpty();
44
}
45
QString
message
;
46
};
47
53
using
ScanProgressCallback
= std::function<void(qsizetype bytesRead, qsizetype totalBytes)>;
54
85
QList<SetRange>
scanSetRanges
(
const
QByteArray &json,
86
ScanError
*error =
nullptr
,
87
const
ScanProgressCallback
&progress =
ScanProgressCallback
());
88
89
}
// namespace RawJson
90
91
#endif
// RAW_JSON_SCANNER_H
QList
Definition
remote_connection_controller.h:20
RawJson
Definition
raw_json_scanner.cpp:559
RawJson::ScanProgressCallback
std::function< void(qsizetype bytesRead, qsizetype totalBytes)> ScanProgressCallback
Optional progress callback receiving (bytesRead, totalBytes) while the document is walked....
Definition
raw_json_scanner.h:53
RawJson::scanSetRanges
QList< SetRange > scanSetRanges(const QByteArray &json, ScanError *error, const ScanProgressCallback &progress)
Scans a full MTGJSON document without materializing the JSON tree.
Definition
raw_json_scanner.cpp:561
RawJson::ScanError
Definition
raw_json_scanner.h:40
RawJson::ScanError::message
QString message
Definition
raw_json_scanner.h:45
RawJson::ScanError::isError
bool isError() const
Definition
raw_json_scanner.h:41
RawJson::SetDataRange
The byte extent of a set's object inside the scanned document, plus the size of its cards array....
Definition
raw_json_scanner.h:20
RawJson::SetDataRange::length
qsizetype length
Byte length of the set's object, including the surrounding braces.
Definition
raw_json_scanner.h:24
RawJson::SetDataRange::start
qsizetype start
Byte offset of the set's object within the scanned buffer.
Definition
raw_json_scanner.h:22
RawJson::SetDataRange::cardCount
int cardCount
Number of entries in the set's "cards" array.
Definition
raw_json_scanner.h:26
RawJson::SetRange
Definition
raw_json_scanner.h:30
RawJson::SetRange::type
QString type
Definition
raw_json_scanner.h:35
RawJson::SetRange::name
QString name
Definition
raw_json_scanner.h:34
RawJson::SetRange::code
QString code
Definition
raw_json_scanner.h:33
RawJson::SetRange::dataRange
SetDataRange dataRange
The byte slice of this set within the document.
Definition
raw_json_scanner.h:32
RawJson::SetRange::releaseDate
QString releaseDate
Definition
raw_json_scanner.h:36
oracle
src
raw_json_scanner.h
Generated by
1.18.0