From 3bcaa870078d875b65f17d82661a133f6d5cbdfc Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 30 Nov 2017 11:26:25 -0500 Subject: cmUVHandlePtr: Add uv_process_ptr --- Source/cmUVHandlePtr.cxx | 9 +++++++++ Source/cmUVHandlePtr.h | 10 ++++++++++ Tests/CMakeLib/testUVRAII.cxx | 1 + 3 files changed, 20 insertions(+) diff --git a/Source/cmUVHandlePtr.cxx b/Source/cmUVHandlePtr.cxx index 78819a5..d7e38c3 100644 --- a/Source/cmUVHandlePtr.cxx +++ b/Source/cmUVHandlePtr.cxx @@ -172,6 +172,13 @@ uv_pipe_ptr::operator uv_stream_t*() const } #ifdef CMAKE_BUILD_WITH_CMAKE +int uv_process_ptr::spawn(uv_loop_t& loop, uv_process_options_t const& options, + void* data) +{ + allocate(data); + return uv_spawn(&loop, *this, &options); +} + int uv_timer_ptr::init(uv_loop_t& loop, void* data) { allocate(data); @@ -211,6 +218,8 @@ UV_HANDLE_PTR_INSTANTIATE_EXPLICIT(stream) #ifdef CMAKE_BUILD_WITH_CMAKE UV_HANDLE_PTR_INSTANTIATE_EXPLICIT(async) +UV_HANDLE_PTR_INSTANTIATE_EXPLICIT(process) + UV_HANDLE_PTR_INSTANTIATE_EXPLICIT(timer) UV_HANDLE_PTR_INSTANTIATE_EXPLICIT(tty) diff --git a/Source/cmUVHandlePtr.h b/Source/cmUVHandlePtr.h index d3df69c..a6ce565 100644 --- a/Source/cmUVHandlePtr.h +++ b/Source/cmUVHandlePtr.h @@ -165,6 +165,14 @@ struct uv_pipe_ptr : public uv_handle_ptr_ int init(uv_loop_t& loop, int ipc, void* data = nullptr); }; +struct uv_process_ptr : public uv_handle_ptr_ +{ + CM_PERFECT_FWD_CTOR(uv_process_ptr, uv_handle_ptr_); + + int spawn(uv_loop_t& loop, uv_process_options_t const& options, + void* data = nullptr); +}; + struct uv_timer_ptr : public uv_handle_ptr_ { CM_PERFECT_FWD_CTOR(uv_timer_ptr, uv_handle_ptr_); @@ -200,6 +208,8 @@ UV_HANDLE_PTR_INSTANTIATE_EXTERN(signal) UV_HANDLE_PTR_INSTANTIATE_EXTERN(pipe) +UV_HANDLE_PTR_INSTANTIATE_EXTERN(process) + UV_HANDLE_PTR_INSTANTIATE_EXTERN(stream) UV_HANDLE_PTR_INSTANTIATE_EXTERN(timer) diff --git a/Tests/CMakeLib/testUVRAII.cxx b/Tests/CMakeLib/testUVRAII.cxx index bb3493f..44def25 100644 --- a/Tests/CMakeLib/testUVRAII.cxx +++ b/Tests/CMakeLib/testUVRAII.cxx @@ -157,6 +157,7 @@ static bool testAllMoves() uv_stream_ptr _7; uv_timer_ptr _8; uv_tty_ptr _9; + uv_process_ptr _11; uv_pipe_ptr _12; uv_async_ptr _13; uv_signal_ptr _14; -- cgit v0.12