boost/beast/experimental/core/detail/service_base.hpp
//
// Copyright (c) 2018 Vinnie Falco (vinnie dot falco at gmail dot com)
//
// 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)
//
// Official repository: https://github.com/boostorg/beast
//
#ifndef BOOST_BEAST_CORE_DETAIL_SERVICE_BASE_HPP
#define BOOST_BEAST_CORE_DETAIL_SERVICE_BASE_HPP
#include <boost/asio/execution_context.hpp>
namespace boost {
namespace beast {
namespace detail {
template<class T>
class service_id : public boost::asio::execution_context::id
{
};
template<class T>
class service_base
: public boost::asio::execution_context::service
{
protected:
boost::asio::execution_context& ctx_;
public:
static service_id<T> id;
explicit
service_base(boost::asio::execution_context& ctx)
: boost::asio::execution_context::service(ctx)
, ctx_(ctx)
{
}
};
template<class T>
service_id<T>
service_base<T>::id;
} // detail
} // beast
} // boost
#endif