std::ostream& os
-
Hallo,
ich habe mir hier http://xmlrpcpp.sourceforge.net/ unter Downloads das xmlrpc++0.7.zip herunter geladen.
Darin gibt es eine Klasse XmlRpcValue und in dieser wiederum den hier:union { bool asBool; int asInt; double asDouble; // [...usw....] } _value;_value ist protected. Ich brauche _value.asBool und dafür gibt es write(...) der mir diesen Wert zurück gibt:
std::ostream& XmlRpcValue::write(std::ostream& os) const { switch (_type) { default: break; case TypeBoolean: os << _value.asBool; break; // den hier brauche ich, _type ist richtig gesetzt case TypeInt: os << _value.asInt; break; case TypeDouble: os << _value.asDouble; break; // [...usw....]Soweit klappt es (s.u.), das Ergebnis befindet sich in result._value.asBool
aber wie muss ich jetzt write(...) aufrufen und wie den Rückgabewert abfangen?CString hostname = "123.456.78.90"; // IP vom Fremdrechner mit TomCat int port = 1234; // Port vom TomCat XmlRpcClient client(hostname, port); // Verbindung zu TomCat auf Fremdrechner aufbauen XmlRpcValue noArgs, result(true); // Übergabe- und Rückgabeparameter client.execute("Server.Method", noArgs, result); // ruft Method auf TomCat aus, Rückgabewert in result._value.asBool ...???... = result.write(...???...); // <- mein Problem mit den richtigen ParameternDen std::ostream& os bekomme ich nicht richtig erzeugt. Wie muss ich den bilden?
Wäre prima, wenn jemand einen Tip für mich hat.
-
isabeau schrieb:
Den std::ostream& os bekomme ich nicht richtig erzeugt. Wie muss ich den bilden?
Kommt drauf an, wohin du den Wert ausgeben willst. Ich glaube allerdings, dass du das gar nicht willst. Hast du schon mal versucht, result einfach einem bool zuzuweisen? XmlRpcValue hat anscheinend einen Konvertierungsoperator zu diesem Zweck.
-
MFK schrieb:
Hast du schon mal versucht, result einfach einem bool zuzuweisen?
Ja, gerade eben gemacht. Tja, und was soll ich sagen: es scheint zu klappen.
Das geht ja einfach.
Und ich versuche hier seit Tagen irgendwelche Stream-Klassen da rein zu quetschen...
Tausend Dank.