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 Parametern
    

    Den 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. 👍


Anmelden zum Antworten