aboutsummaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-03-04 09:15:34 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-03-04 09:15:34 +0000
commit628112acd69f4bf794c4d417d2c3bced1712cba3 (patch)
tree05c03373ad3ca732cd4444a9d46f3f3c935f7f2b /source
parentc2a7a03e30d1d99e57172c94c106fdc842dfbf25 (diff)
downloadqxmpp-628112acd69f4bf794c4d417d2c3bced1712cba3.tar.gz
make error parsing private to QXmppStanza::Error
Diffstat (limited to 'source')
-rw-r--r--source/QXmppRemoteMethod.cpp4
-rw-r--r--source/QXmppRpcIq.cpp16
-rw-r--r--source/QXmppStanza.cpp66
-rw-r--r--source/QXmppStanza.h33
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;