42 template <
typename T0>
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;
71 virtual ~PackSourceFactory() ;
74 virtual ::TreatmentPackSource&
75 createTreatmentPackSource(
::Core::Path const& path, ::PackType packType) ;
77 virtual ::TreatmentPackSource* getTreatmentPackSource(
::Core::Path const& path, ::PackType packType)
const
80 virtual void removeFromTreatmentPackSource(
::Core::Path const& fullPathToPack) ;
83 virtual ::WorldTemplatePackSource& createWorldTemplatePackSource(
84 ::Bedrock::NotNullNonOwnerPtr<::IWorldTemplateManager const>
const& worldTemplateManager,
87 ::PackOrigin packOrigin
90 virtual ::WorldTemplatePackSource& createWorldTemplatePackSource(
91 ::std::unique_ptr<::WorldTemplateCollectionView> view,
94 ::PackOrigin packOrigin
97 virtual ::WorldTemplatePackSource*
98 getWorldTemplatePackSource(
::mce::UUID const& worldTemplateId, ::PackType packType)
const ;
100 virtual ::DirectoryPackSource& createDirectoryPackSource(
103 ::PackOrigin packOrigin,
107 virtual ::DirectoryPackSource* getDirectoryPackSource(
::Core::Path const& path, ::PackType packType)
const
110 virtual ::InPackagePackSource& createInPackagePackSource(::PackType packType) ;
112 virtual ::InPackagePackSource* getInPackagePackSource(::PackType packType) ;
114 virtual ::WorldHistoryPackSource&
115 createWorldHistoryPackSource(
::Core::Path const& pathToWorld, ::PackType packType) ;
117 virtual ::WorldHistoryPackSource*
118 getWorldHistoryPackSource(
::Core::Path const& pathToWorld, ::PackType packType)
const ;
120 virtual ::DirectoryPackSource* getDirectoryPackSourceContaining(
::PackIdVersion const& packId)
const ;
122 virtual void removeFromDirectoryPackSource(
::Core::Path const& fullPathToPack) ;
124 virtual ::std::unique_ptr<::Realms::RealmsServicePackSource> createRealmsServicePackSource(
127 ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& servicePackData
130 virtual ::std::unique_ptr<::CompositePackSource>
131 createCompositePackSource(::std::vector<::PackSource*> sources) ;
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
143 MCAPI ::std::unique_ptr<::DirectoryPackSource> createOwnedDirectoryPackSource(
146 ::PackOrigin packOrigin,
151 MCAPI ::PackSourceOptions createPackSourceOptions();
153 MCAPI
void deleteDirectoryPackSourcesFromDirectory(
::Core::Path const& directoryPath);
155 MCFOLD ::RealmsUnknownPackSources& getRealmsUnknownPackSources();
163 ::gsl::not_null<::std::shared_ptr<::IInPackagePacks>
const> inPackagePacks,
164 ::std::unique_ptr<::IPackIOProvider> io,
165 ::Bedrock::NotNullNonOwnerPtr<::PackCommand::IPackCommandPipeline> commands
178 MCAPI ::WorldTemplatePackSource& $createWorldTemplatePackSource(
179 ::Bedrock::NotNullNonOwnerPtr<::IWorldTemplateManager const>
const& worldTemplateManager,
182 ::PackOrigin packOrigin
185 MCAPI ::WorldTemplatePackSource& $createWorldTemplatePackSource(
186 ::std::unique_ptr<::WorldTemplateCollectionView> view,
189 ::PackOrigin packOrigin
192 MCAPI ::WorldTemplatePackSource*
193 $getWorldTemplatePackSource(
::mce::UUID const& worldTemplateId, ::PackType packType)
const;
195 MCAPI ::DirectoryPackSource& $createDirectoryPackSource(
198 ::PackOrigin packOrigin,
202 MCAPI ::DirectoryPackSource* $getDirectoryPackSource(
::Core::Path const& path, ::PackType packType)
const;
204 MCAPI ::InPackagePackSource& $createInPackagePackSource(::PackType packType);
206 MCAPI ::InPackagePackSource* $getInPackagePackSource(::PackType packType);
208 MCAPI ::WorldHistoryPackSource& $createWorldHistoryPackSource(
::Core::Path const& pathToWorld, ::PackType packType);
210 MCAPI ::WorldHistoryPackSource*
211 $getWorldHistoryPackSource(
::Core::Path const& pathToWorld, ::PackType packType)
const;
213 MCAPI ::DirectoryPackSource* $getDirectoryPackSourceContaining(
::PackIdVersion const& packId)
const;
215 MCAPI
void $removeFromDirectoryPackSource(
::Core::Path const& fullPathToPack);
217 MCAPI ::std::unique_ptr<::Realms::RealmsServicePackSource> $createRealmsServicePackSource(
220 ::std::vector<::gsl::not_null<::std::shared_ptr<::Pack>>>&& servicePackData
223 MCAPI ::std::unique_ptr<::CompositePackSource> $createCompositePackSource(::std::vector<::PackSource*> sources);
226 MCAPI ::TreatmentPackSource& $createTreatmentPackSource(
::Core::Path const& path, ::PackType packType);
228 MCAPI ::TreatmentPackSource* $getTreatmentPackSource(
::Core::Path const& path, ::PackType packType)
const;
230 MCAPI
void $removeFromTreatmentPackSource(
::Core::Path const& fullPathToPack);