on_exit.hpp 1001 B

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright (c) 2016 Klemens D. Morgenstern
  2. //
  3. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  4. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. #ifndef BOOST_PROCESS_POSIX_ON_EXIT_HPP_
  6. #define BOOST_PROCESS_POSIX_ON_EXIT_HPP_
  7. #include <boost/process/detail/config.hpp>
  8. #include <boost/process/detail/handler_base.hpp>
  9. #include <boost/process/detail/posix/async_handler.hpp>
  10. #include <system_error>
  11. #include <functional>
  12. namespace boost { namespace process { namespace detail { namespace posix {
  13. struct on_exit_ : boost::process::detail::posix::async_handler
  14. {
  15. std::function<void(int, const std::error_code&)> handler;
  16. on_exit_(const std::function<void(int, const std::error_code&)> & handler) : handler(handler)
  17. {
  18. }
  19. template<typename Executor>
  20. std::function<void(int, const std::error_code&)> on_exit_handler(Executor&)
  21. {
  22. return handler;
  23. }
  24. };
  25. }}}}
  26. #endif /* BOOST_PROCESS_POSIX_ON_EXIT_HPP_ */