153 std::list<std::string> topicsToUnsubscribe;
155 const bool existsInNew = std::any_of(newSubscriptions.begin(), newSubscriptions.end(), [&](
const auto& newTopic) {
156 return currentTopic.getName() == newTopic.getName() && currentTopic.getQoS() == newTopic.getQoS();
160 topicsToUnsubscribe.push_back(currentTopic.getName());
164 if (!topicsToUnsubscribe.empty()) {
165 sendUnsubscribe(topicsToUnsubscribe);
168 std::list<iot::
mqtt::Topic> topicsToSubscribe;
169 for (
const auto& newTopic : newSubscriptions) {
171 return currentTopic.getName() == newTopic.getName() && currentTopic.getQoS() == newTopic.getQoS();
175 topicsToSubscribe.push_back(newTopic);
179 if (!topicsToSubscribe.empty()) {
180 sendSubscribe(topicsToSubscribe);
185 return {topicsToSubscribe.size(), topicsToUnsubscribe.size()};