From 7da829d48f9059c83ab9cada2c850621e8bbd3f3 Mon Sep 17 00:00:00 2001 From: Dominick Allen Date: Sun, 22 Sep 2024 12:41:28 -0500 Subject: Basics of library. --- include/c_file.hpp | 103 ----------------------------------------------------- 1 file changed, 103 deletions(-) delete mode 100644 include/c_file.hpp (limited to 'include/c_file.hpp') diff --git a/include/c_file.hpp b/include/c_file.hpp deleted file mode 100644 index 0f43e08..0000000 --- a/include/c_file.hpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2024 Dominick Allen - * - * 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 - * - * http://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. - */ - -#ifndef FUD_C_FILE_HPP -#define FUD_C_FILE_HPP - -#include "result.hpp" - -#include -#include - -namespace fud { - -enum class CFileMode : uint8_t -{ - ReadOnly, - ReadWrite, - WriteTruncate, - ReadWriteTruncate, - WriteAppend, - ReadWriteAppend, -}; - -constexpr const char* CBinaryFileModeFromFlags(CFileMode mode) -{ - switch (mode) { - case CFileMode::ReadOnly: - return "rb"; - case CFileMode::ReadWrite: - return "r+b"; - case CFileMode::WriteTruncate: - return "wb"; - case CFileMode::ReadWriteTruncate: - return "w+b"; - case CFileMode::WriteAppend: - return "ab"; - case CFileMode::ReadWriteAppend: - return "a+b"; - default: - return ""; - } -} - -constexpr const char* CTextFileModeFromFlags(CFileMode mode) -{ - switch (mode) { - case CFileMode::ReadOnly: - return "r"; - case CFileMode::ReadWrite: - return "r+"; - case CFileMode::WriteTruncate: - return "w"; - case CFileMode::ReadWriteTruncate: - return "w+"; - case CFileMode::WriteAppend: - return "a"; - case CFileMode::ReadWriteAppend: - return "a+"; - default: - return ""; - } -} - -enum class FileResult -{ - Success, - Error, -}; - -class CBinaryFile { - public: - CBinaryFile(const std::string& filename, CFileMode mode); - CBinaryFile(const std::string& filename, CFileMode mode, const std::string& extraFlags); - ~CBinaryFile(); - FileResult open(); - void close(); - const FILE* file() const; - - private: - std::string m_filename; - std::string m_extraFlags{}; - std::string m_mode; - CFileMode m_modeFlags; - FILE* m_file{nullptr}; -}; - -} // namespace fud - - -#endif -- cgit v1.2.3