public boolean decode()

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;
        }
    }