00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef QGSDATASOURCEURI_H
00021 #define QGSDATASOURCEURI_H
00022
00023 #include <QString>
00024
00030 class CORE_EXPORT QgsDataSourceURI
00031 {
00032 public:
00034 enum SSLmode { SSLprefer, SSLdisable, SSLallow, SSLrequire };
00035
00037 QgsDataSourceURI();
00038
00040 QgsDataSourceURI( QString uri );
00041
00043 QString connectionInfo() const;
00044
00046 QString uri() const;
00047
00049 QString quotedTablename() const;
00050
00053 void setConnection( const QString& aHost,
00054 const QString& aPort,
00055 const QString& aDatabase,
00056 const QString& aUsername,
00057 const QString& aPassword,
00058 SSLmode sslmode = SSLprefer );
00059
00061
00062 void setDatabase( const QString &database );
00063
00065 void setDataSource( const QString& aSchema,
00066 const QString& aTable,
00067 const QString& aGeometryColumn,
00068 const QString& aSql = QString(),
00069 const QString& aKeyColumn = QString() );
00070
00072
00073 void setUsername( QString username );
00074
00076
00077 void setPassword( QString password );
00078
00080 static QString removePassword( const QString& aUri );
00081
00082 QString username() const;
00083 QString schema() const;
00084 QString table() const;
00085 QString sql() const;
00086 QString geometryColumn() const;
00087
00089
00090 void setUseEstimatedMetadata( bool theFlag );
00091 bool useEstimatedMetadata() const;
00092
00093 void clearSchema();
00094 void setSql( QString sql );
00095
00096
00097 QString host() const;
00098 QString database() const;
00099 QString port() const;
00100 QString password() const;
00101 enum SSLmode sslMode() const;
00102
00103
00104 QString keyColumn() const;
00105 void setKeyColumn( QString column );
00106
00107 private:
00108 void skipBlanks( const QString &uri, int &i );
00109 QString getValue( const QString &uri, int &i );
00110 QString escape( const QString &uri, QChar delim ) const;
00111
00112
00113
00115 QString mHost;
00117 QString mDatabase;
00119 QString mPort;
00121 QString mSchema;
00123 QString mTable;
00125 QString mGeometryColumn;
00127 QString mSql;
00129 QString mUsername;
00131 QString mPassword;
00133 enum SSLmode mSSLmode;
00135 QString mKeyColumn;
00136
00137 bool mUseEstimatedMetadata;
00138 };
00139
00140 #endif //QGSDATASOURCEURI_H
00141