/* * Copyright (c) 2017-2023 zhllxt * * author : zhllxt * email : 37792738@qq.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) */ #ifndef __ASIO2_MQTT_BROKER_STATE_HPP__ #define __ASIO2_MQTT_BROKER_STATE_HPP__ #if defined(_MSC_VER) && (_MSC_VER >= 1200) #pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) #include #include #include #include #include #include #include #include namespace asio2::mqtt { template struct broker_state { using session_type = session_t; using subnode_type = typename session_type::subnode_type; broker_state( asio2::detail::mqtt_options& options, asio2::detail::mqtt_invoker_t& invoker ) : options_(options) , invoker_(invoker) { security_.default_config(); } asio2::detail::mqtt_options & options_; asio2::detail::mqtt_invoker_t & invoker_; /// client id map asio2::detail::mqtt_session_persistence mqtt_sessions_; /// subscription information map mqtt::subscription_map subs_map_; /// shared subscription targets mqtt::shared_target> shared_targets_; /// A list of messages retained so they can be sent to newly subscribed clients. mqtt::retained_messages retained_messages_; // Authorization and authentication settings mqtt::security security_; }; } #endif // !__ASIO2_MQTT_BROKER_STATE_HPP__