diff options
author | crupest <crupest@outlook.com> | 2024-06-24 00:06:25 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2024-07-20 22:58:10 +0800 |
commit | e532469ca8844bf4daff8d462f80abdd776c018f (patch) | |
tree | 7182c3a3bb5978f5be7b5f8798eef0bef9c797eb /include/cru/common/platform/unix | |
parent | 937e64e8a115a0d6d7e6e2c466b03945b71114bc (diff) | |
download | cru-e532469ca8844bf4daff8d462f80abdd776c018f.tar.gz cru-e532469ca8844bf4daff8d462f80abdd776c018f.tar.bz2 cru-e532469ca8844bf4daff8d462f80abdd776c018f.zip |
feat: change subprocess implementation.
NEED TEST: BufferStream, AutoReadStream, SubProcess.
Diffstat (limited to 'include/cru/common/platform/unix')
-rw-r--r-- | include/cru/common/platform/unix/PosixSpawnSubProcess.h | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/include/cru/common/platform/unix/PosixSpawnSubProcess.h b/include/cru/common/platform/unix/PosixSpawnSubProcess.h index 9c303700..d4df284b 100644 --- a/include/cru/common/platform/unix/PosixSpawnSubProcess.h +++ b/include/cru/common/platform/unix/PosixSpawnSubProcess.h @@ -16,21 +16,20 @@ #include <spawn.h> namespace cru::platform::unix { -class PosixSpawnSubProcess : public PlatformSubProcessBase { +class PosixSpawnSubProcessImpl { CRU_DEFINE_CLASS_LOG_TAG(u"PosixSpawnSubProcess") public: - explicit PosixSpawnSubProcess(SubProcessStartInfo start_info); - ~PosixSpawnSubProcess(); + explicit PosixSpawnSubProcessImpl(); + ~PosixSpawnSubProcessImpl(); - io::Stream* GetStdinStream() override; - io::Stream* GetStdoutStream() override; - io::Stream* GetStderrStream() override; + io::Stream* GetStdinStream(); + io::Stream* GetStdoutStream(); + io::Stream* GetStderrStream(); - protected: - void PlatformCreateProcess() override; - SubProcessExitResult PlatformWaitForProcess() override; - void PlatformKillProcess() override; + void PlatformCreateProcess(const SubProcessStartInfo& start_info); + SubProcessExitResult PlatformWaitForProcess(); + void PlatformKillProcess(); private: pid_t pid_; @@ -47,4 +46,6 @@ class PosixSpawnSubProcess : public PlatformSubProcessBase { std::unique_ptr<io::AutoReadStream> stdout_buffer_stream_; std::unique_ptr<io::AutoReadStream> stderr_buffer_stream_; }; + +using PosixSpawnSubProcess = PlatformSubProcess<PosixSpawnSubProcessImpl>; } // namespace cru::platform::unix |