File indexing completed on 2024-06-02 05:23:58

0001 /*
0002     SPDX-FileCopyrightText: 2020 Volker Krause <vkrause@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QString>
0010 
0011 class QIODevice;
0012 class QXmlStreamReader;
0013 
0014 namespace OSM {
0015 
0016 class DataSet;
0017 
0018 class XmlParser
0019 {
0020 public:
0021     explicit XmlParser(DataSet *dataSet);
0022 
0023     void parse(QIODevice *io);
0024     QString error() const;
0025 
0026 private:
0027     void parseNode(QXmlStreamReader &reader);
0028     void parseWay(QXmlStreamReader &reader);
0029     void parseRelation(QXmlStreamReader &reader);
0030     template <typename T>
0031     void parseTag(QXmlStreamReader &reader, T &elem);
0032     template <typename T>
0033     void parseTagOrBounds(QXmlStreamReader &reader, T&elem);
0034     template <typename T>
0035     void parseBounds(QXmlStreamReader &reader, T &elem);
0036 
0037     DataSet *m_dataSet;
0038     QString m_error;
0039 };
0040 
0041 }
0042