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