diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-01-17 13:40:46 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-01-17 13:40:46 +0000 |
| commit | 1c30859573de9ffee8df206b6f3c64323cf4446b (patch) | |
| tree | e2843858fe0ad8b52e716361ec6739144ec9f7df /src/QXmppJingleIq.cpp | |
| parent | 145a79519c760c2aa9eff15618c17c24ac3e25f0 (diff) | |
| download | qxmpp-1c30859573de9ffee8df206b6f3c64323cf4446b.tar.gz | |
cleanup jingle candidate type parsing/serialisation
Diffstat (limited to 'src/QXmppJingleIq.cpp')
| -rw-r--r-- | src/QXmppJingleIq.cpp | 55 |
1 files changed, 36 insertions, 19 deletions
diff --git a/src/QXmppJingleIq.cpp b/src/QXmppJingleIq.cpp index 4538c748..a27658a0 100644 --- a/src/QXmppJingleIq.cpp +++ b/src/QXmppJingleIq.cpp @@ -604,17 +604,7 @@ void QXmppJingleCandidate::parse(const QDomElement &element) m_port = element.attribute("port").toInt(); m_priority = element.attribute("priority").toInt(); m_protocol = element.attribute("protocol"); - const QString type = element.attribute("type"); - if (type == "host") - m_type = HostType; - else if (type == "prflx") - m_type = PeerReflexiveType; - else if (type == "srflx") - m_type = ServerReflexiveType; - else if (type == "relay") - m_type = RelayedType; - else - qWarning() << "Unknown candidate type" << type; + m_type = typeFromString(element.attribute("type")); } void QXmppJingleCandidate::toXml(QXmlStreamWriter *writer) const @@ -629,24 +619,51 @@ void QXmppJingleCandidate::toXml(QXmlStreamWriter *writer) const helperToXmlAddAttribute(writer, "port", QString::number(m_port)); helperToXmlAddAttribute(writer, "priority", QString::number(m_priority)); helperToXmlAddAttribute(writer, "protocol", m_protocol); - QString type; - switch (m_type) + helperToXmlAddAttribute(writer, "type", typeToString(m_type)); + writer->writeEndElement(); +} + +QXmppJingleCandidate::Type QXmppJingleCandidate::typeFromString(const QString &typeStr, bool *ok) +{ + QXmppJingleCandidate::Type type; + if (typeStr == "host") + type = HostType; + else if (typeStr == "prflx") + type = PeerReflexiveType; + else if (typeStr == "srflx") + type = ServerReflexiveType; + else if (typeStr == "relay") + type = RelayedType; + else { + qWarning() << "Unknown candidate type" << typeStr; + if (ok) + *ok = false; + return HostType; + } + if (ok) + *ok = true; + return type; +} + +QString QXmppJingleCandidate::typeToString(QXmppJingleCandidate::Type type) +{ + QString typeStr; + switch (type) { case HostType: - type = "host"; + typeStr = "host"; break; case PeerReflexiveType: - type = "prflx"; + typeStr = "prflx"; break; case ServerReflexiveType: - type = "srflx"; + typeStr = "srflx"; break; case RelayedType: - type = "relay"; + typeStr = "relay"; break; } - helperToXmlAddAttribute(writer, "type", type); - writer->writeEndElement(); + return typeStr; } QXmppJinglePayloadType::QXmppJinglePayloadType() |
