7 #if !defined(MQTT_BROKER_SHARED_TARGET_HPP)
8 #define MQTT_BROKER_SHARED_TARGET_HPP
14 #include <boost/multi_index_container.hpp>
15 #include <boost/multi_index/ordered_index.hpp>
16 #include <boost/multi_index/composite_key.hpp>
17 #include <boost/multi_index/member.hpp>
18 #include <boost/multi_index/mem_fun.hpp>
30 namespace mi = boost::multi_index;
43 buffer const& client_id()
const;
47 std::set<buffer> topic_filters;
50 using mi_shared_target = mi::multi_index_container<
57 BOOST_MULTI_INDEX_CONST_MEM_FUN(entry,
buffer const&, client_id),
58 BOOST_MULTI_INDEX_MEMBER(entry,
buffer, share_name)
61 mi::ordered_non_unique<
65 BOOST_MULTI_INDEX_MEMBER(entry,
buffer, share_name),
72 mi_shared_target targets_;
std::chrono::time_point< std::chrono::steady_clock > time_point_t
Definition: time_point_t.hpp:18
#define MQTT_BROKER_NS_END
Definition: broker_namespace.hpp:22
#define MQTT_BROKER_NS_BEGIN
Definition: broker_namespace.hpp:21
Definition: shared_target.hpp:32
void insert(buffer share_name, buffer topic_filter, session_state &ss)
Definition: shared_target_impl.hpp:15
optional< session_state_ref > get_target(buffer const &share_name, buffer const &topic_filter)
Definition: shared_target_impl.hpp:64
void erase(buffer share_name, buffer topic_filter, session_state const &ss)
Definition: shared_target_impl.hpp:40
const_buffer buffer(MQTT_NS::buffer const &data)
create boost::asio::const_buffer from the MQTT_NS::buffer boost::asio::const_buffer is a kind of view...
Definition: buffer.hpp:253
std::reference_wrapper< session_state > session_state_ref
Definition: session_state_fwd.hpp:20
Definition: session_state.hpp:53