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 hasAsset(::Core::Path const& packRelativePath, bool trustedContentOnly, bool caseSensative) const = 0;
56
57 virtual bool hasFolder(::Core::Path const& packRelativePath) const = 0;
58
59 virtual bool
60 getAsset(::Core::Path const& packRelativePath, ::std::string& result, bool trustedContentOnly) const = 0;
61
62 virtual void forEachIn(
63 ::Core::Path const& packRelativePath,
64 ::std::function<void(::Core::Path const&)> callback,
65 bool recurseAnyways
66 ) const = 0;
67
68 virtual void
69 forEachInAssetSet(::Core::Path const& packRelativePath, ::std::function<void(::Core::Path const&)> callback) const;
70
71 virtual ::PackAccessStrategyType getStrategyType() const = 0;
72
73 virtual ::Core::PathBuffer<::std::string> const& getSubPath() const;
74
75 virtual bool supportsSignatureVerification() const;
76
77 virtual ::std::unique_ptr<::PackAccessStrategy> createSubPack(::Core::Path const& subPath) const = 0;
78
79 virtual ::PackAccessAssetGenerationResult generateAssetSet();
80
81 virtual ::PackAccessAssetGenerationResult regenerateAssetSet();
82
83 virtual bool canRecurse() const;
84
85 virtual void unload() = 0;
86
87 virtual ::ContentIdentity readContentIdentity() const;
88
89 virtual bool isAssetExtractionViable() const;
90
91 virtual ::Bedrock::Result<::StreamableAssetSource> getStreamableSource(
92 ::Core::Path const& packRelativePath,
93 ::std::optional<::Core::PathView> tempDirectory
94 ) const = 0;
95
96 virtual ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
97 _loadArchive(::Core::Path const& packRelativePath) const;
98
99 virtual ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
100 _preloadSubFolders(::Core::Path const& packRelativePath) const;
101 // NOLINTEND
102
103public:
104 // member functions
105 // NOLINTBEGIN
107 ::std::unique_ptr<::PackAssetSet>&& assetSet,
108 ::gsl::not_null<::std::shared_ptr<::Core::FileHandlePool>> handlePool
109 );
110
111 MCNAPI ::Bedrock::Resources::PreloadedPathHandle preloadArchive(::Core::Path const& packRelativePath) const;
112
113 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
114 preloadPath(::Core::Path const& packRelativePath) const;
115 // NOLINTEND
116
117public:
118 // static variables
119 // NOLINTBEGIN
120 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& ARCHIVE_EXTENSION();
121
122 MCNAPI static ::Core::PathBuffer<::Core::BasicStackString<char, 1024>> const& ARCHIVE_FOLDER();
123
124 MCNAPI static ::Core::PathBuffer<::std::string> const& PACK_IMPORT_LOCK_FILE();
125 // NOLINTEND
126
127public:
128 // constructor thunks
129 // NOLINTBEGIN
130 MCNAPI void* $ctor(
131 ::std::unique_ptr<::PackAssetSet>&& assetSet,
132 ::gsl::not_null<::std::shared_ptr<::Core::FileHandlePool>> handlePool
133 );
134 // NOLINTEND
135
136public:
137 // destructor thunk
138 // NOLINTBEGIN
139 MCNAPI void $dtor();
140 // NOLINTEND
141
142public:
143 // virtual function thunks
144 // NOLINTBEGIN
145 MCNAPI void
146 $forEachInAssetSet(::Core::Path const& packRelativePath, ::std::function<void(::Core::Path const&)> callback) const;
147
148 MCNAPI ::Core::PathBuffer<::std::string> const& $getSubPath() const;
149
151
152 MCNAPI ::PackAccessAssetGenerationResult $generateAssetSet();
153
154 MCNAPI ::PackAccessAssetGenerationResult $regenerateAssetSet();
155
156 MCNAPI bool $canRecurse() const;
157
158 MCNAPI ::ContentIdentity $readContentIdentity() const;
159
160 MCNAPI bool $isAssetExtractionViable() const;
161
162 MCNAPI ::std::unique_ptr<::Bedrock::Resources::Archive::Reader>
163 $_loadArchive(::Core::Path const& packRelativePath) const;
164
165 MCNAPI ::std::vector<::Bedrock::Resources::PreloadedPathHandle>
166 $_preloadSubFolders(::Core::Path const& packRelativePath) const;
167
168
169 // NOLINTEND
170
171public:
172 // vftables
173 // NOLINTBEGIN
174 MCNAPI static void** $vftable();
175 // NOLINTEND
176};
Definition PreloadedPathHandle.h:16
Definition ContentIdentity.h:8
Definition FileHandlePool.h:14
Definition PathView.h:19
Definition Path.h:11
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:14
Definition ResourceLocation.h:15
Definition StreamableAssetSource.h:5
Definition Alias.h:14