void JointSensor::write(XmlWriter & output) const { output.startElement("RobotSensor"); output.writeElement("SensorType", toString(type)); output.writeElement("SensorPortNumberA", std::to_string(portA)); output.writeElement("SensorSignalTypeA", toString(portSignal)); output.writeElement("SensorPortNumberB", std::to_string(portB)); output.writeElement("SensorSignalTypeB", toString(portSignal)); output.writeElement("SensorConversionFactor", std::to_string(conversionFactor)); output.endElement(); }
void MALItem::serialize(XmlWriter& writer) const { writer.startElement("MALitem"); writer.writeAttribute("version", "1"); using std::to_string; writer.writeElement("series_itemdb_id", to_string(series_itemdb_id)); writer.writeElement("series_title", series_title); writer.writeElement("series_preferred_title", series_preferred_title); writer.writeElement("series_date_begin", series_date_begin); writer.writeElement("series_date_end", series_date_end); writer.writeElement("image_url", image_url); writer.startElement("series_synonyms"); std::for_each(std::begin(series_synonyms), std::end(series_synonyms), std::bind(&XmlWriter::writeElement, std::ref(writer), "series_synonym", std::placeholders::_1)); writer.endElement(); writer.writeElement("series_synopsis", series_synopsis ); writer.startElement("tags"); std::for_each(std::begin(tags), std::end(tags), std::bind(&XmlWriter::writeElement, std::ref(writer), "tag", std::placeholders::_1)); writer.endElement(); writer.writeElement("date_start", date_start); writer.writeElement("date_finish", date_finish); writer.writeElement("id", to_string(id)); writer.writeElement("last_updated", to_string(last_updated)); writer.writeElement("score", to_string(score)); writer.writeElement("enable_reconsuming", to_string(enable_reconsuming)); writer.writeElement("fansub_group", fansub_group); writer.writeElement("comments", comments); writer.writeElement("downloaded_items", to_string(downloaded_items)); writer.writeElement("times_consumed", to_string(times_consumed)); writer.writeElement("reconsume_value", to_string(reconsume_value)); writer.writeElement("priority", to_string(priority)); writer.writeElement("enable_discussion", to_string(enable_discussion)); writer.writeElement("has_details", to_string(has_details)); writer.endElement(); }
std::string AnimeSerializer::serialize(const Anime& anime) const { XmlWriter writer; writer.startDoc(); writer.startElement("entry"); writer.writeElement("episode", std::to_string(anime.episodes)); writer.writeElement("status", std::to_string(static_cast<int>(anime.status))); writer.writeElement("score", std::to_string(anime.score)); writer.writeElement("downloaded_episodes", std::to_string(anime.downloaded_items)); if (anime.has_details) { writer.writeElement("storage_type", std::to_string(static_cast<int>(anime.storage_type))); writer.writeElement("storage_value", std::to_string(anime.storage_value)); writer.writeElement("times_rewatched", std::to_string(anime.times_consumed)); writer.writeElement("rewatch_value", std::to_string(static_cast<int>(anime.reconsume_value))); } auto start = Glib::Date(); start.set_parse(anime.date_start); if (start.valid()) { writer.writeElement("date_start", start.format_string("%m%d%Y")); } auto finish = Glib::Date(); finish.set_parse(anime.date_finish); if (finish.valid()) { writer.writeElement("date_finish", finish.format_string("%m%d%Y")); } if (anime.has_details) { writer.writeElement("priority", std::to_string(static_cast<int>(anime.priority))); writer.writeElement("enable_discussion", anime.enable_discussion?"1":"0"); } writer.writeElement("enable_rewatching", anime.enable_reconsuming?"1":"0"); if (anime.has_details) { writer.writeElement("comments", anime.comments); writer.writeElement("fansub_group", anime.fansub_group); } std::string tags; auto iter = anime.tags.begin(); bool was_first = true; while (iter != anime.tags.end()) { if (!was_first) tags += ", "; tags += *iter; was_first = false; ++iter; } writer.writeElement("tags", tags); writer.writeElement("rewatch_episode", std::to_string(anime.rewatch_episode)); writer.endDoc(); return writer.getString(); }