From b2a331aa527bdd5f4d91727904cc5c66fe897d62 Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 24 Jun 2024 00:06:25 +0800 Subject: Done Stream refactor. NEED TEST: BufferStream, AutoReadStream, SubProcess. --- include/cru/base/io/AutoReadStream.h | 6 +++--- include/cru/base/io/Stream.h | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'include') diff --git a/include/cru/base/io/AutoReadStream.h b/include/cru/base/io/AutoReadStream.h index 759d5026..56e2beca 100644 --- a/include/cru/base/io/AutoReadStream.h +++ b/include/cru/base/io/AutoReadStream.h @@ -39,7 +39,7 @@ class CRU_BASE_API AutoReadStream : public Stream { * @param options Options to modify the behavior. */ AutoReadStream( - Stream* stream, bool auto_delete, + Stream* stream, bool auto_close, bool auto_delete, const AutoReadStreamOptions& options = AutoReadStreamOptions()); ~AutoReadStream() override; @@ -47,7 +47,7 @@ class CRU_BASE_API AutoReadStream : public Stream { public: CRU_STREAM_IMPLEMENT_CLOSE_BY_DO_CLOSE - void BeginToDrop(bool auto_delete = true); + void BeginToDrop(bool auto_close = true, bool auto_delete = true); protected: Index DoRead(std::byte* buffer, Index offset, Index size) override; @@ -61,11 +61,11 @@ class CRU_BASE_API AutoReadStream : public Stream { private: Stream* stream_; + bool auto_close_; bool auto_delete_; Index size_per_read_; std::unique_ptr buffer_stream_; - std::mutex buffer_stream_mutex_; std::thread background_thread_; }; diff --git a/include/cru/base/io/Stream.h b/include/cru/base/io/Stream.h index e0b61627..0965cf22 100644 --- a/include/cru/base/io/Stream.h +++ b/include/cru/base/io/Stream.h @@ -26,11 +26,11 @@ class CRU_BASE_API StreamOperationNotSupportedException : public Exception { String operation_; }; -class CRU_BASE_API StreamAlreadyClosedException : public Exception { +class CRU_BASE_API StreamClosedException : public Exception { public: - StreamAlreadyClosedException(); + StreamClosedException(); - CRU_DEFAULT_DESTRUCTOR(StreamAlreadyClosedException) + CRU_DEFAULT_DESTRUCTOR(StreamClosedException) static void Check(bool closed); }; @@ -117,7 +117,7 @@ class CRU_BASE_API Stream : public Object { bool GetClosed() { return closed_; } void SetClosed(bool closed) { closed_ = closed; } - void CheckClosed() { StreamAlreadyClosedException::Check(closed_); } + void CheckClosed() { StreamClosedException::Check(closed_); } private: std::optional supported_operations_; -- cgit v1.2.3