diff --git a/example/logging.cpp b/example/logging.cpp index 659b73efa..b2079e059 100644 --- a/example/logging.cpp +++ b/example/logging.cpp @@ -288,18 +288,16 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { locked_cout() << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - locked_cout() << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + locked_cout() << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -308,10 +306,10 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { locked_cout() << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/no_tls_both.cpp b/example/no_tls_both.cpp index a95265b66..f87c75f57 100644 --- a/example/no_tls_both.cpp +++ b/example/no_tls_both.cpp @@ -287,18 +287,16 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { locked_cout() << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - locked_cout() << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + locked_cout() << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -307,10 +305,10 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { locked_cout() << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/no_tls_server.cpp b/example/no_tls_server.cpp index 8cfe764b3..30b21e1ea 100644 --- a/example/no_tls_server.cpp +++ b/example/no_tls_server.cpp @@ -194,18 +194,16 @@ int main(int argc, char** argv) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { std::cout << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - std::cout << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + std::cout << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -214,10 +212,10 @@ int main(int argc, char** argv) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { std::cout << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/no_tls_ws_both.cpp b/example/no_tls_ws_both.cpp index 72d90c97b..5d1009eed 100644 --- a/example/no_tls_ws_both.cpp +++ b/example/no_tls_ws_both.cpp @@ -286,18 +286,16 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { locked_cout() << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - locked_cout() << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + locked_cout() << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -306,10 +304,10 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { locked_cout() << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/no_tls_ws_server.cpp b/example/no_tls_ws_server.cpp index 5d0e65adb..e0e2fa4b7 100644 --- a/example/no_tls_ws_server.cpp +++ b/example/no_tls_ws_server.cpp @@ -194,18 +194,16 @@ int main(int argc, char** argv) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { std::cout << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - std::cout << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + std::cout << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -214,10 +212,10 @@ int main(int argc, char** argv) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { std::cout << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/redirect.cpp b/example/redirect.cpp index bcb4b26c4..a78214c93 100644 --- a/example/redirect.cpp +++ b/example/redirect.cpp @@ -458,7 +458,7 @@ void server_proc(Server1& s1, Server2& s2, std::set& connections, mi_s ep.set_v5_subscribe_handler( // use v5 handler [&subs, wp] (packet_id_t packet_id, - std::vector> entries, + std::vector entries, MQTT_NS::v5::properties /*props*/) { locked_cout() << "[server] subscribe received. packet_id: " << packet_id << std::endl; std::vector res; @@ -466,15 +466,12 @@ void server_proc(Server1& s1, Server2& s2, std::set& connections, mi_s auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - MQTT_NS::rap rap_value = std::get<1>(e).get_rap(); - locked_cout() << "[server] topic: " << topic - << " qos: " << qos_value - << " rap: " << rap_value + locked_cout() << "[server] topic_filter: " << e.topic_filter + << " qos: " << e.subopts.get_qos() + << " rap: " << e.subopts.get_rap() << std::endl; - res.emplace_back(MQTT_NS::v5::qos_to_suback_reason_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value, rap_value); + res.emplace_back(MQTT_NS::v5::qos_to_suback_reason_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos(), e.subopts.get_rap()); } sp->suback(packet_id, res); return true; @@ -483,11 +480,11 @@ void server_proc(Server1& s1, Server2& s2, std::set& connections, mi_s ep.set_v5_unsubscribe_handler( // use v5 handler [&subs, wp] (packet_id_t packet_id, - std::vector topics, + std::vector entries, MQTT_NS::v5::properties /*props*/) { locked_cout() << "[server] unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/tls_both.cpp b/example/tls_both.cpp index 3e6d6183e..c3c19986d 100644 --- a/example/tls_both.cpp +++ b/example/tls_both.cpp @@ -288,18 +288,16 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { locked_cout() << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - locked_cout() << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + locked_cout() << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -308,10 +306,10 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { locked_cout() << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/tls_server.cpp b/example/tls_server.cpp index 839a7cc53..04e0580db 100644 --- a/example/tls_server.cpp +++ b/example/tls_server.cpp @@ -206,18 +206,16 @@ int main(int argc, char** argv) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { std::cout << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - std::cout << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + std::cout << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -226,10 +224,10 @@ int main(int argc, char** argv) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { std::cout << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/tls_ws_both.cpp b/example/tls_ws_both.cpp index 23e532dc9..4b131533e 100644 --- a/example/tls_ws_both.cpp +++ b/example/tls_ws_both.cpp @@ -287,18 +287,16 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { locked_cout() << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - locked_cout() << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + locked_cout() << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -307,10 +305,10 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { locked_cout() << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/tls_ws_server.cpp b/example/tls_ws_server.cpp index 272ba4e5f..6a4a58515 100644 --- a/example/tls_ws_server.cpp +++ b/example/tls_ws_server.cpp @@ -206,18 +206,16 @@ int main(int argc, char** argv) { ep.set_subscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector> entries) { + std::vector entries) { std::cout << "[server]subscribe received. packet_id: " << packet_id << std::endl; std::vector res; res.reserve(entries.size()); auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - std::cout << "[server] topic: " << topic << " qos: " << qos_value << std::endl; - res.emplace_back(MQTT_NS::qos_to_suback_return_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value); + std::cout << "[server] topic_filter: " << e.topic_filter << " qos: " << e.subopts.get_qos() << std::endl; + res.emplace_back(MQTT_NS::qos_to_suback_return_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos()); } sp->suback(packet_id, res); return true; @@ -226,10 +224,10 @@ int main(int argc, char** argv) { ep.set_unsubscribe_handler( [&subs, wp] (packet_id_t packet_id, - std::vector topics) { + std::vector entries) { std::cout << "[server]unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/v5_no_tls_both.cpp b/example/v5_no_tls_both.cpp index e5a9de07f..7593572e7 100644 --- a/example/v5_no_tls_both.cpp +++ b/example/v5_no_tls_both.cpp @@ -328,7 +328,7 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_v5_subscribe_handler( // use v5 handler [&subs, wp] (packet_id_t packet_id, - std::vector> entries, + std::vector entries, MQTT_NS::v5::properties /*props*/) { locked_cout() << "[server] subscribe received. packet_id: " << packet_id << std::endl; std::vector res; @@ -336,15 +336,12 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - MQTT_NS::rap rap_value = std::get<1>(e).get_rap(); - locked_cout() << "[server] topic: " << topic - << " qos: " << qos_value - << " rap: " << rap_value + locked_cout() << "[server] topic_filter: " << e.topic_filter + << " qos: " << e.subopts.get_qos() + << " rap: " << e.subopts.get_rap() << std::endl; - res.emplace_back(MQTT_NS::v5::qos_to_suback_reason_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value, rap_value); + res.emplace_back(MQTT_NS::v5::qos_to_suback_reason_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos(), e.subopts.get_rap()); } sp->suback(packet_id, res); return true; @@ -353,11 +350,11 @@ void server_proc(Server& s, std::set& connections, mi_sub_con& subs) { ep.set_v5_unsubscribe_handler( // use v5 handler [&subs, wp] (packet_id_t packet_id, - std::vector topics, + std::vector entries, MQTT_NS::v5::properties /*props*/) { locked_cout() << "[server] unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp); diff --git a/example/v5_no_tls_server.cpp b/example/v5_no_tls_server.cpp index f5d678178..865577ee0 100644 --- a/example/v5_no_tls_server.cpp +++ b/example/v5_no_tls_server.cpp @@ -214,7 +214,7 @@ int main(int argc, char** argv) { ep.set_v5_subscribe_handler( // use v5 handler [&subs, wp] (packet_id_t packet_id, - std::vector> entries, + std::vector entries, MQTT_NS::v5::properties /*props*/) { std::cout << "[server] subscribe received. packet_id: " << packet_id << std::endl; std::vector res; @@ -222,15 +222,12 @@ int main(int argc, char** argv) { auto sp = wp.lock(); BOOST_ASSERT(sp); for (auto const& e : entries) { - MQTT_NS::buffer topic = std::get<0>(e); - MQTT_NS::qos qos_value = std::get<1>(e).get_qos(); - MQTT_NS::rap rap_value = std::get<1>(e).get_rap(); - std::cout << "[server] topic: " << topic - << " qos: " << qos_value - << " rap: " << rap_value + std::cout << "[server] topic_filter: " << e.topic_filter + << " qos: " << e.subopts.get_qos() + << " rap: " << e.subopts.get_rap() << std::endl; - res.emplace_back(MQTT_NS::v5::qos_to_suback_reason_code(qos_value)); - subs.emplace(std::move(topic), sp, qos_value, rap_value); + res.emplace_back(MQTT_NS::v5::qos_to_suback_reason_code(e.subopts.get_qos())); + subs.emplace(std::move(e.topic_filter), sp, e.subopts.get_qos(), e.subopts.get_rap()); } sp->suback(packet_id, res); return true; @@ -239,11 +236,11 @@ int main(int argc, char** argv) { ep.set_v5_unsubscribe_handler( // use v5 handler [&subs, wp] (packet_id_t packet_id, - std::vector topics, + std::vector entries, MQTT_NS::v5::properties /*props*/) { std::cout << "[server] unsubscribe received. packet_id: " << packet_id << std::endl; - for (auto const& topic : topics) { - subs.erase(topic); + for (auto const& e : entries) { + subs.erase(e.topic_filter); } auto sp = wp.lock(); BOOST_ASSERT(sp);