6#include <phosphorconfig_export.h>
45class PHOSPHORCONFIG_EXPORT
Store :
public QObject
80 T
read(
const QString& group,
const QString& key)
const
82 static_assert(
sizeof(T) == 0,
83 "PhosphorConfig::Store::read<T> is only implemented for QString, int, bool, double, "
84 "QColor, QVariantMap, QVariantList — extend store.cpp with a new specialization to add "
92 QVariant
readVariant(
const QString& group,
const QString& key)
const;
97 void write(
const QString& group,
const QString& key,
const QVariant& value);
108 void reset(
const QString& group,
const QString& key);
152 void changed(
const QString& group,
const QString& key);
156 std::unique_ptr<Private> d;
167PHOSPHORCONFIG_EXPORT QString Store::read<QString>(
const QString&,
const QString&)
const;
169PHOSPHORCONFIG_EXPORT
int Store::read<int>(
const QString&,
const QString&)
const;
171PHOSPHORCONFIG_EXPORT
bool Store::read<bool>(
const QString&,
const QString&)
const;
173PHOSPHORCONFIG_EXPORT
double Store::read<double>(
const QString&,
const QString&)
const;
175PHOSPHORCONFIG_EXPORT QColor Store::read<QColor>(
const QString&,
const QString&)
const;
177PHOSPHORCONFIG_EXPORT QVariantMap Store::read<QVariantMap>(
const QString&,
const QString&)
const;
179PHOSPHORCONFIG_EXPORT QVariantList Store::read<QVariantList>(
const QString&,
const QString&)
const;
Pluggable configuration backend.
Definition IBackend.h:150
High-level declarative configuration facade.
Definition Store.h:46
IBackend * backend() const
Direct access for callers that still need the backend (e.g.
QJsonObject exportToJson() const
Produce a JSON snapshot of every declared key's current value.
Store(IBackend *backend, Schema schema, QObject *parent=nullptr)
Construct a store that borrows backend and applies schema.
const Schema & schema() const
The schema the store was constructed with.
void resetGroup(const QString &group)
Reset every key declared in group. Undeclared extras are left alone.
T read(const QString &group, const QString &key) const
Read a declared key.
Definition Store.h:80
void reset(const QString &group, const QString &key)
Reset one key to its schema default.
void changed(const QString &group, const QString &key)
Emitted after any successful write() or reset() operation.
void resetAll()
Reset every declared key in every declared group. Extras are untouched.
bool sync()
Flush the underlying backend.
bool importFromJson(const QJsonObject &snapshot)
Overwrite declared keys from snapshot.
void write(const QString &group, const QString &key, const QVariant &value)
Write a value.
QVariant readVariant(const QString &group, const QString &key) const
Read as QVariant.
Declarative description of a configuration store.
Definition Schema.h:89