cmd.hpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Copyright (c) 2022 Klemens D. Morgenstern
  2. // Copyright (c) 2022 Samuel Venable
  3. //
  4. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  5. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. #ifndef BOOST_PROCESS_V2_CMD_HPP
  7. #define BOOST_PROCESS_V2_CMD_HPP
  8. #include <string>
  9. #include <vector>
  10. #include <boost/process/v2/detail/config.hpp>
  11. #include <boost/process/v2/detail/throw_error.hpp>
  12. #include <boost/process/v2/process_handle.hpp>
  13. #include <boost/process/v2/pid.hpp>
  14. #include <boost/process/v2/shell.hpp>
  15. BOOST_PROCESS_V2_BEGIN_NAMESPACE
  16. namespace ext {
  17. #if defined(BOOST_PROCESS_V2_WINDOWS)
  18. BOOST_PROCESS_V2_DECL shell cmd(HANDLE handle, error_code & ec);
  19. BOOST_PROCESS_V2_DECL shell cmd(HANDLE handle);
  20. #endif
  21. /// @{
  22. /// Get the argument vector of another process
  23. BOOST_PROCESS_V2_DECL shell cmd(pid_type pid, error_code & ec);
  24. BOOST_PROCESS_V2_DECL shell cmd(pid_type pid);
  25. #if defined(BOOST_PROCESS_V2_WINDOWS)
  26. BOOST_PROCESS_V2_DECL shell cmd(HANDLE handle, error_code & ec);
  27. BOOST_PROCESS_V2_DECL shell cmd(HANDLE handle);
  28. #endif
  29. template<typename Executor>
  30. BOOST_PROCESS_V2_DECL shell cmd(basic_process_handle<Executor> & handle, error_code & ec)
  31. {
  32. #if defined(BOOST_PROCESS_V2_WINDOWS)
  33. return cmd(handle.native_handle(), ec);
  34. #else
  35. return cmd(handle.id(), ec);
  36. #endif
  37. }
  38. template<typename Executor>
  39. BOOST_PROCESS_V2_DECL shell cmd(basic_process_handle<Executor> & handle)
  40. {
  41. #if defined(BOOST_PROCESS_V2_WINDOWS)
  42. return cmd(handle.native_handle());
  43. #else
  44. return cmd(handle.id());
  45. #endif
  46. }
  47. /// @}
  48. } // namespace ext
  49. BOOST_PROCESS_V2_END_NAMESPACE
  50. #endif // BOOST_PROCESS_V2_CMD_HPP