public boolean decode()

in amazonfreertossdk/src/main/java/software/amazon/freertos/amazonfreertossdk/mqttproxy/Publish.java [111:136]


    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(TOPIC_KEY));
            topic = ((UnicodeString) dataItem).getString();
            dataItem = map.get(new UnicodeString(QOS_KEY));
            qoS = ((Number) dataItem).getValue().intValue();
            if (qoS != 0) {
                dataItem = map.get(new UnicodeString(MSGID_KEY));
                msgID = ((Number) dataItem).getValue().intValue();
            }
            dataItem = map.get(new UnicodeString(PAYLOAD_KEY));
            payloadBytes = ((ByteString) dataItem).getBytes();
            return true;
        } catch (CborException e) {
            Log.e(TAG,"Failed to decode.", e);
            return false;
        } catch (IndexOutOfBoundsException e) {
            return false;
        }
    }