diff options
author | denplusplus <denplusplus@yandex-team.ru> | 2022-02-10 16:47:34 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:47:34 +0300 |
commit | 57c20d143e8a438cd76b9fdc3ca2e8ee3ac1f32a (patch) | |
tree | cc63639f8e502db19a82c20e2861c6d1edbf9fea /library/cpp/on_disk/chunks/writer.h | |
parent | 464ba3814a83db4f2d5327393b0b6eaf0c86bfd7 (diff) | |
download | ydb-57c20d143e8a438cd76b9fdc3ca2e8ee3ac1f32a.tar.gz |
Restoring authorship annotation for <denplusplus@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/on_disk/chunks/writer.h')
-rw-r--r-- | library/cpp/on_disk/chunks/writer.h | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/library/cpp/on_disk/chunks/writer.h b/library/cpp/on_disk/chunks/writer.h index ab14522bdd..ee0d7983c7 100644 --- a/library/cpp/on_disk/chunks/writer.h +++ b/library/cpp/on_disk/chunks/writer.h @@ -1,57 +1,57 @@ -#pragma once - -#include <util/generic/vector.h> -#include <util/stream/output.h> - -template <typename T> +#pragma once + +#include <util/generic/vector.h> +#include <util/stream/output.h> + +template <typename T> inline void WriteBin(IOutputStream* out, typename TTypeTraits<T>::TFuncParam t) { - out->Write(&t, sizeof(T)); -} - + out->Write(&t, sizeof(T)); +} + class TChunkedDataWriter: public IOutputStream { public: TChunkedDataWriter(IOutputStream& slave); ~TChunkedDataWriter() override; - + void NewBlock(); - + template <typename T> inline void WriteBinary(typename TTypeTraits<T>::TFuncParam t) { this->Write(&t, sizeof(T)); } - + void WriteFooter(); size_t GetCurrentBlockOffset() const; size_t GetBlockCount() const; - + protected: void DoWrite(const void* buf, size_t len) override { Slave.Write(buf, len); Offset += len; } - + private: static inline size_t PaddingSize(size_t size, size_t boundary) noexcept { const size_t boundaryViolation = size % boundary; - + return boundaryViolation == 0 ? 0 : boundary - boundaryViolation; } - + inline void Pad(size_t boundary) { const size_t newOffset = Offset + PaddingSize(Offset, boundary); - + while (Offset < newOffset) { Write('\0'); - } + } } - + private: static const ui64 Version = 1; - + IOutputStream& Slave; - + size_t Offset; TVector<ui64> Offsets; TVector<ui64> Lengths; -}; +}; |