refs #192, enable value objects for JSON:

* from/toJson methods
* jsonMembers where applicable
This commit is contained in:
Klaus Basan
2014-03-26 18:44:17 +01:00
parent 586e1e4053
commit 88fb9e8832
47 changed files with 910 additions and 276 deletions

View File

@@ -135,5 +135,30 @@ namespace BlackSim
{
argument >> TupleConverter<CAircraftCfgEntries>::toTuple(*this);
}
/*
* To JSON
*/
QJsonObject CAircraftCfgEntries::toJson() const
{
return BlackMisc::serializeJson(CAircraftCfgEntries::jsonMembers(), TupleConverter<CAircraftCfgEntries>::toTuple(*this));
}
/*
* To JSON
*/
void CAircraftCfgEntries::fromJson(const QJsonObject &json)
{
BlackMisc::deserializeJson(json, CAircraftCfgEntries::jsonMembers(), TupleConverter<CAircraftCfgEntries>::toTuple(*this));
}
/*
* Members
*/
const QStringList &CAircraftCfgEntries::jsonMembers()
{
return TupleConverter<CAircraftCfgEntries>::jsonMembers();
}
}
} // namespace

View File

@@ -132,6 +132,15 @@ namespace BlackSim
//! \brief Register the metatypes
static void registerMetadata();
//! \copydoc CValueObject::toJson
virtual QJsonObject toJson() const override;
//! \copydoc CValueObject::fromJson
virtual void fromJson(const QJsonObject &json) override;
//! \brief Members
static const QStringList &jsonMembers();
};
}
} // namespace

View File

@@ -248,5 +248,30 @@ namespace BlackSim
qRegisterMetaType<CAircraftMapping>();
qDBusRegisterMetaType<CAircraftMapping>();
}
/*
* To JSON
*/
QJsonObject CAircraftMapping::toJson() const
{
return BlackMisc::serializeJson(CAircraftMapping::jsonMembers(), TupleConverter<CAircraftMapping>::toTuple(*this));
}
/*
* To JSON
*/
void CAircraftMapping::fromJson(const QJsonObject &json)
{
BlackMisc::deserializeJson(json, CAircraftMapping::jsonMembers(), TupleConverter<CAircraftMapping>::toTuple(*this));
}
/*
* Members
*/
const QStringList &CAircraftMapping::jsonMembers()
{
return TupleConverter<CAircraftMapping>::jsonMembers();
}
} // namespace
} // namespace

View File

@@ -206,8 +206,17 @@ namespace BlackSim
return dateTimeString;
}
//! \copydoc CValueObject::toJson
virtual QJsonObject toJson() const override;
//! \copydoc CValueObject::fromJson
virtual void fromJson(const QJsonObject &json) override;
//! \brief Register metadata
static void registerMetadata();
//! \brief Members
static const QStringList &jsonMembers();
};
} // namespace
} // namespace