6#include "TTauri/Foundation/URL.hpp"
13enum class AccessMode {
24 WriteThrough = 0x8000,
25 CreateDirectories = 0x10000,
28 OpenForReadWrite = 0x103,
29 TruncateOrCreateForWrite = 0x702
32[[nodiscard]]
inline AccessMode operator|(AccessMode lhs, AccessMode rhs)
noexcept
34 return static_cast<AccessMode
>(
static_cast<int>(lhs) |
static_cast<int>(rhs));
37[[nodiscard]]
inline AccessMode operator&(AccessMode lhs, AccessMode rhs)
noexcept
39 return static_cast<AccessMode
>(
static_cast<int>(lhs) &
static_cast<int>(rhs));
44[[nodiscard]]
inline bool operator>=(AccessMode lhs, AccessMode rhs)
noexcept
46 return (lhs & rhs) == rhs;
74 File &operator=(
File const &other) = delete;
75 File &operator=(
File &&other) = delete;
88 return write(
reinterpret_cast<std::byte
const *
>(data), size);
94 return write(
reinterpret_cast<std::byte
const *
>(data), size);
98 return write(text.data(), ssize(text));
106 static void createDirectory(
URL const &url,
bool hierarchy=
false);
108 static void createDirectoryHierarchy(
URL const &url);
ssize_t write(std::byte const *data, ssize_t size)
ssize_t write(char const *data, ssize_t size)
Definition File.hpp:93
AccessMode accessMode
Definition File.hpp:54
URL location
Definition File.hpp:58
File(URL const &location, AccessMode accessMode)
FileHandle fileHandle
Definition File.hpp:62
static size_t fileSize(URL const &url)