handler_base.hpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. // Copyright (c) 2006, 2007 Julio M. Merino Vidal
  2. // Copyright (c) 2008 Ilya Sokolov, Boris Schaeling
  3. // Copyright (c) 2009 Boris Schaeling
  4. // Copyright (c) 2010 Felipe Tanus, Boris Schaeling
  5. // Copyright (c) 2011, 2012 Jeff Flinn, Boris Schaeling
  6. // Copyright (c) 2016 Klemens D. Morgenstern
  7. //
  8. // Distributed under the Boost Software License, Version 1.0. (See accompanying
  9. // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  10. #ifndef BOOST_PROCESS_DETAIL_HANDLER_BASE_HPP
  11. #define BOOST_PROCESS_DETAIL_HANDLER_BASE_HPP
  12. #include <boost/process/v1/detail/config.hpp>
  13. #include <system_error>
  14. namespace boost { namespace process { BOOST_PROCESS_V1_INLINE namespace v1 { namespace detail {
  15. template<template <class> class Template>
  16. struct make_handler_t
  17. {
  18. constexpr make_handler_t() {}
  19. template<typename Handler>
  20. constexpr Template<Handler> operator()(Handler handler) const {return Template<Handler>(handler);}
  21. template<typename Handler>
  22. constexpr Template<Handler> operator= (Handler handler) const {return Template<Handler>(handler);}
  23. template<typename Handler>
  24. constexpr Template<Handler> operator+=(Handler handler) const {return Template<Handler>(handler);}
  25. };
  26. struct handler_base
  27. {
  28. using resource_type = void;
  29. template <class Executor>
  30. void on_setup(Executor&) const {}
  31. template <class Executor>
  32. void on_error(Executor&, const std::error_code &) const {}
  33. template <class Executor>
  34. void on_success(Executor&) const {}
  35. };
  36. }}}}
  37. #endif