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;
25struct PackStorage;
26// clang-format on
27
28class PackSource : public ::Bedrock::EnableNonOwnerReferences {
29public:
30 // PackSource inner types declare
31 // clang-format off
32 struct PackTaskData;
34 class RequiredPackType;
36 // clang-format on
37
38 // PackSource inner types define
39 struct PackTaskData {
40 public:
41 // member variables
42 // NOLINTBEGIN
47 // NOLINTEND
48
49 public:
50 // prevent constructor by default
51 PackTaskData& operator=(PackTaskData const&);
52 PackTaskData(PackTaskData const&);
53 PackTaskData();
54 };
55
56 class RequiredPackOrigin {
57 public:
58 // member variables
59 // NOLINTBEGIN
61 // NOLINTEND
62
63 public:
64 // prevent constructor by default
65 RequiredPackOrigin& operator=(RequiredPackOrigin const&);
66 RequiredPackOrigin(RequiredPackOrigin const&);
67 RequiredPackOrigin();
68 };
69
70 class RequiredPackType {
71 public:
72 // member variables
73 // NOLINTBEGIN
75 // NOLINTEND
76
77 public:
78 // prevent constructor by default
79 RequiredPackType& operator=(RequiredPackType const&);
80 RequiredPackType(RequiredPackType const&);
81 RequiredPackType();
82
83 public:
84 // static functions
85 // NOLINTBEGIN
86 MCNAPI static ::PackType assertValidPackType(::PackType type);
87 // NOLINTEND
88 };
89
90 class RequiredResourceOrBehaviorPackType {
91 public:
92 // member variables
93 // NOLINTBEGIN
95 // NOLINTEND
96
97 public:
98 // prevent constructor by default
99 RequiredResourceOrBehaviorPackType& operator=(RequiredResourceOrBehaviorPackType const&);
100 RequiredResourceOrBehaviorPackType(RequiredResourceOrBehaviorPackType const&);
101 RequiredResourceOrBehaviorPackType();
102 };
103
104public:
105 // member variables
106 // NOLINTBEGIN
107 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::IPackIOProvider>> const> mIO;
108 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::TaskGroup>>> mTaskGroup;
109 ::ll::TypedStorage<8, 8, ::gsl::not_null<::std::unique_ptr<::PackStorageContainer>>> mContainer;
110 // NOLINTEND
111
112public:
113 // prevent constructor by default
114 PackSource();
115
116public:
117 // virtual functions
118 // NOLINTBEGIN
119 virtual ~PackSource() = 0;
120
121 virtual void forEachPackShared(::brstd::function_ref<void(::gsl::not_null<::std::shared_ptr<::Pack>>)> callback);
122
123 virtual ::PackOrigin getPackOrigin() const;
124
125 virtual ::PackType getPackType() const;
126
127 virtual void _buildSourcesForLoad(::std::vector<::gsl::not_null<::PackSource*>>& sources);
128
129 virtual ::PackSourceLoadResult _loadImpl(::PackSourceLoadOptions&& options) = 0;
130 // NOLINTEND
131
132public:
133 // member functions
134 // NOLINTBEGIN
135 MCAPI explicit PackSource(::PackSourceOptions options);
136
137#ifdef LL_PLAT_C
138 MCAPI void _addPack(::std::shared_ptr<::Pack> pack);
139
140 MCAPI ::Bedrock::Threading::Async<void>
141 _addPacks(::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& packs);
142#endif
143
144 MCAPI ::PackSourceLoadResult _applyAndFinishLoadTask(::std::shared_ptr<::PackSource::PackTaskData> task);
145
146 MCAPI ::PackSourceLoadResult _createImmediateLoadResult();
147
148 MCAPI ::PackStorage _getStorage() const;
149
150 MCAPI ::PackSourceLoadResult
151 _getTaskData(::brstd::function_ref<::PackSourceLoadResult(::std::shared_ptr<::PackSource::PackTaskData>)> task);
152
153#ifdef LL_PLAT_C
154 MCAPI bool _removePack(::brstd::function_ref<bool(::Pack const&)> predicate);
155
156 MCAPI ::Bedrock::Threading::Async<::std::vector<::gsl::not_null<::std::shared_ptr<::Pack const>>>> getPacks();
157#endif
158
159 MCAPI ::PackSourceReport load(
160 ::IPackManifestFactory& manifestFactory,
161 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> const& keyProvider
162 );
163
164 MCAPI ::PackSourceLoadResult loadImmediate(
165 ::IPackManifestFactory& manifestFactory,
166 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const> const& keyProvider
167 );
168
169 MCAPI ::PackSourceLoadResult requestLoad(::PackSourceLoadOptions&& options);
170 // NOLINTEND
171
172public:
173 // constructor thunks
174 // NOLINTBEGIN
175 MCAPI void* $ctor(::PackSourceOptions options);
176 // NOLINTEND
177
178public:
179 // virtual function thunks
180 // NOLINTBEGIN
181 MCAPI void $forEachPackShared(::brstd::function_ref<void(::gsl::not_null<::std::shared_ptr<::Pack>>)> callback);
182
183 MCFOLD ::PackOrigin $getPackOrigin() const;
184
185 MCFOLD ::PackType $getPackType() const;
186
187 MCAPI void $_buildSourcesForLoad(::std::vector<::gsl::not_null<::PackSource*>>& sources);
188
189
190 // NOLINTEND
191
192public:
193 // vftables
194 // NOLINTBEGIN
195 MCNAPI static void** $vftable();
196 // NOLINTEND
197};
Definition EnableNonOwnerReferences.h:7
Definition IContentKeyProvider.h:13
Definition IPackIOProvider.h:15
Definition IPackManifestFactory.h:17
Definition PackSourceReport.h:5
Definition PackSource.h:56
Definition PackSource.h:70
static MCAPI ::PackType assertValidPackType(::PackType type)
static MCAPI void ** $vftable()
Definition PackStorageContainer.h:9
Definition Pack.h:27
Definition TaskGroup.h:55
Definition function_ref.h:60
Definition PackSourceLoadOptions.h:5
Definition PackSourceLoadResult.h:5
Definition PackSourceOptions.h:5
Definition PackSource.h:39
Definition PackStorage.h:5
Definition Alias.h:14