const picojson::array &payload_items = payload_json.get<picojson::array>();
for (size_t i = 0; i < payload_items.size(); i++) {
picojson::value item = payload_items[i];
+
const std::string type = item.get(kPayloadDataType).to_str();
+ const std::string key = item.get(kKey).to_str();
+ const std::string value = item.get(kValue).to_str(); // TODO: check if it is an object
+
if (kTypeString == type) {
- const std::string key = item.get(kKey).to_str();
- const std::string value = item.get(kValue).to_str(); // TODO: check if it is an object
int error = conv_payload_set_string(payload_handle_, key.c_str(), value.c_str());
if (CONV_ERROR_NONE != error) {
trace_conv_error(error, __LINE__, "setting payload string");
}
} else if (kTypeRawBytes == type) {
- // TODO
- LoggerW("IMPLEMENT BYTE PAYLOAD!!!");
+ int length = static_cast<int>(value.size());
+ unsigned char bytes[length];
+ memcpy(bytes, value.c_str(), length);
+
+ int error = conv_payload_set_byte(payload_handle_, key.c_str(), length, bytes);
+ if (CONV_ERROR_NONE != error) {
+ trace_conv_error(error, __LINE__, "setting payload string");
+ }
} else {
LoggerE("ERROR! Unknown type of payload [%s]", type.c_str());
}