LeviLamina
Loading...
Searching...
No Matches
PackSource.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/resource/PackOrigin.h"
7#include "mc/deps/core/resource/PackType.h"
8#include "mc/deps/core/threading/Async.h"
9#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/platform/brstd/function_ref.h"
12
13// auto generated forward declare list
14// clang-format off
16class IPackIOProvider;
18class Pack;
21class TaskGroup;
22struct PackIdVersion;
26struct PackStorage;
27namespace PackCommand { struct UpgradeLegacyDependenciesBatch; }
28// clang-format on
29
30class PackSource : public ::Bedrock::EnableNonOwnerReferences {
31public:
32 // PackSource inner types declare
33 // clang-format off
34 struct PackTaskData;
36 class RequiredPackType;
38 // clang-format on
39
40 // PackSource inner types define
41 struct PackTaskData {
42 public:
43 // member variables
44 // NOLINTBEGIN
49 // NOLINTEND
50
51 public:
52 // prevent constructor by default
53 PackTaskData& operator=(PackTaskData const&);
54 PackTaskData(PackTaskData const&);
55 PackTaskData();
56
57 public:
58 // member functions
59 // NOLINTBEGIN
60 MCNAPI ~PackTaskData();
61 // NOLINTEND
62
63 public:
64 // destructor thunk
65 // NOLINTBEGIN
66 MCNAPI void $dtor();
67 // NOLINTEND
68 };
69
70 class RequiredPackOrigin {
71 public:
72 // member variables
73 // NOLINTBEGIN
75 // NOLINTEND
76
77 public:
78 // prevent constructor by default
79 RequiredPackOrigin& operator=(RequiredPackOrigin const&);
80 RequiredPackOrigin(RequiredPackOrigin const&);
81 RequiredPackOrigin();
82 };
83
84 class RequiredPackType {
85 public:
86 // member variables
87 // NOLINTBEGIN
89 // NOLINTEND
90
91 public:
92 // prevent constructor by default
93 RequiredPackType& operator=(RequiredPackType const&);
94 RequiredPackType(RequiredPackType const&);
95 RequiredPackType();
96
97 public:
98 // static functions
99 // NOLINTBEGIN
100 MCNAPI static ::PackType assertValidPackType(::PackType type);
101 // NOLINTEND
102 };
103
104 class RequiredResourceOrBehaviorPackType {
105 public:
106 // member variables
107 // NOLINTBEGIN
109 // NOLINTEND
110
111 public:
112 // prevent constructor by default
113 RequiredResourceOrBehaviorPackType& operator=(RequiredResourceOrBehaviorPackType const&);
114 RequiredResourceOrBehaviorPackType(RequiredResourceOrBehaviorPackType const&);
115 RequiredResourceOrBehaviorPackType();
116
117 public:
118 // member functions
119 // NOLINTBEGIN
120#ifdef LL_PLAT_C
121 MCNAPI explicit RequiredResourceOrBehaviorPackType(::PackType type);
122#endif
123
124 MCNAPI explicit operator ::PackType() const;
125 // NOLINTEND
126
127 public:
128 // constructor thunks
129 // NOLINTBEGIN
130#ifdef LL_PLAT_C
131 MCNAPI void* $ctor(::PackType type);
132#endif
133 // NOLINTEND
134 };
135
136public:
137 // member variables
138 // NOLINTBEGIN
139 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IPackIOProvider>> const> mIO;
140 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mTaskGroup;
141 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PackStorageContainer>>> mContainer;
142 // NOLINTEND
143
144public:
145 // prevent constructor by default
146 PackSource();
147
148public:
149 // virtual functions
150 // NOLINTBEGIN
151 virtual ~PackSource() = 0;
152
153 virtual void forEachPackShared(::brstd::function_ref<void(::gsl::not_null<::std::shared_ptr<::Pack>>)> callback);
154
155 virtual ::PackOrigin getPackOrigin() const;
156
157 virtual ::PackType getPackType() const;
158
159 virtual void _buildSourcesForLoad(::std::vector<::gsl::not_null<::PackSource*>>& sources);
160
161 virtual ::PackSourceLoadResult _loadImpl(::PackSourceLoadOptions&& options) = 0;
162 // NOLINTEND
163
164public:
165 // member functions
166 // NOLINTBEGIN
167 MCAPI explicit PackSource(::PackSourceOptions options);
168
169#ifdef LL_PLAT_C
170 MCAPI void _addPack(::std::shared_ptr<::Pack> pack);
171
172 MCAPI ::Bedrock::Threading::Async<void>
173 _addPacks(::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& packs);
174#endif
175
176 MCAPI ::PackSourceLoadResult _applyAndFinishLoadTask(::std::shared_ptr<::PackSource::PackTaskData> task);
177
178 MCAPI ::PackSourceLoadResult _createImmediateLoadResult();
179
180#ifdef LL_PLAT_C
181 MCAPI ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>> _getPacks() const;
182#endif
183
184 MCAPI ::PackStorage _getStorage() const;
185
186 MCAPI ::PackSourceLoadResult
187 _getTaskData(::brstd::function_ref<::PackSourceLoadResult(::std::shared_ptr<::PackSource::PackTaskData>)> task);
188
189 MCAPI bool _removePack(::brstd::function_ref<bool(::Pack const&)> predicate);
190
191 MCAPI ::PackSourceLoadResult _returnOriginalPacks(::std::shared_ptr<::PackSource::PackTaskData> task);
192
193#ifdef LL_PLAT_C
194 MCFOLD void _setPacks(::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& packs);
195
196 MCAPI ::std::shared_ptr<::Pack> fetchPack(::PackIdVersion const& packId);
197#endif
198
199 MCFOLD void forEachPack(::std::function<void(::Pack&)> callback);
200
201 MCFOLD void forEachPackConst(::std::function<void(::Pack const&)> callback) const;
202
203#ifdef LL_PLAT_C
204 MCAPI ::Bedrock::Threading::Async<::std::vector<::gsl::not_null<::std::shared_ptr<::Pack const>>>> getPacks();
205#endif
206
207 MCAPI ::PackSourceReport load(
208 ::IPackManifestFactory& manifestFactory,
209 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> const& keyProvider
210 );
211
212 MCAPI ::PackSourceLoadResult loadImmediate(
213 ::IPackManifestFactory& manifestFactory,
214 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> const& keyProvider
215 );
216
217 MCAPI ::PackSourceLoadResult requestLoad(::PackSourceLoadOptions&& options);
218
219 MCAPI void
220 resolveUpgradeDependencies(::std::shared_ptr<::Pack> pack, ::PackCommand::UpgradeLegacyDependenciesBatch& commands);
221 // NOLINTEND
222
223public:
224 // constructor thunks
225 // NOLINTBEGIN
226 MCAPI void* $ctor(::PackSourceOptions options);
227 // NOLINTEND
228
229public:
230 // virtual function thunks
231 // NOLINTBEGIN
232 MCAPI void $forEachPackShared(::brstd::function_ref<void(::gsl::not_null<::std::shared_ptr<::Pack>>)> callback);
233
234 MCFOLD ::PackOrigin $getPackOrigin() const;
235
236 MCFOLD ::PackType $getPackType() const;
237
238 MCAPI void $_buildSourcesForLoad(::std::vector<::gsl::not_null<::PackSource*>>& sources);
239
240
241 // NOLINTEND
242
243public:
244 // vftables
245 // NOLINTBEGIN
246 MCNAPI static void** $vftable();
247 // NOLINTEND
248};
Definition EnableNonOwnerReferences.h:7
Definition IContentKeyProvider.h:13
Definition IPackIOProvider.h:15
Definition IPackManifestFactory.h:17
Definition PackSourceReport.h:11
Definition PackSource.h:70
Definition PackSource.h:84
static MCAPI ::PackType assertValidPackType(::PackType type)
static MCAPI void ** $vftable()
Definition PackStorageContainer.h:9
Definition Pack.h:28
Definition TaskGroup.h:55
Definition function_ref.h:60
Definition UpgradeLegacyDependenciesBatch.h:7
Definition PackIdVersion.h:10
Definition PackSourceLoadOptions.h:5
Definition PackSourceLoadResult.h:5
Definition PackSourceOptions.h:5
Definition PackSource.h:41
Definition PackStorage.h:5
Definition Alias.h:14