Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers RecordParser.cpp Source File

RecordParser.cpp

00001 /* mbed Microcontroller Library
00002  * Copyright (c) 2018 ARM Limited
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #include "nfc/ndef/RecordParser.h"
00018 
00019 namespace mbed {
00020 namespace nfc {
00021 namespace ndef {
00022 
00023 bool RecordParserChain::parse(const Record &record)
00024 {
00025     RecordParser *current_parser = _parsers;
00026     while (current_parser) {
00027         if (current_parser->parse(record)) {
00028             return true;
00029         }
00030         current_parser = current_parser->_next_parser;
00031     }
00032     return false;
00033 }
00034 
00035 void RecordParserChain::set_next_parser(RecordParser *parser)
00036 {
00037     if (!_parsers) {
00038         _parsers = parser;
00039     } else {
00040         RecordParser *current_parser = _parsers;
00041         while (current_parser->_next_parser) {
00042             current_parser = current_parser->_next_parser;
00043         }
00044         current_parser->_next_parser = parser;
00045     }
00046 }
00047 
00048 } // namespace ndef
00049 } // namespace nfc
00050 } // namespace mbed