diff options
author | amatveyev <amatveyev@yandex-team.ru> | 2022-02-10 16:50:11 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:50:11 +0300 |
commit | 8bfc24a315c0a821841d2d5bb73e55268b7ecfb6 (patch) | |
tree | 11b6d7b43a1a1f99547031fd7c6218e292aee533 /util | |
parent | 8d3a5b9c70bfb823a30242286328d6017b82b9ce (diff) | |
download | ydb-8bfc24a315c0a821841d2d5bb73e55268b7ecfb6.tar.gz |
Restoring authorship annotation for <amatveyev@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'util')
-rw-r--r-- | util/system/direct_io.cpp | 56 | ||||
-rw-r--r-- | util/system/direct_io.h | 8 | ||||
-rw-r--r-- | util/system/direct_io_ut.cpp | 60 |
3 files changed, 62 insertions, 62 deletions
diff --git a/util/system/direct_io.cpp b/util/system/direct_io.cpp index f59c54b0cb..16fd9353dc 100644 --- a/util/system/direct_io.cpp +++ b/util/system/direct_io.cpp @@ -54,8 +54,8 @@ TDirectIOBufferedFile::TDirectIOBufferedFile(const TString& path, EOpenMode oMod , WritePosition(0) , DirectIO(false) { - if (buflen == 0) { - ythrow TFileError() << "unbuffered usage is not supported"; + if (buflen == 0) { + ythrow TFileError() << "unbuffered usage is not supported"; } if (oMode & Direct) { @@ -80,9 +80,9 @@ void TDirectIOBufferedFile::SetDirectIO(bool value) { } if (!!Alignment && value) { - (void)fcntl(File.GetHandle(), F_SETFL, fcntl(File.GetHandle(), F_GETFL) | DIRECT_IO_FLAGS); + (void)fcntl(File.GetHandle(), F_SETFL, fcntl(File.GetHandle(), F_GETFL) | DIRECT_IO_FLAGS); } else { - (void)fcntl(File.GetHandle(), F_SETFL, fcntl(File.GetHandle(), F_GETFL) & ~DIRECT_IO_FLAGS); + (void)fcntl(File.GetHandle(), F_SETFL, fcntl(File.GetHandle(), F_GETFL) & ~DIRECT_IO_FLAGS); } DirectIO = value; @@ -92,27 +92,27 @@ void TDirectIOBufferedFile::SetDirectIO(bool value) { } TDirectIOBufferedFile::~TDirectIOBufferedFile() { - try { - Finish(); - } catch (...) { - } + try { + Finish(); + } catch (...) { + } } void TDirectIOBufferedFile::FlushData() { - WriteToFile(Buffer, DataLen, FlushedBytes); - DataLen = 0; - File.FlushData(); + WriteToFile(Buffer, DataLen, FlushedBytes); + DataLen = 0; + File.FlushData(); } void TDirectIOBufferedFile::Finish() { - FlushData(); - File.Flush(); - File.Close(); + FlushData(); + File.Flush(); + File.Close(); } void TDirectIOBufferedFile::Write(const void* buffer, size_t byteCount) { - WriteToBuffer(buffer, byteCount, DataLen); - WritePosition += byteCount; + WriteToBuffer(buffer, byteCount, DataLen); + WritePosition += byteCount; } void TDirectIOBufferedFile::WriteToBuffer(const void* buf, size_t len, ui64 position) { @@ -139,7 +139,7 @@ void TDirectIOBufferedFile::WriteToFile(const void* buf, size_t len, ui64 positi if (!!len) { SetDirectIO(IsAligned(buf) && IsAligned(len) && IsAligned(position)); - File.Pwrite(buf, len, position); + File.Pwrite(buf, len, position); FlushedBytes = Max(FlushedBytes, position + len); FlushedToDisk = Min(FlushedToDisk, position); @@ -246,21 +246,21 @@ size_t TDirectIOBufferedFile::Pread(void* buffer, size_t byteCount, ui64 offset) } void TDirectIOBufferedFile::Pwrite(const void* buffer, size_t byteCount, ui64 offset) { - if (offset > WritePosition) { - ythrow yexception() << "cannot frite to position" << offset; - } + if (offset > WritePosition) { + ythrow yexception() << "cannot frite to position" << offset; + } size_t writeToBufer = byteCount; size_t writeToFile = 0; - if (FlushedBytes > offset) { - writeToFile = Min<ui64>(byteCount, FlushedBytes - offset); - WriteToFile(buffer, writeToFile, offset); - writeToBufer -= writeToFile; - } + if (FlushedBytes > offset) { + writeToFile = Min<ui64>(byteCount, FlushedBytes - offset); + WriteToFile(buffer, writeToFile, offset); + writeToBufer -= writeToFile; + } - if (writeToBufer > 0) { - ui64 bufferOffset = offset + writeToFile - FlushedBytes; - WriteToBuffer((const char*)buffer + writeToFile, writeToBufer, bufferOffset); + if (writeToBufer > 0) { + ui64 bufferOffset = offset + writeToFile - FlushedBytes; + WriteToBuffer((const char*)buffer + writeToFile, writeToBufer, bufferOffset); } } diff --git a/util/system/direct_io.h b/util/system/direct_io.h index 6a3325a960..a4f20f50fc 100644 --- a/util/system/direct_io.h +++ b/util/system/direct_io.h @@ -22,7 +22,7 @@ public: void Pwrite(const void* buffer, size_t byteCount, ui64 offset); inline bool IsOpen() const { - return true; + return true; } inline ui64 GetWritePosition() const { @@ -33,8 +33,8 @@ public: return FlushedBytes + DataLen; } - inline FHANDLE GetHandle() { - return File.GetHandle(); + inline FHANDLE GetHandle() { + return File.GetHandle(); } inline void FallocateNoResize(ui64 length) { @@ -61,7 +61,7 @@ private: void SetDirectIO(bool value); private: - TFile File; + TFile File; size_t Alignment; size_t BufLen; size_t DataLen; diff --git a/util/system/direct_io_ut.cpp b/util/system/direct_io_ut.cpp index 839c3de7ca..fc8e8d9d5c 100644 --- a/util/system/direct_io_ut.cpp +++ b/util/system/direct_io_ut.cpp @@ -1,14 +1,14 @@ #include <library/cpp/testing/unittest/registar.h> -#include <util/generic/yexception.h> +#include <util/generic/yexception.h> #include <util/system/fs.h> #include <util/system/tempfile.h> #include <util/random/random.h> - + #include "direct_io.h" -static const char* FileName_("./test.file"); - +static const char* FileName_("./test.file"); + Y_UNIT_TEST_SUITE(TDirectIoTestSuite) { Y_UNIT_TEST(TestDirectFile) { TDirectIOBufferedFile file(FileName_, RdWr | Direct | Seq | CreateAlways, 1 << 15); @@ -51,7 +51,7 @@ Y_UNIT_TEST_SUITE(TDirectIoTestSuite) { } NFs::Remove(FileName_); } - + void TestHugeFile(size_t size) { TTempFile tmpFile("test.file"); @@ -87,29 +87,29 @@ Y_UNIT_TEST_SUITE(TDirectIoTestSuite) { } } } - -Y_UNIT_TEST_SUITE(TDirectIoErrorHandling) { - Y_UNIT_TEST(Constructor) { - // A non-existent file should not be opened for reading + +Y_UNIT_TEST_SUITE(TDirectIoErrorHandling) { + Y_UNIT_TEST(Constructor) { + // A non-existent file should not be opened for reading UNIT_ASSERT_EXCEPTION(TDirectIOBufferedFile(FileName_, RdOnly, 1 << 15), TFileError); - } - - Y_UNIT_TEST(WritingReadOnlyFileBufferFlushed) { - // Note the absence of Direct - TDirectIOBufferedFile file(FileName_, RdOnly | OpenAlways, 1); - TString buffer = "Hello"; - UNIT_ASSERT_EXCEPTION(file.Write(buffer.data(), buffer.size()), TFileError); - NFs::Remove(FileName_); - } - - Y_UNIT_TEST(WritingReadOnlyFileAllInBuffer) { - TDirectIOBufferedFile file(FileName_, RdOnly | Direct | Seq | OpenAlways, 1 << 15); - TString buffer = "Hello"; - - // Doesn't throw because of buffering. - file.Write(buffer.data(), buffer.size()); - - UNIT_ASSERT_EXCEPTION(file.Finish(), TFileError); - NFs::Remove(FileName_); - } -} + } + + Y_UNIT_TEST(WritingReadOnlyFileBufferFlushed) { + // Note the absence of Direct + TDirectIOBufferedFile file(FileName_, RdOnly | OpenAlways, 1); + TString buffer = "Hello"; + UNIT_ASSERT_EXCEPTION(file.Write(buffer.data(), buffer.size()), TFileError); + NFs::Remove(FileName_); + } + + Y_UNIT_TEST(WritingReadOnlyFileAllInBuffer) { + TDirectIOBufferedFile file(FileName_, RdOnly | Direct | Seq | OpenAlways, 1 << 15); + TString buffer = "Hello"; + + // Doesn't throw because of buffering. + file.Write(buffer.data(), buffer.size()); + + UNIT_ASSERT_EXCEPTION(file.Finish(), TFileError); + NFs::Remove(FileName_); + } +} |