Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-13 10:03:37

0001 // Copyright (c) 2016 Klemens D. Morgenstern
0002 //
0003 // Distributed under the Boost Software License, Version 1.0. (See accompanying
0004 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0005 
0006 
0007 #ifndef BOOST_PROCESS_WINDOWS_ASYNC_HANDLER_HPP_
0008 #define BOOST_PROCESS_WINDOWS_ASYNC_HANDLER_HPP_
0009 
0010 #include <boost/process/v1/detail/config.hpp>
0011 #include <boost/process/v1/detail/windows/handler.hpp>
0012 #include <type_traits>
0013 
0014 namespace boost { namespace process { BOOST_PROCESS_V1_INLINE namespace v1 { namespace detail { namespace windows {
0015 
0016 struct require_io_context {};
0017 
0018 struct async_handler : handler_base_ext, require_io_context
0019 {
0020 };
0021 
0022 template<typename T>
0023 struct is_async_handler :  std::is_base_of<async_handler, T> {};
0024 template<typename T>
0025 struct is_async_handler<T&> :  std::is_base_of<async_handler, T> {};
0026 template<typename T>
0027 struct is_async_handler<const T&> :  std::is_base_of<async_handler, T> {};
0028 
0029 template<typename T>
0030 struct does_require_io_context : std::is_base_of<require_io_context, T> {};
0031 
0032 template<typename T>
0033 struct does_require_io_context<T&> : std::is_base_of<require_io_context, T> {};
0034 
0035 template<typename T>
0036 struct does_require_io_context<const T&> : std::is_base_of<require_io_context, T> {};
0037 
0038 
0039 }}}}}
0040 
0041 #endif /* BOOST_PROCESS_WINDOWS_ASYNC_HANDLER_HPP_ */