QGIS API Documentation 3.39.0-Master (52f98f8c831)
Loading...
Searching...
No Matches
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
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
33struct CORE_EXPORT QgsSpatialiteCloser
34{
35
39 void operator()( sqlite3 *database );
40
44 void *mSpatialiteContext = nullptr;
45};
46
54class CORE_EXPORT spatialite_database_unique_ptr : public std::unique_ptr< sqlite3, QgsSpatialiteCloser>
55{
56 public:
57
63 int open( const QString &path );
64
68 void reset();
69
77 void reset( sqlite3 *handle ) = delete;
78
84 int open_v2( const QString &path, int flags, const char *zVfs );
85
89 QString errorMessage() const;
90
95 sqlite3_statement_unique_ptr prepare( const QString &sql, int &resultCode );
96};
97
98#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 ...
struct sqlite3 sqlite3
Closes a spatialite database.