QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
qgsconnectionregistry.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgsconnectionregistry.cpp
3
--------------------------
4
begin : March 2020
5
copyright : (C) 2020 by Nyall Dawson
6
email : nyall dot dawson at gmail dot com
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
#include "
qgsconnectionregistry.h
"
19
20
#include "
qgsprovidermetadata.h
"
21
#include "
qgsproviderregistry.h
"
22
23
#include <QRegularExpression>
24
#include <QString>
25
26
#include "moc_qgsconnectionregistry.cpp"
27
28
using namespace
Qt::StringLiterals;
29
30
QgsConnectionRegistry::QgsConnectionRegistry
( QObject *parent
SIP_TRANSFERTHIS
)
31
: QObject( parent )
32
{}
33
34
QgsAbstractProviderConnection
*
QgsConnectionRegistry::createConnection
(
const
QString &
id
)
35
{
36
const
QRegularExpressionMatch m = QRegularExpression( u
"(.*?)\\://(.*)"
_s ).match(
id
);
37
if
( !m.hasMatch() )
38
throw
QgsProviderConnectionException
( QObject::tr(
"Invalid connection id"
) );
39
40
const
QString providerKey = m.captured( 1 );
41
const
QString name = m.captured( 2 );
42
43
QgsProviderMetadata
*md =
QgsProviderRegistry::instance
()->
providerMetadata
( providerKey );
44
45
if
( !md )
46
throw
QgsProviderConnectionException
( QObject::tr(
"Invalid provider key: %1"
).arg( providerKey ) );
47
48
return
md->
createConnection
( name );
49
}
QgsAbstractProviderConnection
An interface for data provider connections.
Definition
qgsabstractproviderconnection.h:43
QgsConnectionRegistry::createConnection
QgsAbstractProviderConnection * createConnection(const QString &name)
Creates a new connection by loading the connection with the given id from the settings.
Definition
qgsconnectionregistry.cpp:34
QgsConnectionRegistry::QgsConnectionRegistry
QgsConnectionRegistry(QObject *parent=nullptr)
Constructor for QgsConnectionRegistry.
Definition
qgsconnectionregistry.cpp:30
QgsProviderConnectionException
Custom exception class for provider connection related exceptions.
Definition
qgsexception.h:94
QgsProviderMetadata
Holds data provider key, description, and associated shared library file or function pointer informat...
Definition
qgsprovidermetadata.h:234
QgsProviderMetadata::createConnection
virtual QgsAbstractProviderConnection * createConnection(const QString &uri, const QVariantMap &configuration)
Creates a new connection from uri and configuration, the newly created connection is not automaticall...
Definition
qgsprovidermetadata.cpp:363
QgsProviderRegistry::instance
static QgsProviderRegistry * instance(const QString &pluginPath=QString())
Means of accessing canonical single instance.
Definition
qgsproviderregistry.cpp:86
QgsProviderRegistry::providerMetadata
QgsProviderMetadata * providerMetadata(const QString &providerKey) const
Returns metadata of the provider or nullptr if not found.
Definition
qgsproviderregistry.cpp:1047
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition
qgis_sip.h:52
qgsconnectionregistry.h
qgsprovidermetadata.h
qgsproviderregistry.h
Generated on
for QGIS API Documentation by
1.17.0