QVariant toQVariant(AbstractPropertyType* val) { QVariantMap value; value["name"] = val->name.c_str(); value["zone"] = val->zone; value["source"] = val->sourceUuid.c_str(); value["timestamp"] = val->timestamp; value["sequence"] = val->sequence; value["value"] = gvariantToQVariant(val->toVariant()); return value; }
QVariant gvariantToQVariant(GVariant *value) { GVariantClass c = g_variant_classify(value); if(c == G_VARIANT_CLASS_BOOLEAN) return QVariant((bool) g_variant_get_boolean(value)); else if(c == G_VARIANT_CLASS_BYTE) return QVariant((char) g_variant_get_byte(value)); else if(c == G_VARIANT_CLASS_INT16) return QVariant((int) g_variant_get_int16(value)); else if(c == G_VARIANT_CLASS_UINT16) return QVariant((unsigned int) g_variant_get_uint16(value)); else if(c == G_VARIANT_CLASS_INT32) return QVariant((int) g_variant_get_int32(value)); else if(c == G_VARIANT_CLASS_UINT32) return QVariant((unsigned int) g_variant_get_uint32(value)); else if(c == G_VARIANT_CLASS_INT64) return QVariant((long long) g_variant_get_int64(value)); else if(c == G_VARIANT_CLASS_UINT64) return QVariant((unsigned long long) g_variant_get_uint64(value)); else if(c == G_VARIANT_CLASS_DOUBLE) return QVariant(g_variant_get_double(value)); else if(c == G_VARIANT_CLASS_STRING) return QVariant(g_variant_get_string(value, NULL)); else if(c == G_VARIANT_CLASS_ARRAY) { gsize dictsize = g_variant_n_children(value); QVariantList list; for (int i=0;i<dictsize;i++) { GVariant *childvariant = g_variant_get_child_value(value,i); GVariant *innervariant = g_variant_get_variant(childvariant); list.append(gvariantToQVariant(innervariant)); } return list; } else return QVariant::Invalid; }
{ if(!reply->success) { DebugOut(DebugOut::Error)<<"bluemoney get history call failed"<<endl; return; } if(cbFunction.isFunction()) { QVariantList list; for(auto itr = reply->values.begin(); itr != reply->values.end(); itr++) { AbstractPropertyType *val = *itr; list.append(gvariantToQVariant(val->toVariant())); } cbFunction.call(QScriptValue(),cbFunction.engine()->newVariant(list)); } delete reply; }; routingEngine->getRangePropertyAsync(request); } void BluemonkeySink::createCustomProperty(QString name, QScriptValue defaultValue) {