kconfigbackend.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _KCONFIGBACKEND_H
00023 #define _KCONFIGBACKEND_H
00024
00025 #include "kconfigdata.h"
00026 #include <kconfigbase.h>
00027 #include <klockfile.h>
00028 #include "kdemacros.h"
00029
00030 class QFile;
00031 class KConfigBackEndPrivate;
00032
00048 class KConfigBackEnd
00049 {
00050 friend class KConfig;
00051 friend class KSharedConfig;
00052 public:
00068 KConfigBackEnd(KConfigBase *_config, const QString &_fileName,
00069 const char * _resType, bool _useKDEGlobals);
00070
00074 virtual ~KConfigBackEnd();
00075
00082 virtual bool parseConfigFiles() = 0;
00083
00093 virtual void sync(bool bMerge = true) = 0;
00094
00105 void changeFileName(const QString &_fileName, const char * _resType,
00106 bool _useKDEGlobals);
00107
00113 virtual KConfigBase::ConfigState getConfigState() const
00114 { return mConfigState; }
00115
00120 QString fileName() const { return mfileName; }
00121
00126 const char * resource() const { return resType; }
00127
00133 void setLocaleString(const QCString &_localeString) { localeString = _localeString; }
00134
00139 void setFileWriteMode(int mode);
00140
00147 bool checkConfigFilesWritable(bool warnUser);
00148
00149 #ifdef KDE_NO_COMPAT
00150 private:
00151 #endif
00152
00155 KDE_DEPRECATED QString filename() const { return mfileName; }
00156
00162 KLockFile::Ptr lockFile( bool bGlobal = false );
00163
00164 protected:
00165 KConfigBase *pConfig;
00166
00167 QString mfileName;
00168 QCString resType;
00169 bool useKDEGlobals : 1;
00170 bool bFileImmutable : 1;
00171 QCString localeString;
00172 QString mLocalFileName;
00173 QString mGlobalFileName;
00174 KConfigBase::ConfigState mConfigState;
00175 int mFileMode;
00176
00177 protected:
00178 virtual void virtual_hook( int id, void* data );
00179 protected:
00180 class KConfigBackEndPrivate;
00181 KConfigBackEndPrivate *d;
00182 };
00183
00184
00192 class KConfigINIBackEnd : public KConfigBackEnd
00193 {
00194
00195 public:
00211 KConfigINIBackEnd(KConfigBase *_config, const QString &_fileName,
00212 const char * _resType, bool _useKDEGlobals = true)
00213 : KConfigBackEnd(_config, _fileName, _resType, _useKDEGlobals) {}
00214
00218 virtual ~KConfigINIBackEnd() {};
00219
00225 bool parseConfigFiles();
00226
00234 virtual void sync(bool bMerge = true);
00235
00236 protected:
00252 void parseSingleConfigFile(QFile& rFile, KEntryMap *pWriteBackMap = 0L,
00253 bool bGlobal = false, bool bDefault = false);
00254
00269 bool writeConfigFile(QString filename, bool bGlobal = false, bool bMerge = true);
00270
00283 bool getEntryMap(KEntryMap &map, bool bGlobal, QFile *mergeFile);
00284
00286 void writeEntries(FILE *pStream, const KEntryMap &aTempMap);
00287
00288 protected:
00289 virtual void virtual_hook( int id, void* data );
00290 private:
00291 class KConfigINIBackEndPrivate;
00292 KConfigINIBackEndPrivate *not_d;
00293 };
00294
00295 #endif
This file is part of the documentation for kdecore Library Version 3.3.0.