Quantum GIS API Documentation  1.7.5-Wroclaw
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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 /* $Id$ */
19 
20 #ifndef QGSDATASOURCEURI_H
21 #define QGSDATASOURCEURI_H
22 
23 #include <QString>
24 
30 class CORE_EXPORT QgsDataSourceURI
31 {
32  public:
34  enum SSLmode { SSLprefer, SSLdisable, SSLallow, SSLrequire };
35 
38 
40  QgsDataSourceURI( QString uri );
41 
43  QString connectionInfo() const;
44 
46  QString uri() const;
47 
49  QString quotedTablename() const;
50 
53  void setConnection( const QString& aHost,
54  const QString& aPort,
55  const QString& aDatabase,
56  const QString& aUsername,
57  const QString& aPassword,
58  SSLmode sslmode = SSLprefer );
59 
62  void setConnection( const QString& aService,
63  const QString& aDatabase,
64  const QString& aUsername,
65  const QString& aPassword,
66  SSLmode sslmode = SSLprefer );
67 
69  // \note added in 1.4
70  void setDatabase( const QString &database );
71 
73  void setDataSource( const QString& aSchema,
74  const QString& aTable,
75  const QString& aGeometryColumn,
76  const QString& aSql = QString(),
77  const QString& aKeyColumn = QString() );
78 
80  // added in 1.5
81  void setUsername( QString username );
82 
84  // added in 1.5
85  void setPassword( QString password );
86 
88  static QString removePassword( const QString& aUri );
89 
90  QString username() const;
91  QString schema() const;
92  QString table() const;
93  QString sql() const;
94  QString geometryColumn() const;
95 
97  // added in 1.5
98  void setUseEstimatedMetadata( bool theFlag );
99  bool useEstimatedMetadata() const;
100 
101  void clearSchema();
102  void setSql( QString sql );
103 
104  // added in version 1.1
105  QString host() const;
106  QString database() const;
107  QString port() const;
108  QString password() const;
109  enum SSLmode sslMode() const;
110 
111  // added in 1.7
112  QString service() const;
113 
114  // added in version 1.2
115  QString keyColumn() const;
116  void setKeyColumn( QString column );
117 
118  private:
119  void skipBlanks( const QString &uri, int &i );
120  QString getValue( const QString &uri, int &i );
121  QString escape( const QString &uri, QChar delim ) const;
122 
123  /* data */
124 
126  QString mHost;
128  QString mPort;
130  QString mService;
132  QString mDatabase;
134  QString mSchema;
136  QString mTable;
140  QString mSql;
142  QString mUsername;
144  QString mPassword;
146  enum SSLmode mSSLmode;
148  QString mKeyColumn;
149  //Use estimated metadata flag
151 };
152 
153 #endif //QGSDATASOURCEURI_H
154