diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-04 09:15:34 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-04 09:15:34 +0000 |
| commit | 628112acd69f4bf794c4d417d2c3bced1712cba3 (patch) | |
| tree | 05c03373ad3ca732cd4444a9d46f3f3c935f7f2b /source | |
| parent | c2a7a03e30d1d99e57172c94c106fdc842dfbf25 (diff) | |
| download | qxmpp-628112acd69f4bf794c4d417d2c3bced1712cba3.tar.gz | |
make error parsing private to QXmppStanza::Error
Diffstat (limited to 'source')
| -rw-r--r-- | source/QXmppRemoteMethod.cpp | 4 | ||||
| -rw-r--r-- | source/QXmppRpcIq.cpp | 16 | ||||
| -rw-r--r-- | source/QXmppStanza.cpp | 66 | ||||
| -rw-r--r-- | source/QXmppStanza.h | 33 |
4 files changed, 58 insertions, 61 deletions
diff --git a/source/QXmppRemoteMethod.cpp b/source/QXmppRemoteMethod.cpp index 99d04a58..456eda39 100644 --- a/source/QXmppRemoteMethod.cpp +++ b/source/QXmppRemoteMethod.cpp @@ -34,8 +34,8 @@ void QXmppRemoteMethod::gotError( const QXmppRpcErrorIq &iq ) if ( iq.id() == m_payload.id() ) { m_result.hasError = true; - m_result.errorMessage = iq.error().getText(); - m_result.code = iq.error().getType(); + m_result.errorMessage = iq.error().text(); + m_result.code = iq.error().type(); emit callDone(); } } diff --git a/source/QXmppRpcIq.cpp b/source/QXmppRpcIq.cpp index 4e9fed2f..985fc562 100644 --- a/source/QXmppRpcIq.cpp +++ b/source/QXmppRpcIq.cpp @@ -39,22 +39,6 @@ void QXmppRpcErrorIq::parse(const QDomElement &element) QXmppStanza::parse(element); setTypeFromStr(element.attribute("type")); - - QDomElement errorElement = element.firstChildElement("error"); - QXmppStanza::Error error; - error.setTypeFromStr( errorElement.attribute("type")); - - QDomElement conditionElement = errorElement.firstChildElement(); - while(!conditionElement.isNull()) - { - if(conditionElement.namespaceURI() == ns_stanza) - { - error.setConditionFromStr( conditionElement.tagName() ); - } - conditionElement = conditionElement.nextSiblingElement(); - } - - setError( error ); } QXmppRpcResponseIq::QXmppRpcResponseIq() : QXmppIq( QXmppIq::Result ) diff --git a/source/QXmppStanza.cpp b/source/QXmppStanza.cpp index 0e4813e6..298e5a69 100644 --- a/source/QXmppStanza.cpp +++ b/source/QXmppStanza.cpp @@ -98,7 +98,7 @@ QXmppStanza::Error::Type QXmppStanza::Error::getType() const QString QXmppStanza::Error::getTypeStr() const { - switch(getType()) + switch(m_type) { case Cancel: return "cancel"; @@ -117,7 +117,7 @@ QString QXmppStanza::Error::getTypeStr() const QString QXmppStanza::Error::getConditionStr() const { - switch(getCondition()) + switch(m_condition) { case BadRequest: return "bad-request"; @@ -234,6 +234,34 @@ void QXmppStanza::Error::setConditionFromStr(const QString& type) setCondition(static_cast<QXmppStanza::Error::Condition>(-1)); } +bool QXmppStanza::Error::isValid() +{ + return !(getTypeStr().isEmpty() && getConditionStr().isEmpty()); +} + +void QXmppStanza::Error::parse(const QDomElement &errorElement) +{ + setCode(errorElement.attribute("code").toInt()); + setTypeFromStr(errorElement.attribute("type")); + + QString text; + QString cond; + QDomElement element = errorElement.firstChildElement(); + while(!element.isNull()) + { + if(element.tagName() == "text") + text = element.text(); + else if(element.namespaceURI() == ns_stanza) + { + cond = element.tagName(); + } + element = element.nextSiblingElement(); + } + + setConditionFromStr(cond); + setText(text); +} + void QXmppStanza::Error::toXml( QXmlStreamWriter *writer ) const { QString cond = getConditionStr(); @@ -345,8 +373,7 @@ void QXmppStanza::generateAndSetNextId() bool QXmppStanza::isErrorStanza() { - return !(m_error.getTypeStr().isEmpty() && - m_error.getConditionStr().isEmpty()); + return m_error.isValid(); } void QXmppStanza::parse(const QDomElement &element) @@ -358,36 +385,7 @@ void QXmppStanza::parse(const QDomElement &element) QDomElement errorElement = element.firstChildElement("error"); if(!errorElement.isNull()) - m_error = parseError(errorElement); -} - -QXmppStanza::Error QXmppStanza::parseError(const QDomElement &errorElement) -{ - QXmppStanza::Error error; - - if(errorElement.isNull()) - return error; - - QString type = errorElement.attribute("type"); - QString text; - QString cond; - QDomElement element = errorElement.firstChildElement(); - while(!element.isNull()) - { - if(element.tagName() == "text") - text = element.text(); - else if(element.namespaceURI() == ns_stanza) - { - cond = element.tagName(); - } - element = element.nextSiblingElement(); - } - - error.setCode(errorElement.attribute("code").toInt()); - error.setConditionFromStr(cond); - error.setTypeFromStr(type); - error.setText(text); - return error; + m_error.parse(errorElement); } // deprecated diff --git a/source/QXmppStanza.h b/source/QXmppStanza.h index 38b5d1c6..8eb8dd7b 100644 --- a/source/QXmppStanza.h +++ b/source/QXmppStanza.h @@ -80,21 +80,37 @@ public: Error(Type type, Condition cond, const QString& text=""); Error(const QString& type, const QString& cond, const QString& text=""); + int code() const; void setCode(int code); + + QString text() const; void setText(const QString& text); + + Condition condition() const; void setCondition(Condition cond); - void setConditionFromStr(const QString& cond); + void setType(Type type); - void setTypeFromStr(const QString& type); - int getCode() const; - QString getText() const; - Condition getCondition() const; - Type getType() const; - void toXml( QXmlStreamWriter *writer ) const; + Type type() const; + + // FIXME : remove this once is gone + bool isValid(); + + void parse(const QDomElement &element); + void toXml(QXmlStreamWriter *writer) const; + + // deprecated accessors, use the form without "get" instead + int Q_DECL_DEPRECATED getCode() const; + QString Q_DECL_DEPRECATED getText() const; + Condition Q_DECL_DEPRECATED getCondition() const; + Type Q_DECL_DEPRECATED getType() const; + + private: QString getConditionStr() const; + void setConditionFromStr(const QString& cond); + QString getTypeStr() const; + void setTypeFromStr(const QString& type); - private: int m_code; Type m_type; Condition m_condition; @@ -135,7 +151,6 @@ public: protected: void generateAndSetNextId(); void parse(const QDomElement &element); - static QXmppStanza::Error parseError(const QDomElement&); private: static uint s_uniqeIdNo; |
