KDECore
kconfigbackend.h
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
00023 #ifndef KCONFIGBACKEND_H
00024 #define KCONFIGBACKEND_H
00025
00026 #include <QtCore/QObject>
00027 #include <QtCore/QString>
00028
00029 #include <kdecore_export.h>
00030 #include <kconfigbase.h>
00031 #include <kgenericfactory.h>
00032 #include <ksharedptr.h>
00033
00034 class KEntryMap;
00035 class KComponentData;
00036 class QFile;
00037 class QByteArray;
00038 class QDateTime;
00039
00049 class KDECORE_EXPORT KConfigBackend : public QObject, public KShared
00050 {
00051 Q_OBJECT
00052 Q_FLAGS(ParseOption)
00053 Q_FLAGS(WriteOption)
00054
00055 public:
00067 static KSharedPtr<KConfigBackend> create(const KComponentData& componentData,
00068 const QString& fileName = QString(),
00069 const QString& system = QString());
00070
00081 static void registerMappings(const KEntryMap& entryMap);
00082
00084 virtual ~KConfigBackend();
00085
00087 enum ParseOption {
00088 ParseGlobal = 1,
00089 ParseDefaults = 2,
00090 ParseExpansions = 4
00091 };
00093 Q_DECLARE_FLAGS(ParseOptions, ParseOption)
00094
00095
00096 enum WriteOption {
00097 WriteGlobal = 1
00098 };
00100 Q_DECLARE_FLAGS(WriteOptions, WriteOption)
00101
00102
00103 enum ParseInfo {
00104 ParseOk,
00105 ParseImmutable,
00106 ParseOpenError
00107 };
00108
00117 virtual ParseInfo parseConfig(const QByteArray& locale,
00118 KEntryMap& pWriteBackMap,
00119 ParseOptions options = ParseOptions()) = 0;
00120
00131 virtual bool writeConfig(const QByteArray& locale, KEntryMap& entryMap,
00132 WriteOptions options, const KComponentData &data) = 0;
00133
00139 virtual bool isWritable() const = 0;
00149 virtual QString nonWritableErrorMessage() const = 0;
00155 virtual KConfigBase::AccessMode accessMode() const = 0;
00162 virtual void createEnclosing() = 0;
00163
00171 virtual void setFilePath(const QString& path) = 0;
00172
00176 virtual bool lock(const KComponentData& componentData) = 0;
00180 virtual void unlock() = 0;
00184 virtual bool isLocked() const = 0;
00185
00189 QDateTime lastModified() const;
00191 QString filePath() const;
00193 qint64 size() const;
00194
00195 protected:
00196 KConfigBackend();
00197 void setLastModified(const QDateTime& dt);
00198 void setSize(qint64 sz);
00199 void setLocalFilePath(const QString& file);
00200
00201 private:
00202 class Private;
00203 Private *const d;
00204 };
00205
00206 Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigBackend::ParseOptions)
00207 Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigBackend::WriteOptions)
00208
00212 #define K_EXPORT_KCONFIGBACKEND(libname, classname) \
00213 K_PLUGIN_FACTORY(factory, registerPlugin<classname>();) \
00214 K_EXPORT_PLUGIN(factory("kconfigbackend_" #libname))
00215
00216
00217 #endif // KCONFIGBACKEND_H