mirror of
https://github.com/boostorg/mqtt5.git
synced 2025-11-05 18:31:36 +01:00
Summary: related to #12 T13767 Reviewers: ivica Reviewed By: ivica Subscribers: miljen Differential Revision: https://repo.mireo.local/D30725
41 lines
1.3 KiB
C++
41 lines
1.3 KiB
C++
//
|
|
// Copyright (c) 2023-2024 Ivica Siladic, Bruno Iljazovic, Korina Simicevic
|
|
//
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
//
|
|
|
|
#ifndef ASYNC_MQTT5_REBIND_EXECUTOR_HPP
|
|
#define ASYNC_MQTT5_REBIND_EXECUTOR_HPP
|
|
|
|
#include <boost/asio/ssl/stream.hpp>
|
|
|
|
#include <boost/beast/websocket/stream.hpp>
|
|
|
|
namespace async_mqtt5::detail {
|
|
|
|
namespace asio = boost::asio;
|
|
|
|
template <typename Stream, typename Executor>
|
|
struct rebind_executor {
|
|
using other = typename Stream::template rebind_executor<Executor>::other;
|
|
};
|
|
|
|
// asio::ssl::stream does not define a rebind_executor member type
|
|
template <typename Stream, typename Executor>
|
|
struct rebind_executor<asio::ssl::stream<Stream>, Executor> {
|
|
using other = typename asio::ssl::stream<typename rebind_executor<Stream, Executor>::other>;
|
|
};
|
|
|
|
template <typename Stream, typename Executor>
|
|
struct rebind_executor<boost::beast::websocket::stream<asio::ssl::stream<Stream>>, Executor> {
|
|
using other = typename boost::beast::websocket::stream<
|
|
asio::ssl::stream<typename rebind_executor<Stream, Executor>::other>,
|
|
boost::beast::websocket::stream<asio::ssl::stream<Stream>>::is_deflate_supported::value
|
|
>;
|
|
};
|
|
|
|
} // end namespace async_mqtt5::detail
|
|
|
|
#endif // !ASYNC_MQTT5_REBIND_EXECUTOR_HPP
|