aboutsummaryrefslogtreecommitdiff
path: root/src/common/io
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-10-05 22:02:25 +0800
committercrupest <crupest@outlook.com>2023-10-05 22:02:25 +0800
commit1550828518ff4719db88f35e088207816866a073 (patch)
tree217e35f48f6c08152bc607d804ad78c0a292e3cd /src/common/io
parent90feae14e708fbb0b313503a6e76cfbd77f94ce1 (diff)
downloadcru-1550828518ff4719db88f35e088207816866a073.tar.gz
cru-1550828518ff4719db88f35e088207816866a073.tar.bz2
cru-1550828518ff4719db88f35e088207816866a073.zip
...
Diffstat (limited to 'src/common/io')
-rw-r--r--src/common/io/CFileStream.cpp6
-rw-r--r--src/common/io/FileNotExistException.cpp12
-rw-r--r--src/common/io/Stream.cpp4
3 files changed, 7 insertions, 15 deletions
diff --git a/src/common/io/CFileStream.cpp b/src/common/io/CFileStream.cpp
index de195538..29d4819f 100644
--- a/src/common/io/CFileStream.cpp
+++ b/src/common/io/CFileStream.cpp
@@ -97,6 +97,7 @@ bool CFileStream::CanRead() {
Index CFileStream::Read(std::byte* buffer, Index offset, Index size) {
CheckClosed();
+ StreamOperationNotSupportedException::CheckRead(readable_);
auto count = std::fread(buffer + offset, 1, size, file_);
return count;
}
@@ -108,6 +109,7 @@ bool CFileStream::CanWrite() {
Index CFileStream::Write(const std::byte* buffer, Index offset, Index size) {
CheckClosed();
+ StreamOperationNotSupportedException::CheckWrite(writable_);
auto count = std::fwrite(buffer + offset, 1, size, file_);
return count;
}
@@ -125,8 +127,6 @@ void CFileStream::Close() {
}
void CFileStream::CheckClosed() {
- if (file_ == nullptr) {
- throw StreamAlreadyClosedException(u"File is closed.");
- }
+ StreamAlreadyClosedException::Check(file_ == nullptr);
}
} // namespace cru::io
diff --git a/src/common/io/FileNotExistException.cpp b/src/common/io/FileNotExistException.cpp
deleted file mode 100644
index a2e1fdb1..00000000
--- a/src/common/io/FileNotExistException.cpp
+++ /dev/null
@@ -1,12 +0,0 @@
-#include "cru/common/io/FileNotExistException.h"
-
-#include "cru/common/Exception.h"
-#include "cru/common/Format.h"
-
-#include <utility>
-
-namespace cru::io {
- FileNotExistException::FileNotExistException(String path): Exception(), path_(std::move(path)) {
- SetMessage(Format(u"File {} does not exist.", path_));
- }
-}
diff --git a/src/common/io/Stream.cpp b/src/common/io/Stream.cpp
index 07677fa8..97669944 100644
--- a/src/common/io/Stream.cpp
+++ b/src/common/io/Stream.cpp
@@ -1,4 +1,5 @@
#include "cru/common/io/Stream.h"
+#include "cru/common/Exception.h"
#include "cru/common/Format.h"
#include <utility>
@@ -22,6 +23,9 @@ void StreamOperationNotSupportedException::CheckWrite(bool writable) {
if (!writable) throw StreamOperationNotSupportedException(u"write");
}
+StreamAlreadyClosedException::StreamAlreadyClosedException()
+ : Exception(u"Stream is already closed.") {}
+
void StreamAlreadyClosedException::Check(bool closed) {
if (closed) throw StreamAlreadyClosedException();
}