File indexing completed on 2024-03-24 15:23:35

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2011 Dennis Nienhüser <nienhueser@kde.org>
0004 //
0005 
0006 #ifndef SQLWRITER_H
0007 #define SQLWRITER_H
0008 
0009 #include "Writer.h"
0010 
0011 #include <QPair>
0012 #include <QHash>
0013 #include <QSqlQuery>
0014 
0015 namespace Marble
0016 {
0017 
0018 class SqlWriter : public Writer
0019 {
0020 public:
0021     explicit SqlWriter( const QString &filename, QObject* parent = nullptr );
0022 
0023     ~SqlWriter() override;
0024 
0025     void addOsmRegion( const OsmRegion &region ) override;
0026 
0027     void addOsmPlacemark( const OsmPlacemark &placemark ) override;
0028 
0029     void saveDatabase( const QString &filename ) const;
0030 
0031 private:
0032     void execQuery( QSqlQuery &query ) const;
0033 
0034     void execQuery( const QString &query ) const;
0035 
0036     QHash<QString, int> m_placemarks;
0037 
0038     QPair<int, QString> m_lastPlacemark;
0039 
0040     int m_placemarkId;
0041 };
0042 
0043 }
0044 
0045 #endif // SQLWRITER_H