QGIS API Documentation  2.12.0-Lyon
qgsdatasourceuri.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsdatasourceuri.h - Structure to contain the component parts
3  of a data source URI
4  -------------------
5  begin : Dec 5, 2004
6  copyright : (C) 2004 by Gary E.Sherman
7  email : sherman at mrcc.com
8  ***************************************************************************/
9 
10 /***************************************************************************
11  * *
12  * This program is free software; you can redistribute it and/or modify *
13  * it under the terms of the GNU General Public License as published by *
14  * the Free Software Foundation; either version 2 of the License, or *
15  * (at your option) any later version. *
16  * *
17  ***************************************************************************/
18 
19 #ifndef QGSDATASOURCEURI_H
20 #define QGSDATASOURCEURI_H
21 
22 #include "qgis.h"
23 
24 #include <QMap>
25 
35 class CORE_EXPORT QgsDataSourceURI
36 {
37  public:
38  enum SSLmode { SSLprefer, SSLdisable, SSLallow, SSLrequire };
39 
42 
45 
47  QgsDataSourceURI( const QByteArray & uri );
48 
50  QString connectionInfo( bool expandAuthConfig = true ) const;
51 
53  QString uri( bool expandAuthConfig = true ) const;
54 
56  QByteArray encodedUri() const;
57 
59  // \note not available in python bindings
60  void setEncodedUri( const QByteArray & uri );
61 
63  void setEncodedUri( const QString & uri );
64 
66  QString quotedTablename() const;
67 
69  // \note if key exists, another is inserted
70  void setParam( const QString &key, const QString &value );
71  void setParam( const QString &key, const QStringList &value );
72 
74  // \note remove all occurrences of key, returns number of params removed
75  int removeParam( const QString &key );
76 
78  QString param( const QString &key ) const;
79 
81  QStringList params( const QString &key ) const;
82 
84  bool hasParam( const QString &key ) const;
85 
87  void setConnection( const QString& aHost,
88  const QString& aPort,
89  const QString& aDatabase,
90  const QString& aUsername,
91  const QString& aPassword,
92  SSLmode sslmode = SSLprefer,
93  const QString& authConfigId = QString() );
94 
96  void setConnection( const QString& aService,
97  const QString& aDatabase,
98  const QString& aUsername,
99  const QString& aPassword,
100  SSLmode sslmode = SSLprefer,
101  const QString& authConfigId = QString() );
102 
104  void setDatabase( const QString &database );
105 
107  void setDataSource( const QString& aSchema,
108  const QString& aTable,
109  const QString& aGeometryColumn,
110  const QString& aSql = QString(),
111  const QString& aKeyColumn = QString() );
112 
114  void setAuthConfigId( const QString& authcfg );
115 
117  void setUsername( const QString& username );
118 
120  void setPassword( const QString& password );
121 
123  static QString removePassword( const QString& aUri );
124 
126  QString authConfigId() const;
127  QString username() const;
128  QString schema() const;
129  QString table() const;
130  QString sql() const;
131  QString geometryColumn() const;
132 
134  void setUseEstimatedMetadata( bool theFlag );
135  bool useEstimatedMetadata() const;
136 
137  void disableSelectAtId( bool theFlag );
138  bool selectAtIdDisabled() const;
139 
140  void clearSchema();
141 
143  // @note added in 2.11
144  void setSchema( const QString& schema );
145 
146  void setSql( const QString& sql );
147 
148  QString host() const;
149  QString database() const;
150  QString port() const;
151  QString password() const;
152  enum SSLmode sslMode() const;
153 
154  QString service() const;
155 
156  QString keyColumn() const;
157  void setKeyColumn( const QString& column );
158 
159  QGis::WkbType wkbType() const;
160  void setWkbType( QGis::WkbType type );
161 
162  QString srid() const;
163  void setSrid( const QString& srid );
164 
165  private:
166  void skipBlanks( const QString &uri, int &i );
167  QString getValue( const QString &uri, int &i );
168  QString escape( const QString &uri, QChar delim ) const;
169 
170  /* data */
171 
173  QString mHost;
175  QString mPort;
177  QString mService;
179  QString mDatabase;
181  QString mSchema;
183  QString mTable;
185  QString mGeometryColumn;
187  QString mSql;
189  QString mAuthConfigId;
191  QString mUsername;
193  QString mPassword;
195  enum SSLmode mSSLmode;
197  QString mKeyColumn;
199  bool mUseEstimatedMetadata;
201  bool mSelectAtIdDisabled;
203  QGis::WkbType mWkbType;
205  QString mSrid;
207  QMap<QString, QString> mParams;
208 };
209 
210 #endif //QGSDATASOURCEURI_H
211 
WkbType
Used for symbology operations.
Definition: qgis.h:56
Class for storing the component parts of a PostgreSQL/RDBMS datasource URI.