From 5f0d7dc36a7a0091bfc152be9f06730cd08eb4dd Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 24 Jun 2024 00:06:25 +0800 Subject: feat: reimplement subprocess without template. NEED TEST: BufferStream, AutoReadStream, SubProcess. --- include/cru/common/platform/unix/PosixSpawnSubProcess.h | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'include/cru/common/platform/unix/PosixSpawnSubProcess.h') diff --git a/include/cru/common/platform/unix/PosixSpawnSubProcess.h b/include/cru/common/platform/unix/PosixSpawnSubProcess.h index d4df284b..ee4e912a 100644 --- a/include/cru/common/platform/unix/PosixSpawnSubProcess.h +++ b/include/cru/common/platform/unix/PosixSpawnSubProcess.h @@ -16,20 +16,21 @@ #include namespace cru::platform::unix { -class PosixSpawnSubProcessImpl { +class PosixSpawnSubProcessImpl : public Object, + public virtual IPlatformSubProcessImpl { CRU_DEFINE_CLASS_LOG_TAG(u"PosixSpawnSubProcess") public: explicit PosixSpawnSubProcessImpl(); ~PosixSpawnSubProcessImpl(); - io::Stream* GetStdinStream(); - io::Stream* GetStdoutStream(); - io::Stream* GetStderrStream(); + void PlatformCreateProcess(const SubProcessStartInfo& start_info) override; + SubProcessExitResult PlatformWaitForProcess() override; + void PlatformKillProcess() override; - void PlatformCreateProcess(const SubProcessStartInfo& start_info); - SubProcessExitResult PlatformWaitForProcess(); - void PlatformKillProcess(); + io::Stream* GetStdinStream() override; + io::Stream* GetStdoutStream() override; + io::Stream* GetStderrStream() override; private: pid_t pid_; @@ -46,6 +47,4 @@ class PosixSpawnSubProcessImpl { std::unique_ptr stdout_buffer_stream_; std::unique_ptr stderr_buffer_stream_; }; - -using PosixSpawnSubProcess = PlatformSubProcess; } // namespace cru::platform::unix -- cgit v1.2.3