QgsProviderRegistry Class Reference
[Core]

#include <qgsproviderregistry.h>

Collaboration diagram for QgsProviderRegistry:

Collaboration graph
[legend]
List of all members.

Detailed Description

A registry / canonical manager of data providers.

This is a Singleton class that manages data provider access.

Definition at line 39 of file qgsproviderregistry.h.

Public Types

typedef std::map< QString,
QgsProviderMetadata * > 
Providers
 type for data provider metadata associative container

Public Member Functions

virtual ~QgsProviderRegistry ()
 Virtual dectructor.
QString library (QString const &providerKey) const
 Return path for the library of the provider.
QString pluginList (bool asHtml=false) const
 Return list of provider plugins found.
const QDir & libraryDirectory () const
 return library directory where plugins are found
void setLibraryDirectory (QDir const &path)
 Set library directory where to search for plugins.
QgsDataProvidergetProvider (const QString &providerKey, const QString &dataSource)
 Create an instance of the provider.
QStringList providerList () const
 Return list of available providers by their keys.
const QgsProviderMetadataproviderMetadata (const QString &providerKey) const
 Return metadata of the provider or NULL if not found.
virtual QString fileVectorFilters () const
 return vector file filter string

Static Public Member Functions

static QgsProviderRegistryinstance (QString pluginPath=QString::null)
 means of accessing canonical single instance

Private Member Functions

 QgsProviderRegistry (QString pluginPath)
 ctor private since instance() creates it

Private Attributes

Providers mProviders
 associative container of provider metadata handles
QDir mLibraryDirectory
 directory in which provider plugins are installed
QString mVectorFileFilters
 file filter string for vector files

Static Private Attributes

static QgsProviderRegistry_instance
 pointer to canonical Singleton object


Member Typedef Documentation

typedef std::map<QString, QgsProviderMetadata*> QgsProviderRegistry::Providers

type for data provider metadata associative container

Definition at line 115 of file qgsproviderregistry.h.


Constructor & Destructor Documentation

QgsProviderRegistry::~QgsProviderRegistry (  )  [virtual]

Virtual dectructor.

Definition at line 200 of file qgsproviderregistry.cpp.

QgsProviderRegistry::QgsProviderRegistry ( QString  pluginPath  )  [private]

ctor private since instance() creates it

Definition at line 57 of file qgsproviderregistry.cpp.

References cast_to_fptr(), QgsMessageOutput::createMessageOutput(), fileVectorFilters(), QgsMessageOutput::MessageText, mLibraryDirectory, mProviders, mVectorFileFilters, QgsDebugMsg, QgsMessageOutput::setMessage(), QgsMessageOutput::setTitle(), and QgsMessageOutput::showMessage().

Referenced by instance().


Member Function Documentation

QgsProviderRegistry * QgsProviderRegistry::instance ( QString  pluginPath = QString::null  )  [static]

means of accessing canonical single instance

Definition at line 44 of file qgsproviderregistry.cpp.

References _instance, and QgsProviderRegistry().

Referenced by QgsApplication::exitQgis(), QgsApplication::initQgis(), QgsRasterLayer::setDataProvider(), and QgsVectorLayer::setDataProvider().

QString QgsProviderRegistry::library ( QString const &  providerKey  )  const

Return path for the library of the provider.

Definition at line 229 of file qgsproviderregistry.cpp.

References findMetadata_(), QgsProviderMetadata::library(), and mProviders.

Referenced by getProvider(), and QgsRasterLayer::setDataProvider().

QString QgsProviderRegistry::pluginList ( bool  asHtml = false  )  const

Return list of provider plugins found.

Definition at line 242 of file qgsproviderregistry.cpp.

References mProviders.

QDir const & QgsProviderRegistry::libraryDirectory (  )  const

return library directory where plugins are found

Definition at line 288 of file qgsproviderregistry.cpp.

References mLibraryDirectory.

void QgsProviderRegistry::setLibraryDirectory ( QDir const &  path  ) 

Set library directory where to search for plugins.

Definition at line 282 of file qgsproviderregistry.cpp.

References mLibraryDirectory.

QgsDataProvider * QgsProviderRegistry::getProvider ( const QString &  providerKey,
const QString &  dataSource 
)

Create an instance of the provider.

Parameters:
providerKey identificator of the provider
dataSource string containing data source for the provider
Returns:
instance of provider or NULL on error

Definition at line 307 of file qgsproviderregistry.cpp.

References cast_to_fptr(), QgsDataProvider::isValid(), library(), QgsDataProvider::name(), QgsDebugMsg, and QgsLogger::warning().

QStringList QgsProviderRegistry::providerList (  )  const

Return list of available providers by their keys.

Definition at line 413 of file qgsproviderregistry.cpp.

References mProviders.

const QgsProviderMetadata * QgsProviderRegistry::providerMetadata ( const QString &  providerKey  )  const

Return metadata of the provider or NULL if not found.

Definition at line 424 of file qgsproviderregistry.cpp.

References findMetadata_(), and mProviders.

QString QgsProviderRegistry::fileVectorFilters (  )  const [virtual]

return vector file filter string

Returns a string suitable for a QFileDialog of vector file formats supported by all data providers.

This walks through all data providers appending calls to their fileVectorFilters to a string, which is then returned.

Note:
It'd be nice to eventually be raster/vector neutral.

Definition at line 407 of file qgsproviderregistry.cpp.

References mVectorFileFilters.

Referenced by QgsProviderRegistry().


Member Data Documentation

QgsProviderRegistry * QgsProviderRegistry::_instance [static, private]

pointer to canonical Singleton object

Definition at line 124 of file qgsproviderregistry.h.

Referenced by instance().

Providers QgsProviderRegistry::mProviders [private]

associative container of provider metadata handles

Definition at line 127 of file qgsproviderregistry.h.

Referenced by library(), pluginList(), providerList(), providerMetadata(), and QgsProviderRegistry().

QDir QgsProviderRegistry::mLibraryDirectory [private]

directory in which provider plugins are installed

Definition at line 130 of file qgsproviderregistry.h.

Referenced by libraryDirectory(), QgsProviderRegistry(), and setLibraryDirectory().

QString QgsProviderRegistry::mVectorFileFilters [private]

file filter string for vector files

Built once when registry is constructed by appending strings returned from iteratively calling vectorFileFilter() for each visited data provider. The alternative would have been to do this each time fileVectorFilters was invoked; instead we only have to build it the one time.

Definition at line 140 of file qgsproviderregistry.h.

Referenced by fileVectorFilters(), and QgsProviderRegistry().


The documentation for this class was generated from the following files:
Generated on Tue Jan 6 16:51:22 2009 for Quantum GIS API Documentation by  doxygen 1.5.1