LeviLamina
Loading...
Searching...
No Matches
DiskSerializationManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7namespace cg { class ImageBuffer; }
8// clang-format on
9
10namespace dragon::texturestreaming {
11
12struct DiskSerializationManager {
13public:
14 // DiskSerializationManager inner types declare
15 // clang-format off
16 struct ImageTime;
17 struct ImageMetadata;
18 struct ImageResidentEntry;
19 // clang-format on
20
21 // DiskSerializationManager inner types define
22 struct ImageTime {
23 public:
24 // member variables
25 // NOLINTBEGIN
32 // NOLINTEND
33
34 public:
35 // prevent constructor by default
36 ImageTime& operator=(ImageTime const&);
37 ImageTime(ImageTime const&);
38 ImageTime();
39 };
40
41 struct ImageMetadata {
42 public:
43 // member variables
44 // NOLINTBEGIN
52 // NOLINTEND
53
54 public:
55 // prevent constructor by default
56 ImageMetadata& operator=(ImageMetadata const&);
57 ImageMetadata(ImageMetadata const&);
58 ImageMetadata();
59 };
60
61 struct ImageResidentEntry {
62 public:
63 // member variables
64 // NOLINTBEGIN
68 // NOLINTEND
69
70 public:
71 // prevent constructor by default
72 ImageResidentEntry& operator=(ImageResidentEntry const&);
73 ImageResidentEntry(ImageResidentEntry const&);
74 ImageResidentEntry();
75 };
76
77public:
78 // member variables
79 // NOLINTBEGIN
98 // NOLINTEND
99
100public:
101 // prevent constructor by default
102 DiskSerializationManager& operator=(DiskSerializationManager const&);
103 DiskSerializationManager(DiskSerializationManager const&);
104 DiskSerializationManager();
105
106public:
107 // member functions
108 // NOLINTBEGIN
109#ifdef LL_PLAT_C
110 MCNAPI DiskSerializationManager(
111 ::std::string fileLocation,
112 uint blockSize,
113 uint maxSize,
114 uint maxMipSize,
115 bool forceRestartCache
116 );
117
118 MCNAPI ::std::optional<::std::vector<uint>> _claimFirstFreeBlocks(uint numberOfBlocks);
119
120 MCNAPI ::std::vector<::cg::ImageBuffer> _getMipChainForImageMetadata(
122 );
123
124 MCNAPI void _initializeFreeBlockList();
125
126 MCNAPI void _initializeResidencyTable();
127
128 MCNAPI bool _isHeaderSame();
129
130 MCNAPI ::std::optional<::dragon::texturestreaming::DiskSerializationManager::ImageMetadata>
131 _isImageResident(uint64 const& key);
132
133 MCNAPI uint64 _read(void* buffer, uint64& position, uint64 size);
134
135 MCNAPI ::std::optional<::std::vector<::cg::ImageBuffer>>
137
138 MCNAPI void _write(void const* buffer, uint64& position, uint64 size);
139
140 MCNAPI void _writeMipChainToDisk(
141 ::std::vector<::cg::ImageBuffer> const& mipChain,
142 ::std::vector<uint> const& addresses,
143 uchar firstSerializedMipOffset
144 );
145
146 MCNAPI bool _writeMipChainToResidencyTable(
147 uint64 const& key,
148 ::std::vector<::cg::ImageBuffer> const& mipChain,
149 ::std::vector<uint> const& addresses,
150 uchar startingMipInChain,
151 uchar firstSerializedMipOffset
152 );
153
154 MCNAPI void _writeNewFile();
155
156 MCNAPI ::std::optional<::std::pair<::std::vector<::cg::ImageBuffer>, uchar>> deserialize(uint64 const& imageKey);
157
158 MCNAPI void flush();
159
160 MCNAPI ::std::vector<::std::pair<uint64, ::std::string>> getSerializationDebugEntries() const;
161
162 MCNAPI void
163 serialize(uint64 const& imageHash, ::std::vector<::cg::ImageBuffer> const& mipChain, uchar startingMipInChain);
164
165 MCNAPI ~DiskSerializationManager();
166#endif
167 // NOLINTEND
168
169public:
170 // static variables
171 // NOLINTBEGIN
172 MCNAPI static ::std::array<uint, 256> const& mCrcTable();
173 // NOLINTEND
174
175public:
176 // constructor thunks
177 // NOLINTBEGIN
178#ifdef LL_PLAT_C
179 MCNAPI void*
180 $ctor(::std::string fileLocation, uint blockSize, uint maxSize, uint maxMipSize, bool forceRestartCache);
181#endif
182 // NOLINTEND
183
184public:
185 // destructor thunk
186 // NOLINTBEGIN
187#ifdef LL_PLAT_C
188 MCNAPI void $dtor();
189#endif
190 // NOLINTEND
191};
192
193} // namespace dragon::texturestreaming
Definition ImageBuffer.h:16
Definition buffer.h:5
static MCAPI ::std::array< uint, 256 > const & mCrcTable()
Definition Alias.h:14
Definition serialize.h:11