24#include <dtkcore_global.h>
30#include <QJsonDocument>
41class DConfigFilePrivate;
49 Q_DECLARE_FLAGS(Flags, Flag)
66 static constexpr Version supportedVersion();
68 explicit DConfigFile(
const QString &appId,
const QString &name,
69 const QString &subpath = QString());
72 bool load(
const QString &localPrefix = QString());
73 bool load(QIODevice *meta,
const QList<QIODevice*> &overrides);
75 bool save(
const QString &localPrefix = QString(), QJsonDocument::JsonFormat format = QJsonDocument::Indented,
76 bool sync =
false)
const;
79 QVariant value(
const QString &key,
DConfigCache *userCache =
nullptr)
const;
80 bool setValue(
const QString &key,
const QVariant &value,
const QString &callerAppid,
89 friend QDebug operator<<(QDebug,
const DConfigFile &);
96 virtual void setVersion(quint16 major, quint16 minor) = 0;
98 virtual bool load(
const QString &localPrefix = QString()) = 0;
100 virtual bool load(QIODevice *meta,
const QList<QIODevice*> &overrides) = 0;
103 virtual DConfigFile::Flags
flags(
const QString &key)
const = 0;
106 virtual int serial(
const QString &key)
const = 0;
108 virtual QString
displayName(
const QString &key,
const QLocale &locale) = 0;
109 virtual QString
description(
const QString &key,
const QLocale &locale) = 0;
111 virtual QString
metaPath(
const QString &localPrefix = QString(),
bool *useAppId =
nullptr)
const = 0;
112 virtual QStringList
allOverrideDirs(
const bool useAppId,
const QString &prefix = QString())
const = 0;
114 virtual QVariant
value(
const QString &key)
const = 0;
121 virtual bool load(
const QString &localPrefix = QString()) = 0;
122 virtual bool save(
const QString &localPrefix = QString(),
123 QJsonDocument::JsonFormat format = QJsonDocument::Indented,
bool sync =
false) = 0;
126 virtual void remove(
const QString &key) = 0;
128 virtual bool setValue(
const QString &key,
const QVariant &value,
const int serial,
129 const uint uid,
const QString &callerAppid) = 0;
130 virtual QVariant
value(
const QString &key)
const = 0;
131 virtual int serial(
const QString &key)
const = 0;
132 virtual uint
uid()
const = 0;
135#ifndef QT_NO_DEBUG_STREAM
136Q_CORE_EXPORT QDebug operator<<(QDebug,
const DConfigFile &);
139Q_DECLARE_OPERATORS_FOR_FLAGS(DConfigFile::Flags)
提供配置文件的用户和全局运行缓存访问接口.
Definition: dconfigfile.h:117
virtual bool setValue(const QString &key, const QVariant &value, const int serial, const uint uid, const QString &callerAppid)=0
设置缓存中的值 key 配置项名称 value 需要设置的值 uid 设置时的用户id callerAppid 设置时的应用id
virtual bool save(const QString &localPrefix=QString(), QJsonDocument::JsonFormat format=QJsonDocument::Indented, bool sync=false)=0
保存缓存的值到磁盘中 localPrefix 为目录前缀 format 保存格式 sync 是否立即刷新
virtual void remove(const QString &key)=0
删除缓存中的配置项 key 配置项名称
virtual QStringList keyList() const =0
返回配置内容的所有配置项
virtual int serial(const QString &key) const =0
返回配置项的单调递增值 key 配置项名称
virtual bool isGlobal() const =0
是否是全局缓存
virtual QVariant value(const QString &key) const =0
获取缓存中的值 key 配置项名称
virtual uint uid() const =0
用户标识,为全局缓存时,uid为非用户标识的特定值
virtual bool load(const QString &localPrefix=QString())=0
解析缓存配置文件
规范配置文件读写的相关接口的配置文件实现.
Definition: dconfigfile.h:42
Flag
Definition: dconfigfile.h:45
Permissions
Definition: dconfigfile.h:51
Visibility
Definition: dconfigfile.h:56
一些宏的定义.
Definition: dobject.h:38
版本信息
Definition: dconfigfile.h:61