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 explicit CerealDocumentUpgrader(::SemVersion terminus);
39
40 MCNAPI void clear();
41
42 MCNAPI ::CerealDocumentUpgrader::ParseAndUpgradeResult parseJsonAndUpgrade(
43 ::SemVersion& outDocumentVersion,
44 ::rapidjson::GenericDocument<
45 ::rapidjson::UTF8<char>,
46 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
47 ::rapidjson::CrtAllocator>& document,
48 ::std::string const& json,
49 ::Core::Path const& resourceName,
50 bool allowMissingVersionAsZero,
51 bool betaApis,
52 ::std::optional<::SemVersion> const& minVersion
53 ) const;
54
56 ::std::string& json,
57 ::SemVersion& outDocumentVersion,
58 ::rapidjson::GenericDocument<
59 ::rapidjson::UTF8<char>,
60 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
61 ::rapidjson::CrtAllocator>& document,
62 ::Core::Path const& resourceName,
63 bool betaApis,
64 ::std::optional<::SemVersion> const& minVersion
65 ) const;
66
67 MCNAPI void registerUpgrade(::std::shared_ptr<::CerealSchemaUpgrade> upgrade);
68
69 MCNAPI ::CerealDocumentUpgrader::ParseAndUpgradeResult upgradeJsonDocument(
70 ::rapidjson::GenericDocument<
71 ::rapidjson::UTF8<char>,
72 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
73 ::rapidjson::CrtAllocator>& document,
74 ::SemVersion const& documentVersion
75 ) const;
76 // NOLINTEND
77
78public:
79 // static functions
80 // NOLINTBEGIN
81 MCNAPI static ::std::string getVersion(
82 ::rapidjson::GenericDocument<
83 ::rapidjson::UTF8<char>,
84 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
85 ::rapidjson::CrtAllocator> const& document
86 );
87
88 MCNAPI static ::std::pair<
90 ::rapidjson::GenericDocument<
91 ::rapidjson::UTF8<char>,
92 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
93 ::rapidjson::CrtAllocator>>
94 parseDocument(::std::string_view json, bool allowMissingVersionAsZero, bool logRapidjsonErrors);
95
96 MCNAPI static ::rapidjson::GenericStringBuffer<::rapidjson::UTF8<char>, ::rapidjson::CrtAllocator> stringify(
97 ::rapidjson::GenericValue<
98 ::rapidjson::UTF8<char>,
99 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>> const& document
100 );
101
102 MCNAPI static bool validateParsedVersion(
103 ::SemVersion const& documentVersion,
104 ::std::optional<::SemVersion> const& minVersion,
105 bool betaApis
106 );
107 // NOLINTEND
108
109public:
110 // constructor thunks
111 // NOLINTBEGIN
112 MCNAPI void* $ctor(::SemVersion terminus);
113 // NOLINTEND
114};
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)
static MCAPI ::rapidjson::GenericStringBuffer<::rapidjson::UTF8< char >, ::rapidjson::CrtAllocator > stringify(::rapidjson::GenericValue< ::rapidjson::UTF8< char >, ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator > > const &document)
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(::SemVersion terminus)
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
MCAPI void * $ctor(::SemVersion terminus)
Definition CerealSchemaUpgrade.h:10
Definition Path.h:12
Definition SemVersion.h:15
Definition Schema.h:7
Definition Alias.h:14