QVariantMap Nuria::RestfulHttpNode::deepConvertMap (QVariantMap map) { for (auto it = map.begin (), end = map.end (); it != end; ++it) { *it = serializeVariant (*it); } return map; }
QVariantList Nuria::RestfulHttpNode::deepConvertList (QVariantList list) { for (auto it = list.begin (), end = list.end (); it != end; ++it) { *it = serializeVariant (*it); } return list; }
QByteArray Nuria::RestfulHttpNode::generateResultData (const QVariant &result, Nuria::HttpClient *client) { switch (result.userType ()) { case QMetaType::QByteArray: return result.toByteArray (); case QMetaType::QString: return result.toString ().toUtf8 (); case QMetaType::QJsonDocument: addJsonContentTypeHeaderToResponse (client); return result.value< QJsonDocument > ().toJson (QJsonDocument::Compact); } // return sendVariantAsJson (serializeVariant (result), client); }
void ClassSerializerImpl<Variant>::serialize(const Variant &variant, std::ostream &stream) { if (variant.isEmpty()) { return; } std::string typeName = variant.getTypeName(); auto serializer = SerializerRegistry::getSerializer(typeName); // Check that a Joynr serializer is available if (serializer) { serializer->serializeVariant(variant, stream); } }