diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-05-12 15:59:20 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-05-25 06:57:22 +0000 |
commit | f7eaed5286974984ba5f9e3189d8f49d03e99f81 (patch) | |
tree | caed19b2af2024f35449fb0b781d0a25e09d4f8f /chromium/third_party/nearby/src/internal/platform/file.cc | |
parent | 9729c4479fe23554eae6e6dd1f30ff488f470c84 (diff) | |
download | qtwebengine-chromium-f7eaed5286974984ba5f9e3189d8f49d03e99f81.tar.gz |
BASELINE: Update Chromium to 100.0.4896.167
Change-Id: I98cbeb5d7543d966ffe04d8cefded0c493a11333
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/nearby/src/internal/platform/file.cc')
-rw-r--r-- | chromium/third_party/nearby/src/internal/platform/file.cc | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/chromium/third_party/nearby/src/internal/platform/file.cc b/chromium/third_party/nearby/src/internal/platform/file.cc new file mode 100644 index 00000000000..6deaec2553f --- /dev/null +++ b/chromium/third_party/nearby/src/internal/platform/file.cc @@ -0,0 +1,92 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "internal/platform/file.h" + +namespace location { +namespace nearby { + +InputFile::InputFile(PayloadId payload_id, std::int64_t size) + : impl_(Platform::CreateInputFile(payload_id, size)), id_(payload_id) {} +InputFile::~InputFile() = default; +InputFile::InputFile(InputFile&&) noexcept = default; +InputFile& InputFile::operator=(InputFile&&) noexcept = default; + +// Reads up to size bytes and returns as a ByteArray object wrapped by +// ExceptionOr. +// Returns Exception::kIo on error, or end of file. +ExceptionOr<ByteArray> InputFile::Read(std::int64_t size) { + return impl_->Read(size); +} + +// Returns a string that uniqely identifies this file. +std::string InputFile::GetFilePath() const { return impl_->GetFilePath(); } + +// Returns total size of this file in bytes. +std::int64_t InputFile::GetTotalSize() const { return impl_->GetTotalSize(); } + +ExceptionOr<size_t> InputFile::Skip(size_t offset) { + return impl_->Skip(offset); +} + +// Disallows further reads from the file and frees system resources, +// associated with it. +Exception InputFile::Close() { return impl_->Close(); } + +// Returns a handle to the underlying input stream. +// +// Returned handle will remain valid even if InputFile is moved, for as long +// as original InputFile lifetime continues. +// Side effects of any non-const operation invoked for InputFile (such as +// Read, or Close will be observable through InputStream& handle, and vice +// versa. +InputStream& InputFile::GetInputStream() { return *impl_; } + +// Returns payload id of this file. The closest "file" equivalent is inode. +PayloadId InputFile::GetPayloadId() const { return id_; } + +OutputFile::OutputFile(PayloadId payload_id) + : impl_(Platform::CreateOutputFile(payload_id)), id_(payload_id) {} +OutputFile::~OutputFile() = default; +OutputFile::OutputFile(OutputFile&&) noexcept = default; +OutputFile& OutputFile::operator=(OutputFile&&) noexcept = default; + +// Writes all data from ByteArray object to the underlying stream. +// Returns Exception::kIo on error, Exception::kSuccess otherwise. +Exception OutputFile::Write(const ByteArray& data) { + return impl_->Write(data); +} + +// Ensures that all data written by previous calls to Write() is passed +// down to the applicable transport layer. +Exception OutputFile::Flush() { return impl_->Flush(); } + +// Disallows further writes to the file and frees system resources, +// associated with it. +Exception OutputFile::Close() { return impl_->Close(); } + +// Returns a handle to the underlying output stream. +// +// Returned handle will remain valid even if OutputFile is moved, for as long +// as original OutputFile lifetime continues. +// Side effects of any non-const operation invoked for OutputFile (such as +// Write, or Close will be observable through OutputStream& handle, and vice +// versa. +OutputStream& OutputFile::GetOutputStream() { return *impl_; } + +// Returns payload id of this file. The closest "file" equivalent is inode. +PayloadId OutputFile::GetPayloadId() const { return id_; } + +} // namespace nearby +} // namespace location |