7 #if !defined(MQTT_BROKER_INFLIGHT_MESSAGE_HPP) 
    8 #define MQTT_BROKER_INFLIGHT_MESSAGE_HPP 
   14 #include <boost/asio/steady_timer.hpp> 
   34         std::shared_ptr<as::steady_timer> tim_message_expiry)
 
   37          tim_message_expiry_ { 
force_move(tim_message_expiry) }
 
   53         optional<store_message_variant> msg_opt;
 
   54         if (tim_message_expiry_) {
 
   57                     [&](v5::basic_publish_message<
sizeof(
packet_id_t)> 
const& m) {
 
   60                             std::chrono::duration_cast<std::chrono::seconds>(
 
   61                                 tim_message_expiry_->expiry() - std::chrono::steady_clock::now()
 
   64                         updated_msg.update_prop(
 
   65                             v5::property::message_expiry_interval(
 
   66                                 static_cast<uint32_t
>(d)
 
   80         ep.send_store_message(msg_opt ? msg_opt.value() : msg_, life_keeper_);
 
   88     std::shared_ptr<as::steady_timer> tim_message_expiry_;
 
   96         std::shared_ptr<as::steady_timer> tim_message_expiry
 
   98         messages_.emplace_back(
 
  106         for (
auto const& ifm : messages_) {
 
  115     template <
typename Tag>
 
  117         return messages_.get<Tag>();
 
  120     template <
typename Tag>
 
  121     decltype(
auto) 
get()
 const {
 
  122         return messages_.get<Tag>();
 
  126     using mi_inflight_message = mi::multi_index_container<
 
  136             mi::ordered_non_unique<
 
  138                 BOOST_MULTI_INDEX_MEMBER(
inflight_message, std::shared_ptr<as::steady_timer>, tim_message_expiry_)
 
  143     mi_inflight_message messages_;
 
#define MQTT_BROKER_NS_END
Definition: broker_namespace.hpp:22
#define MQTT_BROKER_NS_BEGIN
Definition: broker_namespace.hpp:21
Definition: inflight_message.hpp:29
void send(endpoint_t &ep) const
Definition: inflight_message.hpp:52
inflight_message(store_message_variant msg, any life_keeper, std::shared_ptr< as::steady_timer > tim_message_expiry)
Definition: inflight_message.hpp:31
packet_id_t packet_id() const
Definition: inflight_message.hpp:40
Definition: inflight_message.hpp:91
void insert(store_message_variant msg, any life_keeper, std::shared_ptr< as::steady_timer > tim_message_expiry)
Definition: inflight_message.hpp:93
void clear()
Definition: inflight_message.hpp:111
decltype(auto) get()
Definition: inflight_message.hpp:116
void send_all_messages(endpoint_t &ep)
Definition: inflight_message.hpp:105
server<>::endpoint_t endpoint_t
Definition: common_type.hpp:17
endpoint_t::packet_id_t packet_id_t
Definition: common_type.hpp:20
constexpr decltype(auto) visit(Visitor &&vis, Variants &&... vars)
Definition: variant.hpp:60
basic_store_message_variant< 2 > store_message_variant
Definition: message_variant.hpp:119
constexpr std::remove_reference_t< T > && force_move(T &&t)
Definition: move.hpp:20
lambda_visitor< Lambdas... > make_lambda_visitor(Lambdas &&... lambdas)
Definition: visitor_util.hpp:37