4#ifndef SYMBIAN_API_STORAGE_STORAGE_H_
5#define SYMBIAN_API_STORAGE_STORAGE_H_
15#include "absl/status/statusor.h"
28 static absl::StatusOr<ReadOnlyFile>
Open(std::u16string_view path);
37 absl::StatusOr<std::uint64_t>
Size()
const;
41 std::span<std::byte> destination)
const;
62 static absl::StatusOr<WritableFile>
Open(std::u16string_view path,
73 absl::Status
WriteAt(std::uint64_t
offset, std::span<const std::byte> source);
100 static absl::StatusOr<FileCopy>
Open(std::u16string_view source,
101 std::u16string_view destination,
123 State* state_ =
nullptr;
135 bool is_directory =
false;
137 bool is_read_only =
false;
147 static absl::StatusOr<DirectoryReader> Open(std::u16string_view path);
158 void Cancel() noexcept;
168 std::atomic<bool> cancel_requested_{
false};
DirectoryReader(const DirectoryReader &)=delete
DirectoryReader & operator=(const DirectoryReader &)=delete
absl::StatusOr< CopyProgress > Step()
Definition storage.cc:214
~FileCopy()
Definition storage.cc:197
static absl::StatusOr< FileCopy > Open(std::u16string_view source, std::u16string_view destination, WriteMode destination_mode)
Definition storage.cc:159
CopyProgress progress() const noexcept
Definition storage.cc:207
void Cancel() noexcept
Definition storage.cc:201
FileCopy & operator=(FileCopy &&other) noexcept
Definition storage.cc:189
FileCopy(const FileCopy &)=delete
FileCopy & operator=(const FileCopy &)=delete
absl::StatusOr< std::uint64_t > Size() const
Definition storage.cc:261
absl::StatusOr< std::size_t > ReadAt(std::uint64_t offset, std::span< std::byte > destination) const
Definition storage.cc:276
ReadOnlyFile & operator=(const ReadOnlyFile &)=delete
~ReadOnlyFile()
Definition storage.cc:59
ReadOnlyFile(const ReadOnlyFile &)=delete
static absl::StatusOr< ReadOnlyFile > Open(std::u16string_view path)
Definition storage.cc:34
ReadOnlyFile & operator=(ReadOnlyFile &&other) noexcept
Definition storage.cc:51
absl::Status Flush()
Definition storage.cc:120
WritableFile & operator=(const WritableFile &)=delete
WritableFile(const WritableFile &)=delete
WritableFile & operator=(WritableFile &&other) noexcept
Definition storage.cc:86
static absl::StatusOr< WritableFile > Open(std::u16string_view path, WriteMode mode)
Definition storage.cc:63
absl::Status WriteAt(std::uint64_t offset, std::span< const std::byte > source)
Definition storage.cc:98
~WritableFile()
Definition storage.cc:94
Definition exception_count.cc:8
WriteMode
Definition storage.h:51
absl::Status CreateDirectories(std::u16string_view path)
Definition storage.cc:129
uint32_t offset
Definition exports.cc:70
std::uint64_t total_bytes
Definition storage.h:88
bool complete
Definition storage.h:90
std::uint64_t bytes_copied
Definition storage.h:86
std::u16string name
Definition storage.h:133
std::optional< std::uint64_t > size_bytes
Definition storage.h:139
Definition storage.cc:141
Definition native_storage.cc:17
Definition native_storage.cc:11