LeviLamina
Loading...
Searching...
No Matches
PackAccessStrategy.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
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"
12
13// auto generated forward declare list
14// clang-format off
15class ContentIdentity;
16class PackAssetSet;
19namespace Bedrock::Resources { class PreloadedPathHandle; }
20namespace Bedrock::Resources::Archive { class Reader; }
21namespace Core { class Path; }
22namespace Core { class PathView; }
23namespace Json { class Value; }
24// clang-format on
25
26class PackAccessStrategy {
27public:
28 // member variables
29 // NOLINTBEGIN
32 // NOLINTEND
33
34public:
35 // prevent constructor by default
36 PackAccessStrategy& operator=(PackAccessStrategy const&);
37 PackAccessStrategy(PackAccessStrategy const&);
38
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual ~PackAccessStrategy();
43
44 virtual uint64 getPackSize() const = 0;
45
46 virtual ::ResourceLocation const& getPackLocation() const = 0;
47
48 virtual ::std::string const& getPackName() const = 0;
49
50 virtual bool isWritable() const = 0;
51
52 virtual bool isTrusted() const = 0;
53
54 virtual bool hasAsset(::Core::Path const& packRelativePath, bool trustedContentOnly, bool caseSensative) const = 0;
55
56 virtual bool hasFolder(::Core::Path const& packRelativePath) const = 0;
57
58 virtual bool
59 getAsset(::Core::Path const& packRelativePath, ::std::string& result, bool trustedContentOnly) const = 0;
60
61 virtual void forEachIn(
62 ::Core::Path const& packRelativePath,
63 ::std::function<void(::Core::Path const&)> callback,
64 bool recurseAnyways
65 ) const = 0;
66
67 virtual void
68 forEachInAssetSet(::Core::Path const& packRelativePath, ::std::function<void(::Core::Path const&)> callback) const;
69
70 virtual ::PackAccessStrategyType getStrategyType() const = 0;
71
72 virtual ::Core::PathBuffer<::std::string> const& getSubPath() const;
73
74 virtual bool supportsSignatureVerification() const;
75
76 virtual ::std::unique_ptr<::PackAccessStrategy> createSubPack(::Core::Path const& subPath) const = 0;
77
78 virtual ::PackAccessAssetGenerationResult generateAssetSet();
79
80 virtual ::PackAccessAssetGenerationResult regenerateAssetSet();
81
82 virtual bool canRecurse() const;
83
84 virtual void unload() = 0;
85
86 virtual ::ContentIdentity readContentIdentity() const;
87
88 virtual bool isAssetExtractionViable() const;
89
90 virtual ::Bedrock::Result<::StreamableAssetSource> getStreamableSource(
91 ::Core::Path const& packRelativePath,
92 ::std::optional<::Core::PathView> tempDirectory
93 ) const = 0;
94
95 virtual ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
96 _loadArchive(::Core::Path const& packRelativePath) const;
97
98 virtual ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
99 _preloadSubFolders(::Core::Path const& packRelativePath) const;
100 // NOLINTEND
101
102public:
103 // member functions
104 // NOLINTBEGIN
106
107 MCNAPI explicit PackAccessStrategy(::std::unique_ptr<::PackAssetSet>&& assetSet);
108
109 MCNAPI void _clearAssetSet();
110
111 MCNAPI void _forEachInAssetSet(::std::function<void(::Core::Path const&)> callback) const;
112
113 MCNAPI ::std::string const* const _getDecryptionKey(::Core::Path const& path) const;
114
115 MCNAPI ::Bedrock::Resources::PreloadState
116 _getPreloaded(::Core::Path const& packRelativePath, ::std::string& result) const;
117
118 MCNAPI ::Bedrock::Resources::PreloadState _hasPreloaded(::Core::Path const& packRelativePath) const;
119
120 MCNAPI bool _isInAssetSet(::Core::Path const& path) const;
121
122 MCNAPI bool _isInAssetSetCaseInsensative(::Core::Path const& path) const;
123
125
126 MCNAPI bool hasGeneratedAssetSet() const;
127
128 MCNAPI bool isAssetSetEmpty() const;
129
130 MCNAPI ::Bedrock::Resources::PreloadedPathHandle preloadArchive(::Core::Path const& packRelativePath) const;
131
132 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
133 preloadPath(::Core::Path const& packRelativePath) const;
134 // NOLINTEND
135
136public:
137 // static variables
138 // NOLINTBEGIN
139 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& ARCHIVE_EXTENSION();
140
141 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& ARCHIVE_FOLDER();
142
143 MCNAPI static ::Core::PathBuffer<::std::string> const& PACK_IMPORT_LOCK_FILE();
144 // NOLINTEND
145
146public:
147 // constructor thunks
148 // NOLINTBEGIN
149 MCNAPI void* $ctor();
150
151 MCNAPI void* $ctor(::std::unique_ptr<::PackAssetSet>&& assetSet);
152 // NOLINTEND
153
154public:
155 // destructor thunk
156 // NOLINTBEGIN
157 MCNAPI void $dtor();
158 // NOLINTEND
159
160public:
161 // virtual function thunks
162 // NOLINTBEGIN
163 MCNAPI void
164 $forEachInAssetSet(::Core::Path const& packRelativePath, ::std::function<void(::Core::Path const&)> callback) const;
165
166 MCNAPI ::Core::PathBuffer<::std::string> const& $getSubPath() const;
167
169
170 MCNAPI ::PackAccessAssetGenerationResult $generateAssetSet();
171
172 MCNAPI ::PackAccessAssetGenerationResult $regenerateAssetSet();
173
174 MCNAPI bool $canRecurse() const;
175
176 MCNAPI ::ContentIdentity $readContentIdentity() const;
177
178 MCNAPI bool $isAssetExtractionViable() const;
179
180 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
181 $_loadArchive(::Core::Path const& packRelativePath) const;
182
183 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
184 $_preloadSubFolders(::Core::Path const& packRelativePath) const;
185
186
187 // NOLINTEND
188
189public:
190 // vftables
191 // NOLINTBEGIN
192 MCNAPI static void** $vftable();
193 // NOLINTEND
194};
Definition PreloadedPathHandle.h:16
Definition ContentIdentity.h:8
Definition PathView.h:19
Definition Path.h:12
Definition Value.h:16
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 * $ctor()
MCAPI void _clearAssetSet()
MCAPI bool $isAssetExtractionViable() const
MCAPI ::Core::PathBuffer<::std::string > const & $getSubPath() const
MCAPI void $dtor()
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
Definition Alias.h:14