diff options
Diffstat (limited to 'chromium/base/files/file.cc')
-rw-r--r-- | chromium/base/files/file.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/chromium/base/files/file.cc b/chromium/base/files/file.cc index e8934b1cdc3..da0b52ef48a 100644 --- a/chromium/base/files/file.cc +++ b/chromium/base/files/file.cc @@ -6,6 +6,7 @@ #include "base/files/file_path.h" #include "base/files/file_tracing.h" #include "base/metrics/histogram.h" +#include "base/numerics/safe_conversions.h" #include "base/timer/elapsed_timer.h" #include "build/build_config.h" @@ -96,6 +97,29 @@ void File::Initialize(const FilePath& path, uint32_t flags) { } #endif +bool File::ReadAndCheck(int64_t offset, span<uint8_t> data) { + int size = checked_cast<int>(data.size()); + return Read(offset, reinterpret_cast<char*>(data.data()), size) == size; +} + +bool File::ReadAtCurrentPosAndCheck(span<uint8_t> data) { + int size = checked_cast<int>(data.size()); + return ReadAtCurrentPos(reinterpret_cast<char*>(data.data()), size) == size; +} + +bool File::WriteAndCheck(int64_t offset, span<const uint8_t> data) { + int size = checked_cast<int>(data.size()); + return Write(offset, reinterpret_cast<const char*>(data.data()), size) == + size; +} + +bool File::WriteAtCurrentPosAndCheck(span<const uint8_t> data) { + int size = checked_cast<int>(data.size()); + return WriteAtCurrentPos(reinterpret_cast<const char*>(data.data()), size) == + size; +} + +// static std::string File::ErrorToString(Error error) { switch (error) { case FILE_OK: |