Quantum GIS API Documentation
1.7.4
|
00001 /*************************************************************************** 00002 qgsdatasourceuri.h - Structure to contain the component parts 00003 of a data source URI 00004 ------------------- 00005 begin : Dec 5, 2004 00006 copyright : (C) 2004 by Gary E.Sherman 00007 email : sherman at mrcc.com 00008 ***************************************************************************/ 00009 00010 /*************************************************************************** 00011 * * 00012 * This program is free software; you can redistribute it and/or modify * 00013 * it under the terms of the GNU General Public License as published by * 00014 * the Free Software Foundation; either version 2 of the License, or * 00015 * (at your option) any later version. * 00016 * * 00017 ***************************************************************************/ 00018 /* $Id$ */ 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 00062 void setConnection( const QString& aService, 00063 const QString& aDatabase, 00064 const QString& aUsername, 00065 const QString& aPassword, 00066 SSLmode sslmode = SSLprefer ); 00067 00069 // \note added in 1.4 00070 void setDatabase( const QString &database ); 00071 00073 void setDataSource( const QString& aSchema, 00074 const QString& aTable, 00075 const QString& aGeometryColumn, 00076 const QString& aSql = QString(), 00077 const QString& aKeyColumn = QString() ); 00078 00080 // added in 1.5 00081 void setUsername( QString username ); 00082 00084 // added in 1.5 00085 void setPassword( QString password ); 00086 00088 static QString removePassword( const QString& aUri ); 00089 00090 QString username() const; 00091 QString schema() const; 00092 QString table() const; 00093 QString sql() const; 00094 QString geometryColumn() const; 00095 00097 // added in 1.5 00098 void setUseEstimatedMetadata( bool theFlag ); 00099 bool useEstimatedMetadata() const; 00100 00101 void clearSchema(); 00102 void setSql( QString sql ); 00103 00104 // added in version 1.1 00105 QString host() const; 00106 QString database() const; 00107 QString port() const; 00108 QString password() const; 00109 enum SSLmode sslMode() const; 00110 00111 // added in 1.7 00112 QString service() const; 00113 00114 // added in version 1.2 00115 QString keyColumn() const; 00116 void setKeyColumn( QString column ); 00117 00118 private: 00119 void skipBlanks( const QString &uri, int &i ); 00120 QString getValue( const QString &uri, int &i ); 00121 QString escape( const QString &uri, QChar delim ) const; 00122 00123 /* data */ 00124 00126 QString mHost; 00128 QString mPort; 00130 QString mService; 00132 QString mDatabase; 00134 QString mSchema; 00136 QString mTable; 00138 QString mGeometryColumn; 00140 QString mSql; 00142 QString mUsername; 00144 QString mPassword; 00146 enum SSLmode mSSLmode; 00148 QString mKeyColumn; 00149 //Use estimated metadata flag 00150 bool mUseEstimatedMetadata; 00151 }; 00152 00153 #endif //QGSDATASOURCEURI_H 00154