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
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
34
35public:
36 // member functions
37 // NOLINTBEGIN
38 MCAPI explicit CerealDocumentUpgrader(::SemVersion terminus);
39
40 MCAPI void clear();
41
42 MCAPI ::CerealDocumentUpgrader::ParseAndUpgradeResult parseJsonAndUpgrade(
43 ::std::string const& json,
44 ::SemVersion& outDocumentVersion,
45 ::rapidjson::GenericDocument<
46 ::rapidjson::UTF8<char>,
47 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
48 ::rapidjson::CrtAllocator>& document,
49 ::Core::Path const& resourceName,
50 bool allowMissingVersionAsZero,
51 ::std::optional<::SemVersion> const& minVersion,
52 ::std::function<bool(::SemVersion const&)> const& shouldUpgrade
53 ) const;
54
55 MCAPI void registerUpgrade(::std::shared_ptr<::CerealSchemaUpgrade> upgrade);
56
57 MCAPI bool upgradeJson(
58 ::std::string& json,
59 ::SemVersion& outDocumentVersion,
60 ::rapidjson::GenericDocument<
61 ::rapidjson::UTF8<char>,
62 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
63 ::rapidjson::CrtAllocator>& document,
64 ::Core::Path const& resourceName,
65 ::std::optional<::SemVersion> const& minVersion,
66 ::std::function<bool(::SemVersion const&)> const& shouldUpgrade
67 ) const;
68
70 // NOLINTEND
71
72public:
73 // static functions
74 // NOLINTBEGIN
75 MCAPI static ::std::string getVersion(::rapidjson::GenericDocument<
76 ::rapidjson::UTF8<char>,
77 ::rapidjson::MemoryPoolAllocator<::rapidjson::CrtAllocator>,
78 ::rapidjson::CrtAllocator> const& document);
79 // NOLINTEND
80
81public:
82 // constructor thunks
83 // NOLINTBEGIN
84 MCAPI void* $ctor(::SemVersion terminus);
85 // NOLINTEND
86
87public:
88 // destructor thunk
89 // NOLINTBEGIN
90 MCAPI void $dtor();
91 // NOLINTEND
92};
Definition CerealDocumentUpgrader.h:13
Definition CerealSchemaUpgrade.h:10
Definition Path.h:15
Definition Path.h:16
Definition SemVersion.h:15
Definition Alias.h:14