151 std::list<std::string> topicsToUnsubscribe;
153 const bool existsInNew = std::any_of(newSubscriptions.begin(), newSubscriptions.end(), [&](
const auto& newTopic) {
154 return currentTopic.getName() == newTopic.getName() && currentTopic.getQoS() == newTopic.getQoS();
158 topicsToUnsubscribe.push_back(currentTopic.getName());
162 if (!topicsToUnsubscribe.empty()) {
163 sendUnsubscribe(topicsToUnsubscribe);
166 std::list<iot::
mqtt::Topic> topicsToSubscribe;
167 for (
const auto& newTopic : newSubscriptions) {
169 return currentTopic.getName() == newTopic.getName() && currentTopic.getQoS() == newTopic.getQoS();
173 topicsToSubscribe.push_back(newTopic);
177 if (!topicsToSubscribe.empty()) {
178 sendSubscribe(topicsToSubscribe);
183 return {topicsToSubscribe.size(), topicsToUnsubscribe.size()};