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