aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/on_disk/chunks/reader.cpp
diff options
context:
space:
mode:
authordenplusplus <denplusplus@yandex-team.ru>2022-02-10 16:47:34 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:47:34 +0300
commit57c20d143e8a438cd76b9fdc3ca2e8ee3ac1f32a (patch)
treecc63639f8e502db19a82c20e2861c6d1edbf9fea /library/cpp/on_disk/chunks/reader.cpp
parent464ba3814a83db4f2d5327393b0b6eaf0c86bfd7 (diff)
downloadydb-57c20d143e8a438cd76b9fdc3ca2e8ee3ac1f32a.tar.gz
Restoring authorship annotation for <denplusplus@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/on_disk/chunks/reader.cpp')
-rw-r--r--library/cpp/on_disk/chunks/reader.cpp70
1 files changed, 35 insertions, 35 deletions
diff --git a/library/cpp/on_disk/chunks/reader.cpp b/library/cpp/on_disk/chunks/reader.cpp
index 6e28cbf367..af4fef0ecf 100644
--- a/library/cpp/on_disk/chunks/reader.cpp
+++ b/library/cpp/on_disk/chunks/reader.cpp
@@ -1,52 +1,52 @@
#include <util/generic/cast.h>
-#include <util/memory/blob.h>
+#include <util/memory/blob.h>
#include <util/system/unaligned_mem.h>
-
-#include "reader.h"
-
-template <typename T>
+
+#include "reader.h"
+
+template <typename T>
static inline void ReadAux(const char* data, T* aux, T count, TVector<const char*>* result) {
- result->resize(count);
- for (size_t i = 0; i < count; ++i) {
+ result->resize(count);
+ for (size_t i = 0; i < count; ++i) {
(*result)[i] = data + ReadUnaligned<T>(aux + i);
- }
-}
-
+ }
+}
+
TChunkedDataReader::TChunkedDataReader(const TBlob& blob) {
- const char* cdata = blob.AsCharPtr();
- const size_t size = blob.Size();
+ const char* cdata = blob.AsCharPtr();
+ const size_t size = blob.Size();
Y_ENSURE(size >= sizeof(ui32), "Empty file with chunks. ");
ui32 last = ReadUnaligned<ui32>((ui32*)(cdata + size) - 1);
-
- if (last != 0) { // old version file
- ui32* aux = (ui32*)(cdata + size);
- ui32 count = last;
- Size = size - (count + 1) * sizeof(ui32);
-
- aux -= (count + 1);
- ReadAux<ui32>(cdata, aux, count, &Offsets);
- return;
- }
-
+
+ if (last != 0) { // old version file
+ ui32* aux = (ui32*)(cdata + size);
+ ui32 count = last;
+ Size = size - (count + 1) * sizeof(ui32);
+
+ aux -= (count + 1);
+ ReadAux<ui32>(cdata, aux, count, &Offsets);
+ return;
+ }
+
Y_ENSURE(size >= 3 * sizeof(ui64), "Blob size must be >= 3 * sizeof(ui64). ");
- ui64* aux = (ui64*)(cdata + size);
+ ui64* aux = (ui64*)(cdata + size);
Version = ReadUnaligned<ui64>(aux - 2);
Y_ENSURE(Version > 0, "Invalid chunked array version. ");
-
+
ui64 count = ReadUnaligned<ui64>(aux - 3);
-
- aux -= (count + 3);
- ReadAux<ui64>(cdata, aux, count, &Offsets);
-
- aux -= count;
- Lengths.resize(count);
- for (size_t i = 0; i < count; ++i) {
+
+ aux -= (count + 3);
+ ReadAux<ui64>(cdata, aux, count, &Offsets);
+
+ aux -= count;
+ Lengths.resize(count);
+ for (size_t i = 0; i < count; ++i) {
Lengths[i] = IntegerCast<size_t>(ReadUnaligned<ui64>(aux + i));
- }
-}
-
+ }
+}
+
TBlob TChunkedDataReader::GetBlob(size_t index) const {
return TBlob::NoCopy(GetBlock(index), GetBlockLen(index));
}