Quantum GIS API Documentation  1.7.4
src/core/qgsdatasourceuri.h
Go to the documentation of this file.
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines