summaryrefslogtreecommitdiff
path: root/include/c_file.hpp
diff options
context:
space:
mode:
authorDominick Allen <djallen@librehumanitas.org>2024-09-22 12:41:28 -0500
committerDominick Allen <djallen@librehumanitas.org>2024-09-22 12:41:28 -0500
commit7da829d48f9059c83ab9cada2c850621e8bbd3f3 (patch)
tree314e7a5b645e910d4997e3bee980bd2024f3087d /include/c_file.hpp
parentbf81e34921e3e30b05313efbcf5c9fa839cb7c05 (diff)
Basics of library.
Diffstat (limited to 'include/c_file.hpp')
-rw-r--r--include/c_file.hpp103
1 files changed, 0 insertions, 103 deletions
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 <cstdint>
-#include <string>
-
-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