in amazonfreertossdk/src/main/java/software/amazon/freertos/amazonfreertossdk/mqttproxy/Subscribe.java [105:133]
public boolean decode(byte[] cborEncodedBytes) {
ByteArrayInputStream bais = new ByteArrayInputStream(cborEncodedBytes);
try {
List<DataItem> dataItems = new CborDecoder(bais).decode();
// process data item
Map map = (Map) dataItems.get(0);
DataItem dataItem = map.get(new UnicodeString(TYPE_KEY));
type = ((UnsignedInteger) dataItem).getValue().intValue();
dataItem = map.get(new UnicodeString(MSGID_KEY));
msgID = ((Number) dataItem).getValue().intValue();
dataItem = map.get(new UnicodeString(TOPICS_KEY));
List<DataItem> topicDataItems = ((Array) dataItem).getDataItems();
for (DataItem topicDataItem : topicDataItems) {
topics.add(((UnicodeString) topicDataItem).getString());
}
dataItem = map.get(new UnicodeString(QOSS_KEY));
List<DataItem> qosDataItems = ((Array) dataItem).getDataItems();
for (DataItem qosDataItem : qosDataItems) {
qoSs.add(((UnsignedInteger) qosDataItem).getValue().intValue());
}
return true;
} catch (CborException e) {
Log.e(TAG,"Failed to decode.", e);
return false;
} catch (IndexOutOfBoundsException e) {
return false;
}
}