1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- //
- // boost/process/v2/windows/default_launcher.hpp
- // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- //
- // Copyright (c) 2022 Klemens D. Morgenstern (klemens dot morgenstern at gmx dot net)
- //
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- //
- #ifndef BOOST_PROCESS_V2_WINDOWS_CREATION_FLAGS_HPP
- #define BOOST_PROCESS_V2_WINDOWS_CREATION_FLAGS_HPP
- #include <boost/process/v2/windows/default_launcher.hpp>
- BOOST_PROCESS_V2_BEGIN_NAMESPACE
- namespace windows
- {
- /// An initializers to add to the dwFlags in the startup-info
- /**
- * @tparam Flags The flags to be set.
- */
- template<DWORD Flags>
- struct process_creation_flags
- {
- constexpr process_creation_flags () {}
-
- error_code on_setup(windows::default_launcher & launcher,
- const filesystem::path &,
- const std::wstring &) const
- {
- launcher.creation_flags |= Flags;
- return error_code {};
- };
- };
- /// A flag to create a new process group. Necessary to allow interrupts for the subprocess.
- constexpr static process_creation_flags<CREATE_NEW_PROCESS_GROUP> create_new_process_group;
- constexpr static process_creation_flags<CREATE_BREAKAWAY_FROM_JOB> create_breakaway_from_job;
- constexpr static process_creation_flags<CREATE_NEW_CONSOLE> create_new_console;
- }
- BOOST_PROCESS_V2_END_NAMESPACE
- #endif // BOOST_PROCESS_V2_WINDOWS_CREATION_FLAGS_HPP
|