3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/resources/DirectoryPackAccessStrategy.h"
8#include "mc/resources/PackAccessAssetGenerationResult.h"
9#include "mc/resources/PackAccessStrategyType.h"
17namespace Bedrock::Resources::Archive {
class Reader; }
18namespace Core {
class Path; }
22class EncryptedFileAccessStrategy :
public ::DirectoryPackAccessStrategy {
32 EncryptedFileAccessStrategy& operator=(EncryptedFileAccessStrategy
const&);
33 EncryptedFileAccessStrategy(EncryptedFileAccessStrategy
const&);
34 EncryptedFileAccessStrategy();
39 virtual ::PackAccessAssetGenerationResult generateAssetSet() ;
41 virtual bool isTrusted()
const ;
43 virtual bool isWritable()
const ;
45 virtual bool hasAsset(
::Core::Path const& packRelativePath,
bool trustedContentOnly,
bool caseSensative)
const
48 virtual bool getAsset(
::Core::Path const& packRelativePath, ::std::string& result,
bool trustedContentOnly)
const
51 virtual ::std::unique_ptr<::PackAccessStrategy> createSubPack(
::Core::Path const& subPath)
const ;
53 virtual bool isAssetExtractionViable()
const ;
55 virtual ::PackAccessStrategyType getStrategyType()
const ;
57 virtual ::ContentIdentity readContentIdentity()
const ;
59 virtual ::std::string _getContentsFile();
61 virtual ::std::string _getEncryptedAssetStream(
::Core::Path const& packRelativePath)
const;
63 virtual ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
64 _loadArchive(
::Core::Path const& packRelativePath)
const ;
66 virtual ~EncryptedFileAccessStrategy() ;
75 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>
const& keyProvider,
77 ::std::optional<::std::unordered_map<::Core::Path, ::std::string>> assetSet
80 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
91 ::std::string& stream,
92 ::std::string
const& key,
106 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>
const& keyProvider,
108 ::std::optional<::std::unordered_map<::Core::Path, ::std::string>> assetSet
143 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
Definition ContentIdentity.h:8
MCAPI bool $isWritable() const
MCAPI bool $isAssetExtractionViable() const
MCAPI::std::string $_getContentsFile()
MCAPI bool $isTrusted() const
MCAPI::ContentIdentity $readContentIdentity() const
static MCAPI void _transformStream(::std::string &stream, ::std::string const &key, ::ContentIdentity const &contentIdentity, uint64 offset)
static MCAPI bool isValidEncryptedPack(::Core::Path const &pathToPack, ::ContentIdentity &contentIdentity)
MCAPI bool $hasAsset(::Core::Path const &packRelativePath, bool trustedContentOnly, bool caseSensative) const
static MCAPI bool _getContentIdentityFromEncryptedStream(::std::string &stream, ::ContentIdentity &contentIdentity)
MCAPI EncryptedFileAccessStrategy(::ResourceLocation const &resourceLocation, ::ContentIdentity const &contentIdentity, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > const &keyProvider, bool canRecurse, ::std::optional<::std::unordered_map<::Core::Path, ::std::string > > assetSet)
MCAPI::std::string $_getEncryptedAssetStream(::Core::Path const &packRelativePath) const
MCAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader > $_loadArchive(::Core::Path const &packRelativePath) const
MCAPI ::std::unique_ptr<::PackAccessStrategy > $createSubPack(::Core::Path const &subPath) const
static MCAPI void ** $vftable()
MCAPI::PackAccessStrategyType $getStrategyType() const
MCAPI void * $ctor(::ResourceLocation const &resourceLocation, ::ContentIdentity const &contentIdentity, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > const &keyProvider, bool canRecurse, ::std::optional<::std::unordered_map<::Core::Path, ::std::string > > assetSet)
MCAPI::PackAccessAssetGenerationResult $generateAssetSet()
MCAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader > _loadArchive(::Core::PathView packRelativeArchiveFile, ::std::string const &key) const
MCAPI bool $getAsset(::Core::Path const &packRelativePath, ::std::string &result, bool trustedContentOnly) const
Definition IContentKeyProvider.h:13
Definition PackAccessStrategy.h:21
Definition ResourceLocation.h:15