SimsWorld/MessageBasic/route_access.cpp

146 lines
3.1 KiB
C++

#include "route_access.h"
PlainRouteReset::PlainRouteReset()
:AbstractMessage(NAME(PlainRouteReset)) {
}
std::shared_ptr<Serializable> PlainRouteReset::newDefault() const
{
return std::make_shared<PlainRouteReset>();
}
void PlainRouteReset::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
STRING_PEAK(this->_route_name);
QStringList lonlist, latlist;
STRLIST_PEAK(lonlist);
STRLIST_PEAK(latlist);
for (auto idx = 0; idx < lonlist.size(); ++idx) {
auto lon = lonlist.at(idx).toDouble();
auto lat = latlist.at(idx).toDouble();
this->_lonlat_list << LonLatPos{ lon, lat };
}
}
void PlainRouteReset::saveTo(QJsonObject& obj) const
{
AbstractMessage::saveTo(obj);
STRING_SAVE(this->_route_name);
QStringList lonlist, latlist;
for (auto pos : this->_lonlat_list) {
lonlist << QString("%1").arg(pos._lon_deg);
latlist << QString("%1").arg(pos._lat_deg);
}
STRLIST_SAVE(lonlist);
STRLIST_SAVE(latlist);
}
NewPlainRoute::NewPlainRoute()
:AbstractMessage(NAME(NewPlainRoute)) {
}
std::shared_ptr<Serializable> NewPlainRoute::newDefault() const
{
return std::make_shared<NewPlainRoute>();
}
void NewPlainRoute::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
STRING_PEAK(_route_name);
}
void NewPlainRoute::saveTo(QJsonObject& obj) const
{
AbstractMessage::saveTo(obj);
STRING_SAVE(_route_name);
}
RemovePlainRoute::RemovePlainRoute()
:AbstractMessage(NAME(RemovePlainRoute))
{
}
std::shared_ptr<Serializable> RemovePlainRoute::newDefault() const
{
return std::make_shared<RemovePlainRoute>();
}
void RemovePlainRoute::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
STRING_PEAK(_route_name);
}
void RemovePlainRoute::saveTo(QJsonObject& obj) const
{
AbstractMessage::saveTo(obj);
STRING_SAVE(_route_name);
}
PlainRouteQuery::PlainRouteQuery()
:AbstractMessage(NAME(PlainRouteQuery))
{
}
std::shared_ptr<Serializable> PlainRouteQuery::newDefault() const
{
return std::make_shared<PlainRouteQuery>();
}
void PlainRouteQuery::recoveryFrom(const QJsonObject& obj)
{
AbstractMessage::recoveryFrom(obj);
STRING_PEAK(_route_name);
}
void PlainRouteQuery::saveTo(QJsonObject& obj) const
{
AbstractMessage::saveTo(obj);
STRING_SAVE(_route_name);
}
PlainRouteInfo::PlainRouteInfo()
:RespondDefault() {
_topic_string = NAME(PlainRouteInfo);
}
std::shared_ptr<Serializable> PlainRouteInfo::newDefault() const
{
return std::make_shared<PlainRouteInfo>();
}
void PlainRouteInfo::recoveryFrom(const QJsonObject& obj)
{
RespondDefault::recoveryFrom(obj);
STRING_PEAK(this->_route_name);
QStringList lonlist, latlist;
STRLIST_PEAK(lonlist);
STRLIST_PEAK(latlist);
for (auto idx = 0; idx < lonlist.size(); ++idx) {
auto lon = lonlist.at(idx).toDouble();
auto lat = latlist.at(idx).toDouble();
this->_lonlat_list << LonLatPos{ lon, lat };
}
}
void PlainRouteInfo::saveTo(QJsonObject& obj) const
{
RespondDefault::saveTo(obj);
STRING_SAVE(this->_route_name);
QStringList lonlist, latlist;
for (auto pos : this->_lonlat_list) {
lonlist << QString("%1").arg(pos._lon_deg);
latlist << QString("%1").arg(pos._lat_deg);
}
STRLIST_SAVE(lonlist);
STRLIST_SAVE(latlist);
}