LeviLamina
Loading...
Searching...
No Matches
PackSourceFactory.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/utility/NonOwnerPointer.h"
9#include "mc/resources/RealmsUnknownPackSources.h"
10#include "mc/resources/interface/IPackSourceFactory.h"
11
12// auto generated forward declare list
13// clang-format off
16class IInPackagePacks;
17class IPackIOProvider;
20class Pack;
21class PackSource;
26struct PackIdVersion;
28namespace Core { class Path; }
29namespace PackCommand { class IPackCommandPipeline; }
30namespace Realms { class RealmsServicePackSource; }
31namespace mce { class UUID; }
32// clang-format on
33
34class PackSourceFactory : public ::IPackSourceFactory {
35public:
36 // PackSourceFactory inner types declare
37 // clang-format off
38 template<typename T0> struct SourcesList;
39 // clang-format on
40
41 // PackSourceFactory inner types define
42 template <typename T0>
43 struct SourcesList {};
44
45public:
46 // member variables
47 // NOLINTBEGIN
48 ::ll::TypedStorage<8, 104, ::PackSourceFactory::SourcesList<::std::unique_ptr<::TreatmentPackSource>>>
49 mTreatmentPackSources;
50 ::ll::TypedStorage<8, 104, ::PackSourceFactory::SourcesList<::std::unique_ptr<::DirectoryPackSource>>>
51 mDirectoryPackSources;
52 ::ll::TypedStorage<8, 104, ::PackSourceFactory::SourcesList<::std::unique_ptr<::InPackagePackSource>>>
53 mInPackagePackSources;
54 ::ll::TypedStorage<8, 104, ::PackSourceFactory::SourcesList<::std::unique_ptr<::WorldHistoryPackSource>>>
55 mWorldHistoryPackSources;
56 ::ll::TypedStorage<8, 104, ::PackSourceFactory::SourcesList<::std::unique_ptr<::WorldTemplatePackSource>>>
57 mWorldTemplatePackSources;
58 ::ll::TypedStorage<8, 16, ::RealmsUnknownPackSources> mRealmsUnknownPackSources;
59 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::IInPackagePacks>> mInPackagePacksProvider;
60 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::IPackIOProvider> const> mIO;
61 ::ll::TypedStorage<8, 24, ::Bedrock::NotNullNonOwnerPtr<::PackCommand::IPackCommandPipeline>> mCommands;
62 // NOLINTEND
63
64public:
65 // prevent constructor by default
66 PackSourceFactory();
67
68public:
69 // virtual functions
70 // NOLINTBEGIN
71 virtual ~PackSourceFactory() /*override*/;
72
73#ifdef LL_PLAT_C
74 virtual ::TreatmentPackSource&
75 createTreatmentPackSource(::Core::Path const& path, ::PackType packType) /*override*/;
76
77 virtual ::TreatmentPackSource* getTreatmentPackSource(::Core::Path const& path, ::PackType packType) const
78 /*override*/;
79
80 virtual void removeFromTreatmentPackSource(::Core::Path const& fullPathToPack) /*override*/;
81
82#endif
83 virtual ::WorldTemplatePackSource& createWorldTemplatePackSource(
84 ::Bedrock::NotNullNonOwnerPtr<::IWorldTemplateManager const> const& worldTemplateManager,
85 ::mce::UUID const& worldTemplateId,
86 ::PackType packType,
87 ::PackOrigin packOrigin
88 ) /*override*/;
89
90 virtual ::WorldTemplatePackSource& createWorldTemplatePackSource(
91 ::std::unique_ptr<::WorldTemplateCollectionView> view,
92 ::mce::UUID const& worldTemplateId,
93 ::PackType packType,
94 ::PackOrigin packOrigin
95 ) /*override*/;
96
97 virtual ::WorldTemplatePackSource*
98 getWorldTemplatePackSource(::mce::UUID const& worldTemplateId, ::PackType packType) const /*override*/;
99
100 virtual ::DirectoryPackSource& createDirectoryPackSource(
101 ::Core::Path const& path,
102 ::PackType packType,
103 ::PackOrigin packOrigin,
104 bool isDevDirectory
105 ) /*override*/;
106
107 virtual ::DirectoryPackSource* getDirectoryPackSource(::Core::Path const& path, ::PackType packType) const
108 /*override*/;
109
110 virtual ::InPackagePackSource& createInPackagePackSource(::PackType packType) /*override*/;
111
112 virtual ::InPackagePackSource* getInPackagePackSource(::PackType packType) /*override*/;
113
114 virtual ::WorldHistoryPackSource&
115 createWorldHistoryPackSource(::Core::Path const& pathToWorld, ::PackType packType) /*override*/;
116
117 virtual ::WorldHistoryPackSource*
118 getWorldHistoryPackSource(::Core::Path const& pathToWorld, ::PackType packType) const /*override*/;
119
120 virtual ::DirectoryPackSource* getDirectoryPackSourceContaining(::PackIdVersion const& packId) const /*override*/;
121
122 virtual void removeFromDirectoryPackSource(::Core::Path const& fullPathToPack) /*override*/;
123
124 virtual ::std::unique_ptr<::Realms::RealmsServicePackSource> createRealmsServicePackSource(
125 int64 realmId,
126 ::PackType packType,
127 ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& servicePackData
128 ) /*override*/;
129
130 virtual ::std::unique_ptr<::CompositePackSource>
131 createCompositePackSource(::std::vector<::PackSource*> sources) /*override*/;
132 // NOLINTEND
133
134public:
135 // member functions
136 // NOLINTBEGIN
137 MCAPI PackSourceFactory(
138 ::gsl::not_null<::std::shared_ptr<::IInPackagePacks> const> inPackagePacks,
139 ::std::unique_ptr<::IPackIOProvider> io,
140 ::Bedrock::NotNullNonOwnerPtr<::PackCommand::IPackCommandPipeline> commands
141 );
142
143 MCAPI ::std::unique_ptr<::DirectoryPackSource> createOwnedDirectoryPackSource(
144 ::Core::Path const& path,
145 ::PackType packType,
146 ::PackOrigin packOrigin,
147 bool isDevDirectory
148 );
149
150#ifdef LL_PLAT_C
151 MCAPI ::PackSourceOptions createPackSourceOptions();
152
153 MCAPI void deleteDirectoryPackSourcesFromDirectory(::Core::Path const& directoryPath);
154
155 MCFOLD ::RealmsUnknownPackSources& getRealmsUnknownPackSources();
156#endif
157 // NOLINTEND
158
159public:
160 // constructor thunks
161 // NOLINTBEGIN
162 MCAPI void* $ctor(
163 ::gsl::not_null<::std::shared_ptr<::IInPackagePacks> const> inPackagePacks,
164 ::std::unique_ptr<::IPackIOProvider> io,
165 ::Bedrock::NotNullNonOwnerPtr<::PackCommand::IPackCommandPipeline> commands
166 );
167 // NOLINTEND
168
169public:
170 // destructor thunk
171 // NOLINTBEGIN
172 MCAPI void $dtor();
173 // NOLINTEND
174
175public:
176 // virtual function thunks
177 // NOLINTBEGIN
178 MCAPI ::WorldTemplatePackSource& $createWorldTemplatePackSource(
179 ::Bedrock::NotNullNonOwnerPtr<::IWorldTemplateManager const> const& worldTemplateManager,
180 ::mce::UUID const& worldTemplateId,
181 ::PackType packType,
182 ::PackOrigin packOrigin
183 );
184
185 MCAPI ::WorldTemplatePackSource& $createWorldTemplatePackSource(
186 ::std::unique_ptr<::WorldTemplateCollectionView> view,
187 ::mce::UUID const& worldTemplateId,
188 ::PackType packType,
189 ::PackOrigin packOrigin
190 );
191
192 MCAPI ::WorldTemplatePackSource*
193 $getWorldTemplatePackSource(::mce::UUID const& worldTemplateId, ::PackType packType) const;
194
195 MCAPI ::DirectoryPackSource& $createDirectoryPackSource(
196 ::Core::Path const& path,
197 ::PackType packType,
198 ::PackOrigin packOrigin,
199 bool isDevDirectory
200 );
201
202 MCAPI ::DirectoryPackSource* $getDirectoryPackSource(::Core::Path const& path, ::PackType packType) const;
203
204 MCAPI ::InPackagePackSource& $createInPackagePackSource(::PackType packType);
205
206 MCAPI ::InPackagePackSource* $getInPackagePackSource(::PackType packType);
207
208 MCAPI ::WorldHistoryPackSource& $createWorldHistoryPackSource(::Core::Path const& pathToWorld, ::PackType packType);
209
210 MCAPI ::WorldHistoryPackSource*
211 $getWorldHistoryPackSource(::Core::Path const& pathToWorld, ::PackType packType) const;
212
213 MCAPI ::DirectoryPackSource* $getDirectoryPackSourceContaining(::PackIdVersion const& packId) const;
214
215 MCAPI void $removeFromDirectoryPackSource(::Core::Path const& fullPathToPack);
216
217 MCAPI ::std::unique_ptr<::Realms::RealmsServicePackSource> $createRealmsServicePackSource(
218 int64 realmId,
219 ::PackType packType,
220 ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& servicePackData
221 );
222
223 MCAPI ::std::unique_ptr<::CompositePackSource> $createCompositePackSource(::std::vector<::PackSource*> sources);
224
225#ifdef LL_PLAT_C
226 MCAPI ::TreatmentPackSource& $createTreatmentPackSource(::Core::Path const& path, ::PackType packType);
227
228 MCAPI ::TreatmentPackSource* $getTreatmentPackSource(::Core::Path const& path, ::PackType packType) const;
229
230 MCAPI void $removeFromTreatmentPackSource(::Core::Path const& fullPathToPack);
231#endif
232
233
234 // NOLINTEND
235
236public:
237 // vftables
238 // NOLINTBEGIN
239 MCNAPI static void** $vftable();
240 // NOLINTEND
241};
Definition CompositePackSource.h:17
Definition Path.h:12
Definition DirectoryPackSource.h:24
Definition IInPackagePacks.h:16
Definition IPackIOProvider.h:15
Definition IPackSourceFactory.h:29
Definition IWorldTemplateManager.h:17
Definition InPackagePackSource.h:17
Definition IPackCommandPipeline.h:19
static MCAPI void ** $vftable()
Definition PackSource.h:30
Definition Pack.h:28
Definition RealmsServicePackSource.h:19
Definition TreatmentPackSource.h:18
Definition WorldHistoryPackSource.h:25
Definition WorldTemplateCollectionView.h:13
Definition WorldTemplatePackSource.h:22
Definition UUID.h:7
Definition PackIdVersion.h:10
Definition PackSourceFactory.h:43
Definition PackSourceOptions.h:5