From dfe62dcf8bcefc523b466e127c3edc4dc2756629 Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 6 Oct 2024 13:57:39 +0800 Subject: Rename common to base. --- src/common/io/CFileStream.cpp | 96 ------------------------------------------- 1 file changed, 96 deletions(-) delete mode 100644 src/common/io/CFileStream.cpp (limited to 'src/common/io/CFileStream.cpp') diff --git a/src/common/io/CFileStream.cpp b/src/common/io/CFileStream.cpp deleted file mode 100644 index 01456437..00000000 --- a/src/common/io/CFileStream.cpp +++ /dev/null @@ -1,96 +0,0 @@ -#include "cru/common/io/CFileStream.h" -#include "cru/common/Exception.h" -#include "cru/common/io/Stream.h" - -#include - -namespace cru::io { -static bool ModeCanRead(const char* mode) { - for (const char* p = mode; *p != '\0'; p++) { - if (*p == 'r' || *p == '+') { - return true; - } - } - return false; -} - -static bool ModeCanWrite(const char* mode) { - for (const char* p = mode; *p != '\0'; p++) { - if (*p == 'w' || *p == 'a' || *p == '+') { - return true; - } - } - return false; -} - -CFileStream::CFileStream(const char* path, const char* mode) - : Stream(true, ModeCanRead(mode), ModeCanWrite(mode)), - file_(std::fopen(path, mode)), - auto_close_(true) { - if (file_ == nullptr) { - throw ErrnoException(u"Cannot open file."); - } -} - -CFileStream::CFileStream(std::FILE* file, bool readable, bool writable, - bool auto_close) - : Stream(true, readable, writable), file_(file), auto_close_(auto_close) { - if (file_ == nullptr) { - throw Exception(u"File is NULL."); - } -} - -CFileStream::~CFileStream() { - if (auto_close_ && file_ != nullptr) { - std::fclose(file_); - } -} - -static int ConvertOriginFlag(Stream::SeekOrigin origin) { - switch (origin) { - case Stream::SeekOrigin::Begin: - return SEEK_SET; - case Stream::SeekOrigin::Current: - return SEEK_CUR; - case Stream::SeekOrigin::End: - return SEEK_END; - default: - throw Exception(u"Unknown seek origin."); - } -} - -Index CFileStream::DoSeek(Index offset, SeekOrigin origin) { - if (std::fseek(file_, offset, ConvertOriginFlag(origin))) { - throw ErrnoException(u"Seek failed."); - } - return DoTell(); -} - -Index CFileStream::DoTell() { - long position = std::ftell(file_); - if (position == -1) { - throw ErrnoException(u"Tell failed."); - } - return position; -} - -void CFileStream::DoRewind() { std::rewind(file_); } - -Index CFileStream::DoRead(std::byte* buffer, Index offset, Index size) { - auto count = std::fread(buffer + offset, 1, size, file_); - return count; -} - -Index CFileStream::DoWrite(const std::byte* buffer, Index offset, Index size) { - auto count = std::fwrite(buffer + offset, 1, size, file_); - return count; -} - -void CFileStream::DoFlush() { std::fflush(file_); } - -void CFileStream::DoClose() { - CRU_STREAM_BEGIN_CLOSE - std::fclose(file_); - file_ = nullptr; -} -} // namespace cru::io -- cgit v1.2.3