QGIS API Documentation 3.29.0-Master (ade4f0cf0f)
qgsspatialiteutils.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsspatialiteutils.h
3 -------------------
4 begin : Nov, 2017
5 copyright : (C) 2017 by Matthias Kuhn
6 email : [email protected]engis.ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSSPATIALITEUTILS_H
19#define QGSSPATIALITEUTILS_H
20
21#define SIP_NO_FILE
22
23#include "qgis_core.h"
24#include "qgssqliteutils.h"
25#include <functional>
26
34struct CORE_EXPORT QgsSpatialiteCloser
35{
36
40 void operator()( sqlite3 *database );
41
45 void *mSpatialiteContext = nullptr;
46};
47
56class CORE_EXPORT spatialite_database_unique_ptr : public std::unique_ptr< sqlite3, QgsSpatialiteCloser>
57{
58 public:
59
65 int open( const QString &path );
66
70 void reset();
71
79 void reset( sqlite3 *handle ) = delete;
80
86 int open_v2( const QString &path, int flags, const char *zVfs );
87
91 QString errorMessage() const;
92
97 sqlite3_statement_unique_ptr prepare( const QString &sql, int &resultCode );
98};
99
100#endif // QGSSPATIALITEUTILS_H
Unique pointer for spatialite databases, which automatically closes the database when the pointer goe...
void reset(sqlite3 *handle)=delete
It is not allowed to set an arbitrary sqlite3 handle on this object.
Unique pointer for sqlite3 prepared statements, which automatically finalizes the statement when the ...
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
Definition: qgsgeos.h:74
struct sqlite3 sqlite3
Closes a spatialite database.