libcarla/include/system/boost/process/v2/windows/creation_flags.hpp
2024-10-18 13:19:59 +08:00

45 lines
1.3 KiB
C++

//
// 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.startup_info.StartupInfo.dwFlags |= Flags;
return error_code {};
};
};
/// A flag to create a new process group. Necessary to allow interupts for the subproces.
constexpr static process_creation_flags<CREATE_NEW_PROCESS_GROUP> create_new_process_group;
}
BOOST_PROCESS_V2_END_NAMESPACE
#endif // BOOST_PROCESS_V2_WINDOWS_CREATION_FLAGS_HPP