LeviLamina
Loading...
Searching...
No Matches
CerealDocumentUpgrader.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
8class SemVersion;
9namespace Core { class Path; }
10namespace cereal { struct Schema; }
11// clang-format on
12
13class CerealDocumentUpgrader {
14public:
15 // CerealDocumentUpgrader inner types define
16 enum class ParseAndUpgradeResult : int {
17 Failure = 0,
18 SuccessWithChanges = 1,
19 SuccessWithoutChanges = 2,
20 };
21
22public:
23 // member variables
24 // NOLINTBEGIN
27 // NOLINTEND
28
29public:
30 // prevent constructor by default
31 CerealDocumentUpgrader& operator=(CerealDocumentUpgrader const&);
32 CerealDocumentUpgrader(CerealDocumentUpgrader const&);
33 CerealDocumentUpgrader();
34
35public:
36 // member functions
37 // NOLINTBEGIN
38 MCNAPI ::CerealDocumentUpgrader::ParseAndUpgradeResult parseJsonAndUpgrade(
39 ::SemVersion& outDocumentVersion,
40 ::rapidjson::GenericDocument<
41 ::rapidjson::UTF8<char>,
42 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
43 ::rapidjson::CrtAllocator>& document,
44 ::std::string const& json,
45 ::Core::Path const& resourceName,
46 bool allowMissingVersionAsZero,
47 bool betaApis,
48 ::std::optional<::SemVersion> const& minVersion
49 ) const;
50
52 ::std::string& json,
53 ::SemVersion& outDocumentVersion,
54 ::rapidjson::GenericDocument<
55 ::rapidjson::UTF8<char>,
56 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
57 ::rapidjson::CrtAllocator>& document,
58 ::Core::Path const& resourceName,
59 bool betaApis,
60 ::std::optional<::SemVersion> const& minVersion
61 ) const;
62
63 MCNAPI void registerUpgrade(::std::shared_ptr<::CerealSchemaUpgrade> upgrade);
64
65 MCNAPI ::CerealDocumentUpgrader::ParseAndUpgradeResult upgradeJsonDocument(
66 ::rapidjson::GenericDocument<
67 ::rapidjson::UTF8<char>,
68 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
69 ::rapidjson::CrtAllocator>& document,
70 ::SemVersion const& documentVersion
71 ) const;
72 // NOLINTEND
73
74public:
75 // static functions
76 // NOLINTBEGIN
77 MCNAPI static ::std::string getVersion(
78 ::rapidjson::GenericDocument<
79 ::rapidjson::UTF8<char>,
80 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
81 ::rapidjson::CrtAllocator> const& document
82 );
83
84 MCNAPI static ::std::pair<
86 ::rapidjson::GenericDocument<
87 ::rapidjson::UTF8<char>,
88 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
89 ::rapidjson::CrtAllocator>>
90 parseDocument(::std::string_view json, bool allowMissingVersionAsZero, bool logRapidjsonErrors);
91
92 MCNAPI static bool validateParsedVersion(
93 ::SemVersion const& documentVersion,
94 ::std::optional<::SemVersion> const& minVersion,
95 bool betaApis
96 );
97 // NOLINTEND
98};
static MCAPI ::std::pair< ::SemVersion, ::rapidjson::GenericDocument< ::rapidjson::UTF8< char >, ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator >, ::rapidjson::CrtAllocator > > parseDocument(::std::string_view json, bool allowMissingVersionAsZero, bool logRapidjsonErrors)
MCAPI::CerealDocumentUpgrader::ParseAndUpgradeResult upgradeJsonDocument(::rapidjson::GenericDocument< ::rapidjson::UTF8< char >, ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator >, ::rapidjson::CrtAllocator > &document, ::SemVersion const &documentVersion) const
static MCAPI ::std::string getVersion(::rapidjson::GenericDocument< ::rapidjson::UTF8< char >, ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator >, ::rapidjson::CrtAllocator > const &document)
MCAPI bool parseUpgradeAndStringifyJsonString(::std::string &json, ::SemVersion &outDocumentVersion, ::rapidjson::GenericDocument< ::rapidjson::UTF8< char >, ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator >, ::rapidjson::CrtAllocator > &document, ::Core::Path const &resourceName, bool betaApis, ::std::optional<::SemVersion > const &minVersion) const
static MCAPI bool validateParsedVersion(::SemVersion const &documentVersion, ::std::optional<::SemVersion > const &minVersion, bool betaApis)
MCAPI void registerUpgrade(::std::shared_ptr<::CerealSchemaUpgrade > upgrade)
MCAPI::CerealDocumentUpgrader::ParseAndUpgradeResult parseJsonAndUpgrade(::SemVersion &outDocumentVersion, ::rapidjson::GenericDocument< ::rapidjson::UTF8< char >, ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator >, ::rapidjson::CrtAllocator > &document, ::std::string const &json, ::Core::Path const &resourceName, bool allowMissingVersionAsZero, bool betaApis, ::std::optional<::SemVersion > const &minVersion) const
Definition CerealSchemaUpgrade.h:10
Definition Path.h:11
Definition SemVersion.h:15
Definition Schema.h:7
Definition Alias.h:14