diff options
author | Brad King <brad.king@kitware.com> | 2017-11-30 16:26:25 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-11-30 18:43:43 (GMT) |
commit | 3bcaa870078d875b65f17d82661a133f6d5cbdfc (patch) | |
tree | 407079827806611cbda863a1f0744b6c16d5bdea | |
parent | dd700e9bfb2a498632845e76ce95dd38bb866a7b (diff) | |
download | CMake-3bcaa870078d875b65f17d82661a133f6d5cbdfc.zip CMake-3bcaa870078d875b65f17d82661a133f6d5cbdfc.tar.gz CMake-3bcaa870078d875b65f17d82661a133f6d5cbdfc.tar.bz2 |
cmUVHandlePtr: Add uv_process_ptr
-rw-r--r-- | Source/cmUVHandlePtr.cxx | 9 | ||||
-rw-r--r-- | Source/cmUVHandlePtr.h | 10 | ||||
-rw-r--r-- | Tests/CMakeLib/testUVRAII.cxx | 1 |
3 files changed, 20 insertions, 0 deletions
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_<uv_pipe_t> int init(uv_loop_t& loop, int ipc, void* data = nullptr); }; +struct uv_process_ptr : public uv_handle_ptr_<uv_process_t> +{ + CM_PERFECT_FWD_CTOR(uv_process_ptr, uv_handle_ptr_<uv_process_t>); + + int spawn(uv_loop_t& loop, uv_process_options_t const& options, + void* data = nullptr); +}; + struct uv_timer_ptr : public uv_handle_ptr_<uv_timer_t> { CM_PERFECT_FWD_CTOR(uv_timer_ptr, uv_handle_ptr_<uv_timer_t>); @@ -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; |