3#include "mc/_HeaderOutputPredefine.h"
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/platform/Result.h"
8#include "mc/resources/AssetEncryptionMode.h"
9#include "mc/resources/DirectoryPackAccessStrategy.h"
10#include "mc/resources/PackAccessAssetGenerationResult.h"
11#include "mc/resources/PackAccessStrategyType.h"
22namespace Bedrock::Resources::Archive {
class Reader; }
23namespace Core {
class Path; }
27class EncryptedFileAccessStrategy :
public ::DirectoryPackAccessStrategy {
38 EncryptedFileAccessStrategy& operator=(EncryptedFileAccessStrategy
const&);
39 EncryptedFileAccessStrategy(EncryptedFileAccessStrategy
const&);
40 EncryptedFileAccessStrategy();
45 virtual ::PackAccessAssetGenerationResult generateAssetSet() ;
47 virtual bool isTrusted()
const ;
49 virtual bool isWritable()
const ;
51 virtual bool hasAsset(
::Core::Path const& packRelativePath,
bool trustedContentOnly,
bool caseSensative)
const
54 virtual bool getAsset(
::Core::Path const& packRelativePath, ::std::string& result,
bool trustedContentOnly)
const
57 virtual ::std::unique_ptr<::PackAccessStrategy> createSubPack(
::Core::Path const& subPath)
const ;
59 virtual bool isAssetExtractionViable()
const ;
61 virtual ::Bedrock::Result<::StreamableAssetSource>
62 getStreamableSource(
::Core::Path const& packRelativePath, ::std::optional<::Core::PathView> tempDirectory)
const
65 virtual ::PackAccessStrategyType getStrategyType()
const ;
67 virtual ::ContentIdentity readContentIdentity()
const ;
69 virtual ::std::string _getContentsFile();
71 virtual ::std::string _getRawContentsFile()
const;
73 virtual ::std::string _getEncryptedAssetStream(
::Core::Path const& packRelativePath)
const;
75 virtual ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
76 _loadArchive(
::Core::Path const& packRelativePath)
const ;
85 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>
const& keyProvider,
88 ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo>> assetSet
93 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
104 ::gsl::span<char const> input,
105 ::gsl::span<char> output,
106 ::std::string
const& key,
107 uint64& bytesWritten,
108 ::AssetEncryptionMode mode
112 ::std::string& stream,
113 ::std::string
const& key,
115 ::AssetEncryptionMode mode,
120 MCNAPI
static bool contentFileExists(
::Core::Path const& pathToPack);
132 ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const>
const& keyProvider,
135 ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo>> assetSet
156 MCNAPI ::Bedrock::Result<::StreamableAssetSource>
169 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
Definition ContentIdentity.h:8
MCAPI bool $isWritable() const
static MCAPI bool _transformStream(::std::string &stream, ::std::string const &key, ::ContentIdentity const &contentIdentity, ::AssetEncryptionMode mode, uint64 offset)
MCAPI::std::string _decryptContentsFile(::std::string contents)
MCAPI::std::string $_getRawContentsFile() const
MCAPI bool $isAssetExtractionViable() const
MCAPI ::Bedrock::Result<::StreamableAssetSource > $getStreamableSource(::Core::Path const &packRelativePath, ::std::optional<::Core::PathView > tempDirectory) const
MCAPI::std::string $_getContentsFile()
MCAPI bool $isTrusted() const
MCAPI::ContentIdentity $readContentIdentity() const
MCAPI void * $ctor(::ResourceLocation const &resourceLocation, ::ContentIdentity const &contentIdentity, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > const &keyProvider, bool canRecurse, ::IPackIOProvider const &io, ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo > > assetSet)
MCAPI EncryptedFileAccessStrategy(::ResourceLocation const &resourceLocation, ::ContentIdentity const &contentIdentity, ::Bedrock::NotNullNonOwnerPtr<::IContentKeyProvider const > const &keyProvider, bool canRecurse, ::IPackIOProvider const &io, ::std::optional<::std::unordered_map<::Core::Path, ::EncryptedAssetInfo > > assetSet)
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::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::PackAccessAssetGenerationResult $generateAssetSet()
MCAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader > _loadArchive(::Core::PathView packRelativeArchiveFile, ::std::string const &key) const
static MCAPI bool _transformStream(::gsl::span< char const > input, ::gsl::span< char > output, ::std::string const &key, uint64 &bytesWritten, ::AssetEncryptionMode mode)
MCAPI bool $getAsset(::Core::Path const &packRelativePath, ::std::string &result, bool trustedContentOnly) const
Definition IContentKeyProvider.h:13
Definition IPackIOProvider.h:17
Definition PackAccessStrategy.h:25
Definition ResourceLocation.h:15
Definition EncryptedAssetInfo.h:5
Definition StreamableAssetSource.h:5