Quantum GIS API Documentation
1.7.4
|
00001 /*************************************************************************** 00002 qgsdataprovider.h - DataProvider Interface class 00003 -------------------------------------- 00004 Date : 09-Sep-2003 00005 Copyright : (C) 2003 by Gary E.Sherman 00006 email : sherman at mrcc.com 00007 *************************************************************************** 00008 * * 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; either version 2 of the License, or * 00012 * (at your option) any later version. * 00013 * * 00014 ***************************************************************************/ 00015 /* $Id$ */ 00016 00017 #ifndef QQGSDATAPROVIDER_H 00018 #define QQGSDATAPROVIDER_H 00019 00020 #include <QDateTime> 00021 #include <QObject> 00022 #include <QString> 00023 #include <QStringList> 00024 00025 class QgsRectangle; 00026 class QgsCoordinateReferenceSystem; 00027 00028 00042 class CORE_EXPORT QgsDataProvider : public QObject 00043 { 00044 Q_OBJECT 00045 00046 public: 00047 00048 QgsDataProvider( QString const & uri = "" ) 00049 : mDataSourceURI( uri ) 00050 {} 00051 00055 virtual ~QgsDataProvider() {}; 00056 00057 00063 virtual QgsCoordinateReferenceSystem crs() = 0; 00064 00065 00071 virtual void setDataSourceUri( QString const & uri ) 00072 { 00073 mDataSourceURI = uri; 00074 } 00075 00081 virtual QString dataSourceUri() const 00082 { 00083 return mDataSourceURI; 00084 } 00085 00086 00091 virtual QgsRectangle extent() = 0; 00092 00093 00098 virtual bool isValid() = 0; 00099 00100 00104 virtual void updateExtents() 00105 { 00106 // NOP by default 00107 } 00108 00109 00116 virtual bool setSubsetString( QString subset, bool updateFeatureCount = true ) 00117 { 00118 // NOP by default 00119 Q_UNUSED( subset ); 00120 return false; 00121 } 00122 00123 00128 virtual bool supportsSubsetString() { return false; } 00129 00136 virtual QString subsetString() 00137 { 00138 return QString::null; 00139 } 00140 00141 00148 virtual QStringList subLayers() const 00149 { 00150 return QStringList(); // Empty 00151 } 00152 00153 00161 virtual QStringList subLayerStyles() const 00162 { 00163 return QStringList(); // Empty 00164 } 00165 00166 00170 virtual uint subLayerCount() const 00171 { 00172 return 0; 00173 } 00174 00175 00181 virtual void setLayerOrder( QStringList layers ) 00182 { 00183 //prevent unused var warnings 00184 if ( layers.count() < 1 ) 00185 { 00186 return; 00187 } 00188 // NOOP 00189 } 00190 00191 00195 virtual void setSubLayerVisibility( QString name, bool vis ) 00196 { 00197 //prevent unused var warnings 00198 if ( name.isEmpty() || !vis ) 00199 { 00200 return; 00201 } 00202 // NOOP 00203 } 00204 00205 00220 virtual QString name() const = 0; 00221 00222 00234 virtual QString description() const = 0; 00235 00236 00248 virtual QString fileVectorFilters() const 00249 { 00250 return ""; 00251 } 00252 00253 00265 virtual QString fileRasterFilters() const 00266 { 00267 return ""; 00268 } 00269 00272 virtual void reloadData() {} 00273 00275 virtual QDateTime timestamp() const { return mTimestamp; } 00276 00278 virtual QDateTime dataTimestamp() const { return QDateTime(); } 00279 00280 signals: 00281 00287 void fullExtentCalculated(); 00288 00294 void dataChanged(); 00295 00301 void dataChanged( int changed ); 00302 00303 protected: 00307 QDateTime mTimestamp; 00308 private: 00309 00314 QString mDataSourceURI; 00315 }; 00316 00317 00318 #endif