23 #ifndef MCR_EXTRAS_ISERIALIZER_H_ 24 #define MCR_EXTRAS_ISERIALIZER_H_ 30 #include "mcr/extras/base_cpp.h" 46 virtual
size_t keyCount(
bool canonical) const = 0;
47 virtual QString *keysArray(
bool canonical) const = 0;
49 virtual QVariant value(const QString &name) const = 0;
50 virtual
void setValue(const QString &name, const QVariant &val) = 0;
53 inline QStringList keys(
bool canonical)
const 56 auto ptr = keysArray(canonical);
57 for (
int i = 0; i < (int)keyCount(canonical); i++) {
58 ret.insert(i, ptr[i]);
63 inline ISerializer &build(
const QString &name,
const QVariant &val)
72 inline QVariantMap
values(
bool canonical)
75 auto kz = keys(canonical);
77 ret.insert(i, value(i));
84 for (
auto &z: vals.keys()) {
85 setValue(z, vals.value(z));
void setValues(const QVariantMap &vals)
Set all values of the object (Deserialize)
#define MCR_DECL_INTERFACE(className)
Libmacro, by Jonathan Pelletier, New Paradigm Software. Alpha version.
QVariantMap values(bool canonical)
Get all values of the object (Serialize)
Get/Set all values of an object.