From: Mateusz Bruno-Kaminski Date: Tue, 8 Nov 2016 13:35:28 +0000 (+0100) Subject: [Convergence] Support for payload type RAW_BYTES X-Git-Tag: submit/tizen_3.0/20161113.220936~6^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=55bebb5a27099ef9b2d0100badd32903b5d56b54;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Convergence] Support for payload type RAW_BYTES [Details] Added support for payload value being a raw byte array. Change-Id: Ic1155a17fe81f8760896ac752739f887fbec5cc1 Signed-off-by: Mateusz Bruno-Kaminski --- diff --git a/src/convergence/convergence_payload.cc b/src/convergence/convergence_payload.cc index aaefef35..9c3206c4 100644 --- a/src/convergence/convergence_payload.cc +++ b/src/convergence/convergence_payload.cc @@ -88,17 +88,25 @@ void ConvergencePayloadArray::FromJson(const picojson::value &payload_json) { const picojson::array &payload_items = payload_json.get(); 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(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()); }