Core/OpenMode: Rename ReadOnly/WriteOnly to Read/Write

This commit is contained in:
Lynix 2023-12-25 19:49:03 +01:00
parent 754a3d3614
commit 4065fbfb1a
24 changed files with 42 additions and 42 deletions

View File

@ -98,13 +98,13 @@ namespace Nz
Defer, //< Defers file opening until a read/write operation is performed on it Defer, //< Defers file opening until a read/write operation is performed on it
Lock, //< Prevents file modification by other handles while it's open Lock, //< Prevents file modification by other handles while it's open
MustExist, //< Fails if the file doesn't exists, even if opened in write mode MustExist, //< Fails if the file doesn't exists, even if opened in write mode
ReadOnly, //< Allows read operations Read, //< Allows read operations
Text, //< Opens in text mode (converts system line endings from/to \n) Text, //< Opens in text mode (converts system line endings from/to \n)
Truncate, //< Creates the file if it doesn't exist and empties it otherwise Truncate, //< Creates the file if it doesn't exist and empties it otherwise
Unbuffered, //< Each read/write operations are performed directly using system calls (very slow) Unbuffered, //< Each read/write operations are performed directly using system calls (very slow)
WriteOnly, //< Allows write operations, creates the file if it doesn't exist Write, //< Allows write operations, creates the file if it doesn't exist
Max = WriteOnly Max = Write
}; };
template<> template<>
@ -115,7 +115,7 @@ namespace Nz
using OpenModeFlags = Flags<OpenMode>; using OpenModeFlags = Flags<OpenMode>;
constexpr OpenModeFlags OpenMode_ReadWrite = OpenMode::ReadOnly | OpenMode::WriteOnly; constexpr OpenModeFlags OpenMode_ReadWrite = OpenMode::Read | OpenMode::Write;
enum class ParameterType enum class ParameterType
{ {

View File

@ -91,7 +91,7 @@ namespace Nz
{ {
if (!file.IsOpen()) if (!file.IsOpen())
{ {
if (!file.Open(OpenMode::ReadOnly)) if (!file.Open(OpenMode::Read))
{ {
NazaraErrorFmt("failed to load resource: unable to open \"{0}\"", filePath); NazaraErrorFmt("failed to load resource: unable to open \"{0}\"", filePath);
return nullptr; return nullptr;

View File

@ -91,7 +91,7 @@ namespace Nz
{ {
File file(filePath); File file(filePath);
if (!file.Open(OpenMode::WriteOnly | OpenMode::Truncate)) if (!file.Open(OpenMode::Write | OpenMode::Truncate))
{ {
NazaraErrorFmt("failed to save to file: unable to open \"{0}\" in write mode", filePath); NazaraErrorFmt("failed to save to file: unable to open \"{0}\" in write mode", filePath);
return false; return false;

View File

@ -142,7 +142,7 @@ namespace Nz
inline bool Stream::IsReadable() const inline bool Stream::IsReadable() const
{ {
return m_openMode.Test(OpenMode::ReadOnly); return m_openMode.Test(OpenMode::Read);
} }
/*! /*!
@ -169,7 +169,7 @@ namespace Nz
*/ */
inline bool Stream::IsWritable() const inline bool Stream::IsWritable() const
{ {
return m_openMode.Test(OpenMode::WriteOnly); return m_openMode.Test(OpenMode::Write);
} }
/*! /*!

View File

@ -17,7 +17,7 @@ namespace Nz
class NAZARA_CORE_API VirtualDirectoryFilesystemResolver : public VirtualDirectoryResolver class NAZARA_CORE_API VirtualDirectoryFilesystemResolver : public VirtualDirectoryResolver
{ {
public: public:
inline VirtualDirectoryFilesystemResolver(std::filesystem::path physicalPath, OpenModeFlags fileOpenMode = OpenMode::ReadOnly | OpenMode::Defer); inline VirtualDirectoryFilesystemResolver(std::filesystem::path physicalPath, OpenModeFlags fileOpenMode = OpenMode::Read | OpenMode::Defer);
VirtualDirectoryFilesystemResolver(const VirtualDirectoryFilesystemResolver&) = delete; VirtualDirectoryFilesystemResolver(const VirtualDirectoryFilesystemResolver&) = delete;
VirtualDirectoryFilesystemResolver(VirtualDirectoryFilesystemResolver&&) = delete; VirtualDirectoryFilesystemResolver(VirtualDirectoryFilesystemResolver&&) = delete;
~VirtualDirectoryFilesystemResolver() = default; ~VirtualDirectoryFilesystemResolver() = default;

View File

@ -155,7 +155,7 @@ namespace Nz
inline void NetPacket::Reset(UInt16 netCode, const void* ptr, std::size_t size) inline void NetPacket::Reset(UInt16 netCode, const void* ptr, std::size_t size)
{ {
InitStream(HeaderSize + size, HeaderSize, OpenMode::ReadOnly); InitStream(HeaderSize + size, HeaderSize, OpenMode::Read);
m_buffer->Resize(HeaderSize + size); m_buffer->Resize(HeaderSize + size);
if (ptr) if (ptr)

View File

@ -89,21 +89,21 @@ aiFile* StreamOpener(aiFileIO* fileIO, const char* filePath, const char* openMod
if (std::strchr(openMode, 'r')) if (std::strchr(openMode, 'r'))
{ {
openModeEnum |= OpenMode::ReadOnly; openModeEnum |= OpenMode::Read;
if (std::strchr(openMode, '+')) if (std::strchr(openMode, '+'))
openModeEnum |= OpenMode_ReadWrite | OpenMode::MustExist; openModeEnum |= OpenMode_ReadWrite | OpenMode::MustExist;
} }
else if (std::strchr(openMode, 'w')) else if (std::strchr(openMode, 'w'))
{ {
openModeEnum |= OpenMode::WriteOnly | OpenMode::Truncate; openModeEnum |= OpenMode::Write | OpenMode::Truncate;
if (std::strchr(openMode, '+')) if (std::strchr(openMode, '+'))
openModeEnum |= OpenMode::ReadOnly; openModeEnum |= OpenMode::Read;
} }
else if (std::strchr(openMode, 'a')) else if (std::strchr(openMode, 'a'))
{ {
openModeEnum |= OpenMode::WriteOnly | OpenMode::Append; openModeEnum |= OpenMode::Write | OpenMode::Append;
if (std::strchr(openMode, '+')) if (std::strchr(openMode, '+'))
openModeEnum |= OpenMode::ReadOnly; openModeEnum |= OpenMode::Read;
} }
else else
{ {

View File

@ -284,7 +284,7 @@ namespace
bool SetFile(const std::filesystem::path& filePath) bool SetFile(const std::filesystem::path& filePath)
{ {
std::unique_ptr<Nz::File> file = std::make_unique<Nz::File>(); std::unique_ptr<Nz::File> file = std::make_unique<Nz::File>();
if (!file->Open(filePath, Nz::OpenMode::ReadOnly)) if (!file->Open(filePath, Nz::OpenMode::Read))
{ {
NazaraErrorFmt("failed to open stream from file: {0}", Nz::Error::GetLastError()); NazaraErrorFmt("failed to open stream from file: {0}", Nz::Error::GetLastError());
return false; return false;

View File

@ -136,7 +136,7 @@ namespace Nz
Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters) Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters)
{ {
std::unique_ptr<File> file = std::make_unique<File>(); std::unique_ptr<File> file = std::make_unique<File>();
if (!file->Open(filePath, OpenMode::ReadOnly)) if (!file->Open(filePath, OpenMode::Read))
{ {
NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError()); NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError());
return Err(ResourceLoadingError::FailedToOpenFile); return Err(ResourceLoadingError::FailedToOpenFile);

View File

@ -296,7 +296,7 @@ namespace Nz
Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters) Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters)
{ {
std::unique_ptr<File> file = std::make_unique<File>(); std::unique_ptr<File> file = std::make_unique<File>();
if (!file->Open(filePath, OpenMode::ReadOnly)) if (!file->Open(filePath, OpenMode::Read))
{ {
NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError()); NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError());
return Err(ResourceLoadingError::FailedToOpenFile); return Err(ResourceLoadingError::FailedToOpenFile);

View File

@ -215,7 +215,7 @@ namespace Nz
Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters) Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters)
{ {
std::unique_ptr<File> file = std::make_unique<File>(); std::unique_ptr<File> file = std::make_unique<File>();
if (!file->Open(filePath, OpenMode::ReadOnly)) if (!file->Open(filePath, OpenMode::Read))
{ {
NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError()); NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError());
return Err(ResourceLoadingError::FailedToOpenFile); return Err(ResourceLoadingError::FailedToOpenFile);

View File

@ -161,7 +161,7 @@ namespace Nz
Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters) Result<void, ResourceLoadingError> Open(const std::filesystem::path& filePath, const SoundStreamParams& parameters)
{ {
std::unique_ptr<File> file = std::make_unique<File>(); std::unique_ptr<File> file = std::make_unique<File>();
if (!file->Open(filePath, OpenMode::ReadOnly)) if (!file->Open(filePath, OpenMode::Read))
{ {
NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError()); NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError());
return Err(ResourceLoadingError::FailedToOpenFile); return Err(ResourceLoadingError::FailedToOpenFile);

View File

@ -279,7 +279,7 @@ namespace Nz
std::optional<std::vector<UInt8>> File::ReadWhole(const std::filesystem::path& path) std::optional<std::vector<UInt8>> File::ReadWhole(const std::filesystem::path& path)
{ {
File file(path); File file(path);
if (!file.Open(OpenMode::ReadOnly | OpenMode::Unbuffered)) //< unbuffered since we will read all the file at once if (!file.Open(OpenMode::Read | OpenMode::Unbuffered)) //< unbuffered since we will read all the file at once
{ {
NazaraErrorFmt("failed to open \"{0}\"", path); NazaraErrorFmt("failed to open \"{0}\"", path);
return std::nullopt; return std::nullopt;
@ -299,7 +299,7 @@ namespace Nz
bool File::WriteWhole(const std::filesystem::path& path, const void* data, std::size_t size) bool File::WriteWhole(const std::filesystem::path& path, const void* data, std::size_t size)
{ {
File file(path); File file(path);
if (!file.Open(OpenMode::WriteOnly | OpenMode::Unbuffered)) //< unbuffered since we will write all the file at once if (!file.Open(OpenMode::Write | OpenMode::Unbuffered)) //< unbuffered since we will write all the file at once
{ {
NazaraErrorFmt("failed to open \"{0}\"", path); NazaraErrorFmt("failed to open \"{0}\"", path);
return false; return false;
@ -453,7 +453,7 @@ namespace Nz
NAZARA_CORE_API bool HashAppend(AbstractHash& hash, const File& originalFile) NAZARA_CORE_API bool HashAppend(AbstractHash& hash, const File& originalFile)
{ {
File file(originalFile.GetPath()); File file(originalFile.GetPath());
if (!file.Open(OpenMode::ReadOnly)) if (!file.Open(OpenMode::Read))
{ {
NazaraError("unable to open file"); NazaraError("unable to open file");
return false; return false;

View File

@ -42,7 +42,7 @@ namespace Nz
*/ */
MemoryView::MemoryView(const void* ptr, UInt64 size) : MemoryView::MemoryView(const void* ptr, UInt64 size) :
Stream(StreamOption::MemoryMapped, OpenMode::ReadOnly), Stream(StreamOption::MemoryMapped, OpenMode::Read),
m_ptr(static_cast<UInt8*>(const_cast<void*>(ptr))), //< Okay, right, const_cast is bad, but this pointer is still read-only m_ptr(static_cast<UInt8*>(const_cast<void*>(ptr))), //< Okay, right, const_cast is bad, but this pointer is still read-only
m_pos(0), m_pos(0),
m_size(size) m_size(size)

View File

@ -61,11 +61,11 @@ namespace Nz
int flags; int flags;
mode_t permissions = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; mode_t permissions = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
if ((mode & OpenMode_ReadWrite) == OpenMode_ReadWrite) if (mode.Test(OpenMode_ReadWrite))
flags = O_CREAT | O_RDWR; flags = O_CREAT | O_RDWR;
else if ((mode & OpenMode::ReadOnly) == OpenMode::ReadOnly) else if (mode.Test(OpenMode::Read))
flags = O_RDONLY; flags = O_RDONLY;
else if ((mode & OpenMode::WriteOnly) == OpenMode::WriteOnly) else if (mode.Test(OpenMode::Write))
flags = O_CREAT | O_WRONLY; flags = O_CREAT | O_WRONLY;
else else
return false; return false;

View File

@ -63,30 +63,30 @@ namespace Nz
DWORD shareMode = FILE_SHARE_READ; DWORD shareMode = FILE_SHARE_READ;
DWORD openMode = 0; DWORD openMode = 0;
if (mode & OpenMode::ReadOnly) if (mode.Test(OpenMode::Read))
{ {
access |= GENERIC_READ; access |= GENERIC_READ;
if (mode & OpenMode::MustExist || (mode & OpenMode::WriteOnly) == 0) if (mode.Test(OpenMode::MustExist) || !mode.Test(OpenMode::Write))
openMode |= OPEN_EXISTING; openMode |= OPEN_EXISTING;
} }
if (mode & OpenMode::WriteOnly) if (mode.Test(OpenMode::Write))
{ {
if (mode & OpenMode::Append) if (mode.Test(OpenMode::Append))
access |= FILE_APPEND_DATA; access |= FILE_APPEND_DATA;
else else
access |= GENERIC_WRITE; access |= GENERIC_WRITE;
if (mode & OpenMode::Truncate) if (mode.Test(OpenMode::Truncate))
openMode |= CREATE_ALWAYS; openMode |= CREATE_ALWAYS;
else if (mode & OpenMode::MustExist) else if (mode.Test(OpenMode::MustExist))
openMode |= OPEN_EXISTING; openMode |= OPEN_EXISTING;
else else
openMode |= OPEN_ALWAYS; openMode |= OPEN_ALWAYS;
} }
if ((mode & OpenMode::Lock) == 0) if (!mode.Test(OpenMode::Lock))
shareMode |= FILE_SHARE_WRITE; shareMode |= FILE_SHARE_WRITE;
if constexpr (std::is_same_v<std::filesystem::path::value_type, wchar_t>) if constexpr (std::is_same_v<std::filesystem::path::value_type, wchar_t>)

View File

@ -14,7 +14,7 @@ namespace Nz
std::shared_ptr<ShaderModule> RenderDevice::InstantiateShaderModule(nzsl::ShaderStageTypeFlags shaderStages, ShaderLanguage lang, const std::filesystem::path& sourcePath, const nzsl::ShaderWriter::States& states) std::shared_ptr<ShaderModule> RenderDevice::InstantiateShaderModule(nzsl::ShaderStageTypeFlags shaderStages, ShaderLanguage lang, const std::filesystem::path& sourcePath, const nzsl::ShaderWriter::States& states)
{ {
File file(sourcePath); File file(sourcePath);
if (!file.Open(OpenMode::ReadOnly | OpenMode::Text)) if (!file.Open(OpenMode::Read | OpenMode::Text))
{ {
NazaraErrorFmt("failed to open \"{0}\"", sourcePath); NazaraErrorFmt("failed to open \"{0}\"", sourcePath);
return {}; return {};

View File

@ -318,7 +318,7 @@ namespace Nz
bool SetFile(const std::filesystem::path& filePath) bool SetFile(const std::filesystem::path& filePath)
{ {
std::unique_ptr<File> file = std::make_unique<File>(); std::unique_ptr<File> file = std::make_unique<File>();
if (!file->Open(filePath, OpenMode::ReadOnly)) if (!file->Open(filePath, OpenMode::Read))
{ {
NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError()); NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError());
return false; return false;

View File

@ -448,7 +448,7 @@ namespace Nz
bool SetFile(const std::filesystem::path& filePath) bool SetFile(const std::filesystem::path& filePath)
{ {
std::unique_ptr<File> file = std::make_unique<File>(); std::unique_ptr<File> file = std::make_unique<File>();
if (!file->Open(filePath, OpenMode::ReadOnly)) if (!file->Open(filePath, OpenMode::Read))
{ {
NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError()); NazaraErrorFmt("failed to open stream from file: {0}", Error::GetLastError());
return false; return false;

View File

@ -30,7 +30,7 @@ namespace Nz
bool ParseMTL(Mesh& mesh, const std::filesystem::path& filePath, const std::string* materials, const OBJParser::Mesh* meshes, std::size_t meshCount) bool ParseMTL(Mesh& mesh, const std::filesystem::path& filePath, const std::string* materials, const OBJParser::Mesh* meshes, std::size_t meshCount)
{ {
File file(filePath); File file(filePath);
if (!file.Open(OpenMode::ReadOnly | OpenMode::Text)) if (!file.Open(OpenMode::Read | OpenMode::Text))
{ {
NazaraErrorFmt("failed to open MTL file ({0})", file.GetPath()); NazaraErrorFmt("failed to open MTL file ({0})", file.GetPath());
return false; return false;

View File

@ -208,7 +208,7 @@ namespace Nz
if (!mtlPath.empty()) if (!mtlPath.empty())
{ {
File mtlFile(mtlPath, OpenMode::WriteOnly | OpenMode::Truncate); File mtlFile(mtlPath, OpenMode::Write | OpenMode::Truncate);
if (mtlFile.IsOpen()) if (mtlFile.IsOpen())
mtlFormat.Save(mtlFile); mtlFormat.Save(mtlFile);
} }

View File

@ -190,7 +190,7 @@ void MainWindow::OnCompile()
if (!fileName.endsWith("nzslb", Qt::CaseInsensitive)) if (!fileName.endsWith("nzslb", Qt::CaseInsensitive))
fileName += ".nzslb"; fileName += ".nzslb";
Nz::File file(fileName.toStdString(), Nz::OpenMode::WriteOnly); Nz::File file(fileName.toStdString(), Nz::OpenMode::Write);
nzsl::Serializer serializer; nzsl::Serializer serializer;
nzsl::Ast::SerializeShader(serializer, *shaderModule); nzsl::Ast::SerializeShader(serializer, *shaderModule);

View File

@ -68,7 +68,7 @@ SCENARIO("File", "[CORE][FILE]")
{ {
REQUIRE(std::filesystem::exists(GetAssetDir() / "Core/FileTest.txt")); REQUIRE(std::filesystem::exists(GetAssetDir() / "Core/FileTest.txt"));
Nz::File fileTest(GetAssetDir() / "Core/FileTest.txt", Nz::OpenMode::ReadOnly | Nz::OpenMode::Text); Nz::File fileTest(GetAssetDir() / "Core/FileTest.txt", Nz::OpenMode::Read | Nz::OpenMode::Text);
WHEN("We read the first line of the file") WHEN("We read the first line of the file")
{ {

View File

@ -264,7 +264,7 @@ TEST_CASE("VirtualDirectory", "[Core][VirtualDirectory]")
} }
AND_THEN("Overriding the physical file with another one") AND_THEN("Overriding the physical file with another one")
{ {
resourceDir->StoreFile("Logo.png", std::make_shared<Nz::File>(GetAssetDir() / "Audio/ambience.ogg", Nz::OpenMode::ReadOnly)); resourceDir->StoreFile("Logo.png", std::make_shared<Nz::File>(GetAssetDir() / "Audio/ambience.ogg", Nz::OpenMode::Read));
CHECK(CheckFileHash(resourceDir, "Audio/ambience.ogg", "49C486F44E43F023D54C9F375D902C21375DDB2748D3FA1863C9581D30E17F94")); CHECK(CheckFileHash(resourceDir, "Audio/ambience.ogg", "49C486F44E43F023D54C9F375D902C21375DDB2748D3FA1863C9581D30E17F94"));
CHECK(CheckFileHash(resourceDir, "Logo.png", "49C486F44E43F023D54C9F375D902C21375DDB2748D3FA1863C9581D30E17F94")); CHECK(CheckFileHash(resourceDir, "Logo.png", "49C486F44E43F023D54C9F375D902C21375DDB2748D3FA1863C9581D30E17F94"));