1bc2ed2b3Sopenharmony_ci/* 2bc2ed2b3Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 3bc2ed2b3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4bc2ed2b3Sopenharmony_ci * you may not use this file except in compliance with the License. 5bc2ed2b3Sopenharmony_ci * You may obtain a copy of the License at 6bc2ed2b3Sopenharmony_ci * 7bc2ed2b3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8bc2ed2b3Sopenharmony_ci * 9bc2ed2b3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10bc2ed2b3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11bc2ed2b3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12bc2ed2b3Sopenharmony_ci * See the License for the specific language governing permissions and 13bc2ed2b3Sopenharmony_ci * limitations under the License. 14bc2ed2b3Sopenharmony_ci */ 15bc2ed2b3Sopenharmony_ci#ifndef NDEF_HAR_DATA_PARSER_H 16bc2ed2b3Sopenharmony_ci#define NDEF_HAR_DATA_PARSER_H 17bc2ed2b3Sopenharmony_ci 18bc2ed2b3Sopenharmony_ci#include <string> 19bc2ed2b3Sopenharmony_ci#include "ndef_message.h" 20bc2ed2b3Sopenharmony_ci#include "ndef_har_dispatch.h" 21bc2ed2b3Sopenharmony_ci#include "inci_tag_interface.h" 22bc2ed2b3Sopenharmony_ci#include "taginfo.h" 23bc2ed2b3Sopenharmony_ci 24bc2ed2b3Sopenharmony_cinamespace OHOS { 25bc2ed2b3Sopenharmony_cinamespace NFC { 26bc2ed2b3Sopenharmony_cinamespace TAG { 27bc2ed2b3Sopenharmony_ciusing namespace OHOS::NFC::KITS; 28bc2ed2b3Sopenharmony_ci 29bc2ed2b3Sopenharmony_ciclass NdefHarDataParser { 30bc2ed2b3Sopenharmony_cipublic: 31bc2ed2b3Sopenharmony_ci NdefHarDataParser(std::weak_ptr<NCI::INciTagInterface> nciTagProxy); 32bc2ed2b3Sopenharmony_ci ~NdefHarDataParser() {} 33bc2ed2b3Sopenharmony_ci bool TryNdef(const std::string& msg, std::shared_ptr<KITS::TagInfo> tagInfo); 34bc2ed2b3Sopenharmony_ci 35bc2ed2b3Sopenharmony_ciprivate: 36bc2ed2b3Sopenharmony_ci std::string IsWebUri(std::shared_ptr<NdefRecord> record); 37bc2ed2b3Sopenharmony_ci std::string GetUriPayload(std::shared_ptr<NdefRecord> record); 38bc2ed2b3Sopenharmony_ci std::string GetUriPayload(std::shared_ptr<NdefRecord> record, bool isSmartPoster); 39bc2ed2b3Sopenharmony_ci bool ParseWebLink(std::vector<std::shared_ptr<NdefRecord>> records); 40bc2ed2b3Sopenharmony_ci bool ParseHarPackage( 41bc2ed2b3Sopenharmony_ci std::vector<std::string> harPackages, std::shared_ptr<KITS::TagInfo> tagInfo, const std::string &mimeType, 42bc2ed2b3Sopenharmony_ci const std::string &uri); 43bc2ed2b3Sopenharmony_ci bool ParseUriLink(std::vector<std::shared_ptr<NdefRecord>> records); 44bc2ed2b3Sopenharmony_ci bool ParseOtherType(std::vector<std::shared_ptr<NdefRecord>> records, std::shared_ptr<KITS::TagInfo> tagInfo); 45bc2ed2b3Sopenharmony_ci std::string ToMimeType(std::shared_ptr<NdefRecord> record); 46bc2ed2b3Sopenharmony_ci std::vector<std::string> ExtractHarPackages(std::vector<std::shared_ptr<NdefRecord>> records); 47bc2ed2b3Sopenharmony_ci std::string CheckForHar(std::shared_ptr<NdefRecord> record); 48bc2ed2b3Sopenharmony_ci bool IsOtherPlatformAppType(const std::string &appType); 49bc2ed2b3Sopenharmony_ci 50bc2ed2b3Sopenharmony_ci std::shared_ptr<NdefHarDispatch> ndefHarDispatch_ {nullptr}; 51bc2ed2b3Sopenharmony_ci std::weak_ptr<NCI::INciTagInterface> nciTagProxy_ {}; 52bc2ed2b3Sopenharmony_ci}; 53bc2ed2b3Sopenharmony_ci} // namespace TAG 54bc2ed2b3Sopenharmony_ci} // namespace NFC 55bc2ed2b3Sopenharmony_ci} // namespace OHOS 56bc2ed2b3Sopenharmony_ci#endif // NDEF_HAR_DATA_PARSER_H