/** holds data provider key, description, and associated shared library file information

   The metadata class is used in a lazy load implementation in
   QgsProviderRegistry.  To save memory, data providers are only actually
   loaded via QLibrary calls if they're to be used.  (Though they're all
   iteratively loaded once to get their metadata information, and then
   unloaded when the QgsProviderRegistry is created.)  QgsProviderMetadata
   supplies enough information to be able to later load the associated shared
   library object.

 */
class QgsProviderMetadata
{
%TypeHeaderCode
#include <qgsprovidermetadata.h>
%End

public:

    QgsProviderMetadata(const QString & _key, const QString & _description, const QString & _library);

    /** this returns the unique key associated with the provider

        This key string is used for the associative container in QgsProviderRegistry
    */
    const QString & key() const;

    /** this returns descriptive text for the provider

        This is used to provide a descriptive list of available data providers.
    */
    const QString & description() const;

    /** this returns the library file name

        This is used to QLibrary calls to load the data provider.
    */
    const QString & library() const;


}; // class QgsProviderMetadata