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