Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsgeopackageprojectstorage.h 3 : : --------------------- 4 : : begin : March 2019 5 : : copyright : (C) 2019 by Alessandro Pasotti 6 : : email : elpaso at itopen dot it 7 : : *************************************************************************** 8 : : * * 9 : : * This program is free software; you can redistribute it and/or modify * 10 : : * it under the terms of the GNU General Public License as published by * 11 : : * the Free Software Foundation; either version 2 of the License, or * 12 : : * (at your option) any later version. * 13 : : * * 14 : : ***************************************************************************/ 15 : : 16 : : #ifndef QGSGEOPACKAGEPROJECTSTORAGE_H 17 : : #define QGSGEOPACKAGEPROJECTSTORAGE_H 18 : : 19 : : #include "qgsconfig.h" 20 : : #include "qgsprojectstorage.h" 21 : : #include "qgsdatasourceuri.h" 22 : : #include "qgis_sip.h" 23 : : 24 : : ///@cond PRIVATE 25 : : #define SIP_NO_FILE 26 : : 27 : : //! Stores information parsed from postgres project URI 28 : 0 : typedef struct 29 : : { 30 : : bool valid; 31 : : QString database; 32 : : QString projectName; 33 : : 34 : : } QgsGeoPackageProjectUri; 35 : : 36 : : 37 : 9 : class CORE_EXPORT QgsGeoPackageProjectStorage : public QgsProjectStorage 38 : : { 39 : : public: 40 : : 41 : : // QgsProjectStorage interface 42 : : public: 43 : 18 : QString type() override { return QStringLiteral( "geopackage" ); } 44 : : QStringList listProjects( const QString &uri ) override; 45 : : bool readProject( const QString &uri, QIODevice *device, QgsReadWriteContext &context ) override; 46 : : bool writeProject( const QString &uri, QIODevice *device, QgsReadWriteContext &context ) override; 47 : : bool removeProject( const QString &uri ) override; 48 : : bool renameProject( const QString &uri, const QString &uriNew ) override; 49 : : bool readProjectStorageMetadata( const QString &uri, QgsProjectStorage::Metadata &metadata ) override; 50 : : static QString encodeUri( const QgsGeoPackageProjectUri &postUri ); 51 : : static QgsGeoPackageProjectUri decodeUri( const QString &uri ); 52 : : virtual QString filePath( const QString &uri ) override; 53 : : 54 : : private: 55 : : QString _executeSql( const QString &uri, const QString &sql ); 56 : : }; 57 : : 58 : : ///@endcond 59 : : #endif // QGSGEOPACKAGEPROJECTSTORAGE_H