ReXGlue SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
file.h
Go to the documentation of this file.
1
10
11
#pragma once
12
13
#include <memory>
14
#include <span>
15
#include <string_view>
16
17
#include <
rex/filesystem/directory.h
>
18
#include <
rex/filesystem/file_open.h
>
19
#include <
rex/filesystem/file_stat.h
>
20
#include <
rex/result.h
>
21
#include <
rex/types.h
>
22
#include <
rex/utility.h
>
23
24
namespace
rex::filesystem {
25
27
class
IFile
:
public
NonCopyable {
28
public
:
29
virtual
~IFile
() =
default
;
30
31
[[nodiscard]]
virtual
FileStat
GetInfo()
const
= 0;
32
34
virtual
void
Refresh
() = 0;
35
37
[[nodiscard]]
virtual
Access
GetAccess
()
const
= 0;
38
39
[[nodiscard]]
virtual
VolumeStat
GetVolume()
const
= 0;
40
47
[[nodiscard]]
virtual
Result<size_t>
Read
(std::span<u8> buffer, u64 offset) = 0;
48
56
[[nodiscard]]
virtual
Result<size_t>
Write
(std::span<const u8> buffer, u64 offset) = 0;
57
64
[[nodiscard]]
virtual
Result<void>
SetLength
(u64 length) = 0;
65
66
[[nodiscard]]
virtual
Result<void>
Flush() = 0;
67
68
[[nodiscard]]
virtual
Result<void>
SetAttributes(
FileAttributes
attributes) = 0;
69
75
[[nodiscard]]
virtual
Result<void>
SetTimes
(
const
FileTimes
& times) = 0;
76
77
virtual
void
SetDeleteOnClose(
bool
delete_on_close) = 0;
78
85
[[nodiscard]]
virtual
Result<std::unique_ptr<IDirectory>
>
List
(std::string_view pattern) = 0;
86
88
[[nodiscard]]
virtual
Result<std::span<const u8>
>
View
() = 0;
89
};
90
91
struct
Opened
{
92
std::unique_ptr<IFile> file;
93
OpenAction
action = OpenAction::kOpened;
94
};
95
96
}
// namespace rex::filesystem
rex::filesystem::IFile
Definition
file.h:27
rex::filesystem::IFile::SetLength
virtual Result< void > SetLength(u64 length)=0
rex::filesystem::IFile::Refresh
virtual void Refresh()=0
rex::filesystem::IFile::Read
virtual Result< size_t > Read(std::span< u8 > buffer, u64 offset)=0
rex::filesystem::IFile::SetTimes
virtual Result< void > SetTimes(const FileTimes ×)=0
rex::filesystem::IFile::GetAccess
virtual Access GetAccess() const =0
rex::filesystem::IFile::List
virtual Result< std::unique_ptr< IDirectory > > List(std::string_view pattern)=0
rex::filesystem::IFile::View
virtual Result< std::span< const u8 > > View()=0
rex::filesystem::IFile::Write
virtual Result< size_t > Write(std::span< const u8 > buffer, u64 offset)=0
directory.h
file_open.h
rex::filesystem::Access
Access
Definition
file_open.h:28
rex::filesystem::OpenAction
OpenAction
Definition
file_open.h:50
file_stat.h
rex::filesystem::FileAttributes
FileAttributes
Definition
file_stat.h:31
rex::Result
std::expected< T, Error > Result
Definition
result.h:98
result.h
rex::filesystem::FileStat
Definition
file_stat.h:45
rex::filesystem::FileTimes
Definition
file_stat.h:60
rex::filesystem::Opened
Definition
file.h:91
rex::filesystem::VolumeStat
Definition
file_stat.h:68
types.h
Integer types, byte order wrappers and size literals.
utility.h
Move only function, const propagating pointer and scope guard.
rex
filesystem
file.h
Generated by
1.18.0