diff options
Diffstat (limited to 'include/cru/common')
-rw-r--r-- | include/cru/common/Buffer.h | 4 | ||||
-rw-r--r-- | include/cru/common/PreConfig.h | 2 | ||||
-rw-r--r-- | include/cru/common/io/AutoReadStream.h | 9 | ||||
-rw-r--r-- | include/cru/common/platform/unix/PosixSpawnSubProcess.h | 6 |
4 files changed, 12 insertions, 9 deletions
diff --git a/include/cru/common/Buffer.h b/include/cru/common/Buffer.h index 2c3b7b87..bc2e2a26 100644 --- a/include/cru/common/Buffer.h +++ b/include/cru/common/Buffer.h @@ -91,6 +91,8 @@ class Buffer final { Index PushBack(const std::byte* other, Index other_size, bool use_memmove = false); + void PushBackCount(Index count); + /** * @brief Move forward the used-begin ptr. * @return The actual size moved forward. @@ -146,6 +148,8 @@ class Buffer final { void Move_(Buffer&& other) noexcept; void Delete_() noexcept; + void AssertValid(); + private: std::byte* ptr_; Index size_; diff --git a/include/cru/common/PreConfig.h b/include/cru/common/PreConfig.h index ba0f5bd8..3f26c589 100644 --- a/include/cru/common/PreConfig.h +++ b/include/cru/common/PreConfig.h @@ -1,3 +1,5 @@ +// IWYU pragma: always_keep + #pragma once #ifdef _MSC_VER diff --git a/include/cru/common/io/AutoReadStream.h b/include/cru/common/io/AutoReadStream.h index 4ba4066f..2887b319 100644 --- a/include/cru/common/io/AutoReadStream.h +++ b/include/cru/common/io/AutoReadStream.h @@ -1,11 +1,9 @@ #pragma once -#include "../Buffer.h" +#include "../SelfResolvable.h" #include "BufferStream.h" #include "Stream.h" -#include <condition_variable> -#include <list> #include <mutex> #include <thread> @@ -33,7 +31,8 @@ struct AutoReadStreamOptions { * @brief A stream that wraps another stream and auto read it into a buffer in a * background thread. */ -class CRU_BASE_API AutoReadStream : public Stream { +class CRU_BASE_API AutoReadStream : public Stream, + public SelfResolvable<AutoReadStream> { public: /** * @brief Wrap a stream and auto read it in background. @@ -71,7 +70,5 @@ class CRU_BASE_API AutoReadStream : public Stream { Index size_per_read_; std::unique_ptr<BufferStream> buffer_stream_; std::mutex buffer_stream_mutex_; - - std::thread background_thread_; }; } // namespace cru::io diff --git a/include/cru/common/platform/unix/PosixSpawnSubProcess.h b/include/cru/common/platform/unix/PosixSpawnSubProcess.h index 249b8043..9c303700 100644 --- a/include/cru/common/platform/unix/PosixSpawnSubProcess.h +++ b/include/cru/common/platform/unix/PosixSpawnSubProcess.h @@ -2,7 +2,9 @@ #include "../../PreConfig.h" -#ifdef CRU_PLATFORM_UNIX +#ifndef CRU_PLATFORM_UNIX +#error "This file can only be included on unix." +#endif #include "../../Base.h" #include "../../SubProcess.h" @@ -46,5 +48,3 @@ class PosixSpawnSubProcess : public PlatformSubProcessBase { std::unique_ptr<io::AutoReadStream> stderr_buffer_stream_; }; } // namespace cru::platform::unix - -#endif |