Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _SOPRANO_BACKEND_H_
00023 #define _SOPRANO_BACKEND_H_
00024
00025 #include "plugin.h"
00026 #include "error.h"
00027 #include "soprano_export.h"
00028 #include "sopranotypes.h"
00029
00030 #include <QtCore/QStringList>
00031 #include <QtCore/QVariant>
00032 #include <QtCore/QSharedDataPointer>
00033
00034
00035 namespace Soprano
00036 {
00037 class StorageModel;
00038
00052 class SOPRANO_EXPORT BackendSetting
00053 {
00054 public:
00059 BackendSetting();
00060
00064 BackendSetting( BackendOption option );
00065
00069 BackendSetting( BackendOption s, const QVariant& value_ );
00070
00074 BackendSetting( const QString& userOption, const QVariant& value_ );
00075
00079 BackendSetting( const BackendSetting& other );
00080
00084 ~BackendSetting();
00085
00089 BackendSetting& operator=( const BackendSetting& other );
00090
00095 BackendOption option() const;
00096
00100 QString userOptionName() const;
00101
00105 QVariant value() const;
00106
00110 void setValue( const QVariant& value );
00111
00112 private:
00113 class Private;
00114 QSharedDataPointer<Private> d;
00115 };
00116
00122 typedef QList<BackendSetting> BackendSettings;
00123
00138 SOPRANO_EXPORT bool isOptionInSettings( const BackendSettings& settings, BackendOption option, const QString& userOptionName = QString() );
00139
00154 SOPRANO_EXPORT BackendSetting& settingInSettings( BackendSettings& settings, BackendOption option, const QString& userOptionName = QString() );
00155
00168 SOPRANO_EXPORT BackendSetting& settingInSettings( BackendSettings& settings, const QString& userOptionName );
00169
00184 SOPRANO_EXPORT BackendSetting settingInSettings( const BackendSettings& settings, BackendOption option, const QString& userOptionName = QString() );
00185
00198 SOPRANO_EXPORT BackendSetting settingInSettings( const BackendSettings& settings, const QString& userOptionName = QString() );
00199
00215 SOPRANO_EXPORT QVariant valueInSettings( const BackendSettings& settings, BackendOption option, const QString& userOptionName = QString() );
00216
00231 SOPRANO_EXPORT QVariant valueInSettings( const BackendSettings& settings, const QString& userOptionName, const QVariant& defaultValue = QVariant() );
00232
00247 SOPRANO_EXPORT QVariant valueInSettingsWithDefault( const BackendSettings& settings, BackendOption option, const QVariant& defaultValue );
00248
00249
00263 class SOPRANO_EXPORT Backend : public Plugin, public Error::ErrorCache
00264 {
00265 public:
00266 Backend( const QString& name );
00267 virtual ~Backend();
00268
00280 virtual StorageModel* createModel( const BackendSettings& settings = BackendSettings() ) const = 0;
00281
00297 virtual bool deleteModelData( const BackendSettings& settings ) const = 0;
00298
00306 virtual BackendFeatures supportedFeatures() const = 0;
00307
00317 virtual QStringList supportedUserFeatures() const;
00318
00325 bool supportsFeatures( BackendFeatures feature, const QStringList& userFeatures = QStringList() ) const;
00326
00327 private:
00328 class Private;
00329 Private* const d;
00330 };
00331 }
00332
00333 Q_DECLARE_INTERFACE(Soprano::Backend, "org.soprano.plugins.Backend/2.1")
00334
00335 #endif