40 std::vector<nlohmann::json> publishJsonVector;
41 for (
const auto& [packetIdentifier, publish] : publishMap) {
42 nlohmann::json publishJson;
44 publishJson[
"packet_identifier"] = packetIdentifier;
45 publishJson[
"topic"] = publish.getTopic();
46 publishJson[
"message"] = publish.getMessage();
47 publishJson[
"dup"] = publish.getDup();
48 publishJson[
"qos"] = publish.getQoS();
49 publishJson[
"retain"] = publish.getRetain();
51 publishJsonVector.emplace_back(publishJson);
54 if (!publishJsonVector.empty()) {
55 json[
"publish_map"] = publishJsonVector;
57 if (!pubrelPacketIdentifierSet.empty()) {
58 json[
"pubrel_packetidentifier_set"] = pubrelPacketIdentifierSet;
60 if (!publishPacketIdentifierSet.empty()) {
61 json[
"publish_packetidentifier_set"] = publishPacketIdentifierSet;
68 if (json.contains(
"pubrel_packetidentifier_set")) {
69 pubrelPacketIdentifierSet =
static_cast<std::set<uint16_t>>(json[
"pubrel_packetidentifier_set"]);
71 if (json.contains(
"publish_packetidentifier_set")) {
72 publishPacketIdentifierSet =
static_cast<std::set<uint16_t>>(json[
"publish_packetidentifier_set"]);
74 if (json.contains(
"publish_map")) {
75 for (
const auto& publishJson : json[
"publish_map"]) {
76 if (publishJson.contains(
"packet_identifier")) {
77 publishMap.emplace(publishJson[
"packet_identifier"],
78 iot::mqtt::packets::Publish(publishJson[
"packet_identifier"],
80 publishJson[
"message"],
83 publishJson[
"retain"]));