blob: 9b34bb592a7ccaa57647aedfed2e9bf86d746a66 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
/*
* Copyright (C) 2008-2012 The QXmpp developers
*
* Author:
* Jeremy Lainé
*
* Source:
* http://code.google.com/p/qxmpp
*
* This file is a part of QXmpp library.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
*/
#include <QDomElement>
#include "QXmppConstants.h"
#include "QXmppStreamInitiationIq.h"
#include "QXmppUtils.h"
QString QXmppStreamInitiationIq::mimeType() const
{
return m_mimeType;
}
void QXmppStreamInitiationIq::setMimeType(const QString &mimeType)
{
m_mimeType = mimeType;
}
QXmppStreamInitiationIq::Profile QXmppStreamInitiationIq::profile() const
{
return m_profile;
}
void QXmppStreamInitiationIq::setProfile(QXmppStreamInitiationIq::Profile profile)
{
m_profile = profile;
}
QXmppElementList QXmppStreamInitiationIq::siItems() const
{
return m_siItems;
}
QString QXmppStreamInitiationIq::siId() const
{
return m_siId;
}
void QXmppStreamInitiationIq::setSiId(const QString &id)
{
m_siId = id;
}
void QXmppStreamInitiationIq::setSiItems(const QXmppElementList &items)
{
m_siItems = items;
}
/// \cond
bool QXmppStreamInitiationIq::isStreamInitiationIq(const QDomElement &element)
{
QDomElement siElement = element.firstChildElement("si");
return (siElement.namespaceURI() == ns_stream_initiation);
}
void QXmppStreamInitiationIq::parseElementFromChild(const QDomElement &element)
{
QDomElement siElement = element.firstChildElement("si");
m_siId = siElement.attribute("id");
m_mimeType = siElement.attribute("mime-type");
if (siElement.attribute("profile") == ns_stream_initiation_file_transfer)
m_profile = FileTransfer;
else
m_profile = None;
QDomElement itemElement = siElement.firstChildElement();
while (!itemElement.isNull())
{
m_siItems.append(QXmppElement(itemElement));
itemElement = itemElement.nextSiblingElement();
}
}
void QXmppStreamInitiationIq::toXmlElementFromChild(QXmlStreamWriter *writer) const
{
writer->writeStartElement("si");
writer->writeAttribute("xmlns", ns_stream_initiation);
helperToXmlAddAttribute(writer, "id", m_siId);
helperToXmlAddAttribute(writer, "mime-type", m_mimeType);
if (m_profile == FileTransfer)
helperToXmlAddAttribute(writer, "profile", ns_stream_initiation_file_transfer);
foreach (const QXmppElement &item, m_siItems)
item.toXml(writer);
writer->writeEndElement();
}
/// \endcond
|