3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/file/PathBuffer.h"
7#include "mc/deps/core/string/BasicStackString.h"
8#include "mc/deps/resource_processing/PreloadState.h"
9#include "mc/platform/Result.h"
10#include "mc/resources/PackAccessAssetGenerationResult.h"
11#include "mc/resources/PackAccessStrategyType.h"
20namespace Bedrock::Resources::Archive {
class Reader; }
21namespace Core {
class Path; }
23namespace Json {
class Value; }
26class PackAccessStrategy {
36 PackAccessStrategy& operator=(PackAccessStrategy
const&);
42 virtual ~PackAccessStrategy();
44 virtual uint64 getPackSize()
const = 0;
46 virtual ::ResourceLocation
const& getPackLocation()
const = 0;
48 virtual ::std::string
const& getPackName()
const = 0;
50 virtual bool isWritable()
const = 0;
52 virtual bool isTrusted()
const = 0;
54 virtual bool hasAsset(
::Core::Path const& packRelativePath,
bool trustedContentOnly,
bool caseSensative)
const = 0;
56 virtual bool hasFolder(
::Core::Path const& packRelativePath)
const = 0;
59 getAsset(
::Core::Path const& packRelativePath, ::std::string& result,
bool trustedContentOnly)
const = 0;
61 virtual void forEachIn(
70 virtual ::PackAccessStrategyType getStrategyType()
const = 0;
72 virtual ::Core::PathBuffer<::std::string>
const& getSubPath()
const;
74 virtual bool supportsSignatureVerification()
const;
76 virtual ::std::unique_ptr<::PackAccessStrategy> createSubPack(
::Core::Path const& subPath)
const = 0;
78 virtual ::PackAccessAssetGenerationResult generateAssetSet();
80 virtual ::PackAccessAssetGenerationResult regenerateAssetSet();
82 virtual bool canRecurse()
const;
84 virtual void unload() = 0;
86 virtual ::ContentIdentity readContentIdentity()
const;
88 virtual bool isAssetExtractionViable()
const;
90 virtual ::Bedrock::Result<::StreamableAssetSource> getStreamableSource(
92 ::std::optional<::Core::PathView> tempDirectory
95 virtual ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
96 _loadArchive(
::Core::Path const& packRelativePath)
const;
98 virtual ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
99 _preloadSubFolders(
::Core::Path const& packRelativePath)
const;
115 MCNAPI ::Bedrock::Resources::PreloadState
132 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
139 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
const&
ARCHIVE_EXTENSION();
141 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>>
const&
ARCHIVE_FOLDER();
151 MCNAPI
void*
$ctor(::std::unique_ptr<::PackAssetSet>&& assetSet);
166 MCNAPI ::Core::PathBuffer<::std::string>
const&
$getSubPath()
const;
180 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
183 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
Definition PreloadedPathHandle.h:16
Definition ContentIdentity.h:8
MCAPI bool isAssetSetEmpty() const
MCAPI::Bedrock::Resources::PreloadedPathHandle preloadArchive(::Core::Path const &packRelativePath) const
MCAPI void $forEachInAssetSet(::Core::Path const &packRelativePath, ::std::function< void(::Core::Path const &)> callback) const
MCAPI bool hasGeneratedAssetSet() const
MCAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle > $_preloadSubFolders(::Core::Path const &packRelativePath) const
MCAPI PackAccessStrategy(::std::unique_ptr<::PackAssetSet > &&assetSet)
MCAPI::ContentIdentity $readContentIdentity() const
MCAPI bool $canRecurse() const
static MCAPI void ** $vftable()
static MCAPI ::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > const & ARCHIVE_EXTENSION()
MCAPI void _clearAssetSet()
MCAPI bool $isAssetExtractionViable() const
MCAPI ::Core::PathBuffer<::std::string > const & $getSubPath() const
MCAPI bool _isInAssetSet(::Core::Path const &path) const
MCAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader > $_loadArchive(::Core::Path const &packRelativePath) const
MCAPI void _upgradeContentsFile(::Json::Value &root)
MCAPI void * $ctor(::std::unique_ptr<::PackAssetSet > &&assetSet)
MCAPI bool $supportsSignatureVerification() const
MCAPI::Bedrock::Resources::PreloadState _hasPreloaded(::Core::Path const &packRelativePath) const
MCAPI::PackAccessAssetGenerationResult $regenerateAssetSet()
MCAPI::Bedrock::Resources::PreloadState _getPreloaded(::Core::Path const &packRelativePath, ::std::string &result) const
MCAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle > preloadPath(::Core::Path const &packRelativePath) const
MCAPI void _forEachInAssetSet(::std::function< void(::Core::Path const &)> callback) const
MCAPI::PackAccessAssetGenerationResult $generateAssetSet()
static MCAPI ::Core::PathBuffer<::std::string > const & PACK_IMPORT_LOCK_FILE()
static MCAPI ::Core::PathBuffer<::Core::BasicStackString< char, 1024 > > const & ARCHIVE_FOLDER()
MCAPI PackAccessStrategy()
MCAPI bool _isInAssetSetCaseInsensative(::Core::Path const &path) const
MCAPI::std::string const *const _getDecryptionKey(::Core::Path const &path) const
Definition PackAssetSet.h:13
Definition ResourceLocation.h:15
Definition StreamableAssetSource.h:5