| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | // Copyright (c) 2016 Klemens D. Morgenstern//// 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_DETAIL_HANDLER_HPP_#define BOOST_PROCESS_DETAIL_HANDLER_HPP_#include <boost/process/detail/config.hpp>#if defined(BOOST_POSIX_API)#include <boost/process/detail/posix/handler.hpp>#elif defined(BOOST_WINDOWS_API)#include <boost/process/detail/windows/handler.hpp>#endifnamespace boost { namespace process { namespace detail {//extended handler base.typedef api::handler_base_ext handler;template <class Handler>struct on_setup_ : handler{    explicit on_setup_(Handler handler) : handler_(handler) {}    template <class Executor>    void on_setup(Executor &e)    {        handler_(e);    }private:    Handler handler_;};template <class Handler>struct on_error_ : handler{    explicit on_error_(Handler handler) : handler_(handler) {}    template <class Executor>    void on_error(Executor &e, const std::error_code &ec)    {        handler_(e, ec);    }private:    Handler handler_;};template <class Handler>struct on_success_ : handler{    explicit on_success_(Handler handler) : handler_(handler) {}    template <class Executor>    void on_success(Executor &e)    {        handler_(e);    }private:    Handler handler_;};}}}#endif /* BOOST_PROCESS_DETAIL_HANDLER_HPP_ */
 |