Lines Matching refs:data

33 std::shared_ptr<NdefMessage> NdefMessage::GetNdefMessage(const std::string& data)

35 std::vector<std::shared_ptr<NdefRecord>> ndefRecords = ParseRecord(data, false);
247 const std::string& data, uint32_t& parsedDataIndex)
249 layout.typeLength = NfcSdkCommon::GetByteFromHexStr(data, parsedDataIndex++) & 0xFF;
251 layout.payloadLength = NfcSdkCommon::GetByteFromHexStr(data, parsedDataIndex++) & 0xFF;
253 if (NfcSdkCommon::GetHexStrBytesLen(data) < parsedDataIndex + int(sizeof(int))) {
256 std::string lenString = data.substr(parsedDataIndex * HEX_BYTE_LEN, sizeof(int) * HEX_BYTE_LEN);
265 layout.idLength = layout.il ? (NfcSdkCommon::GetByteFromHexStr(data, parsedDataIndex++) & 0xFF) : 0;
291 std::string NdefMessage::ParseRecordType(RecordLayout& layout, const std::string& data, uint32_t& parsedDataIndex)
297 if (NfcSdkCommon::GetHexStrBytesLen(data) < parsedDataIndex + layout.typeLength) {
298 ErrorLog("data len.%{public}d index.%{public}d rtdtype len.%{public}d error",
299 NfcSdkCommon::GetHexStrBytesLen(data), parsedDataIndex, layout.typeLength);
302 std::string type = data.substr(parsedDataIndex * HEX_BYTE_LEN, layout.typeLength * HEX_BYTE_LEN);
307 std::string NdefMessage::ParseRecordId(RecordLayout& layout, const std::string& data, uint32_t& parsedDataIndex)
313 if (NfcSdkCommon::GetHexStrBytesLen(data) < parsedDataIndex + layout.idLength) {
314 ErrorLog("data len.%{public}d index.%{public}d id len.%{public}d error",
315 NfcSdkCommon::GetHexStrBytesLen(data), parsedDataIndex, layout.idLength);
318 std::string id = data.substr(parsedDataIndex * HEX_BYTE_LEN, layout.idLength * HEX_BYTE_LEN);
323 std::string NdefMessage::ParseRecordPayload(RecordLayout& layout, const std::string& data, uint32_t& parsedDataIndex)
329 if (NfcSdkCommon::GetHexStrBytesLen(data) < (parsedDataIndex + layout.payloadLength)) {
330 ErrorLog("data len.%{public}d index.%{public}d payload len.%{public}d error",
331 NfcSdkCommon::GetHexStrBytesLen(data), parsedDataIndex, layout.payloadLength);
334 std::string payload = data.substr(parsedDataIndex * HEX_BYTE_LEN, layout.payloadLength * HEX_BYTE_LEN);
413 std::vector<std::shared_ptr<NdefRecord>> NdefMessage::ParseRecord(const std::string& data, bool isMbMeIgnored)
416 if (data.empty()) {
417 ErrorLog("ParseRecord, raw data empty.");
430 ParseRecordLayoutHead(layout, NfcSdkCommon::GetByteFromHexStr(data, parsedDataIndex++));
433 if (data.size() / HEX_BYTE_LEN < parsedDataIndex) {
436 if ((data.size() / HEX_BYTE_LEN - parsedDataIndex) < MIN_RECORD_LEN && !isMessageEnd) {
443 ParseRecordLayoutLength(layout, isChunkFound, data, parsedDataIndex);
451 tagRtdType = ParseRecordType(layout, data, parsedDataIndex);
452 id = ParseRecordId(layout, data, parsedDataIndex);
456 std::string payload = ParseRecordPayload(layout, data, parsedDataIndex);