8#include <dtkcore_global.h>
14#include <QJsonDocument>
25class DConfigFilePrivate;
33 Q_DECLARE_FLAGS(Flags, Flag)
52 explicit DConfigFile(
const QString &appId,
const QString &name,
53 const QString &subpath = QString());
56 bool load(
const QString &localPrefix = QString());
57 bool load(QIODevice *meta,
const QList<QIODevice*> &overrides);
59 bool save(
const QString &localPrefix = QString(), QJsonDocument::JsonFormat format = QJsonDocument::Indented,
60 bool sync =
false)
const;
64 bool setValue(
const QString &key,
const QVariant &value,
const QString &callerAppid,
73 friend QDebug operator<<(QDebug,
const DConfigFile &);
80 virtual void setVersion(quint16 major, quint16 minor) = 0;
82 virtual bool load(
const QString &localPrefix = QString()) = 0;
84 virtual bool load(QIODevice *meta,
const QList<QIODevice*> &overrides) = 0;
87 virtual DConfigFile::Flags
flags(
const QString &key)
const = 0;
90 virtual int serial(
const QString &key)
const = 0;
92 virtual QString
displayName(
const QString &key,
const QLocale &locale) = 0;
93 virtual QString
description(
const QString &key,
const QLocale &locale) = 0;
95 virtual QString
metaPath(
const QString &localPrefix = QString(),
bool *useAppId =
nullptr)
const = 0;
96 virtual QStringList
allOverrideDirs(
const bool useAppId,
const QString &prefix = QString())
const = 0;
98 virtual QVariant
value(
const QString &key)
const = 0;
105 virtual bool load(
const QString &localPrefix = QString()) = 0;
106 virtual bool save(
const QString &localPrefix = QString(),
107 QJsonDocument::JsonFormat format = QJsonDocument::Indented,
bool sync =
false) = 0;
110 virtual void remove(
const QString &key) = 0;
112 virtual bool setValue(
const QString &key,
const QVariant &value,
const int serial,
113 const uint uid,
const QString &callerAppid) = 0;
114 virtual QVariant
value(
const QString &key)
const = 0;
115 virtual int serial(
const QString &key)
const = 0;
116 virtual uint
uid()
const = 0;
119#ifndef QT_NO_DEBUG_STREAM
120Q_CORE_EXPORT QDebug operator<<(QDebug,
const DConfigFile &);
123Q_DECLARE_OPERATORS_FOR_FLAGS(DConfigFile::Flags)
提供配置文件的用户和全局运行缓存访问接口
Definition: dconfigfile.h:101
virtual bool setValue(const QString &key, const QVariant &value, const int serial, const uint uid, const QString &callerAppid)=0
设置缓存中的值
virtual bool save(const QString &localPrefix=QString(), QJsonDocument::JsonFormat format=QJsonDocument::Indented, bool sync=false)=0
保存缓存的值到磁盘中
virtual void remove(const QString &key)=0
删除缓存中的配置项
virtual QStringList keyList() const =0
返回配置内容的所有配置项
virtual int serial(const QString &key) const =0
返回配置项的单调递增值
virtual bool isGlobal() const =0
是否是全局缓存
virtual QVariant value(const QString &key) const =0
获取缓存中的值
virtual uint uid() const =0
用户标识,为全局缓存时,uid为非用户标识的特定值
virtual bool load(const QString &localPrefix=QString())=0
解析缓存配置文件
规范配置文件读写的相关接口的配置文件实现
Definition: dconfigfile.h:26
bool isValid() const
检测配置文件是否有效
bool load(QIODevice *meta, const QList< QIODevice * > &overrides)
解析配置文件流
static constexpr Version supportedVersion()
支持的版本
bool load(const QString &localPrefix=QString())
解析配置文件
bool setValue(const QString &key, const QVariant &value, const QString &callerAppid, DConfigCache *userCache=nullptr)
设置缓存中的值
DConfigFile(const QString &appId, const QString &name, const QString &subpath=QString())
DConfigFile构造函数,构造配置文件管理对象。
DConfigCache * createUserCache(const uint uid)
创建用户缓存
Flag
配置项名称
Definition: dconfigfile.h:29
DConfigFile(const DConfigFile &other)
DConfigFile构造函数,构造配置文件管理对象。
DConfigMeta * meta()
返回原型对象
QVariant value(const QString &key, DConfigCache *userCache=nullptr) const
DConfigFile::value
bool save(const QString &localPrefix=QString(), QJsonDocument::JsonFormat format=QJsonDocument::Indented, bool sync=false) const
保存缓存的值到磁盘中
DConfigCache * globalCache() const
返回全局缓存
Permissions
配置项的权限
Definition: dconfigfile.h:35
Visibility
配置项的可见性
Definition: dconfigfile.h:40
版本信息
Definition: dconfigfile.h:45