summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Elements')
-rw-r--r--Swiften/Elements/IQ.cpp23
-rw-r--r--Swiften/Elements/IQ.h11
2 files changed, 32 insertions, 2 deletions
diff --git a/Swiften/Elements/IQ.cpp b/Swiften/Elements/IQ.cpp
index 9df6ef4..abf32e9 100644
--- a/Swiften/Elements/IQ.cpp
+++ b/Swiften/Elements/IQ.cpp
@@ -21,8 +21,7 @@ boost::shared_ptr<IQ> IQ::createRequest(
return iq;
}
-boost::shared_ptr<IQ> IQ::createResult(
- const JID& to, const String& id, boost::shared_ptr<Payload> payload) {
+boost::shared_ptr<IQ> IQ::createResult(const JID& to, const String& id, boost::shared_ptr<Payload> payload) {
boost::shared_ptr<IQ> iq(new IQ(Result));
iq->setTo(to);
iq->setID(id);
@@ -32,6 +31,17 @@ boost::shared_ptr<IQ> IQ::createResult(
return iq;
}
+boost::shared_ptr<IQ> IQ::createResult(const JID& to, const JID& from, const String& id, boost::shared_ptr<Payload> payload) {
+ boost::shared_ptr<IQ> iq(new IQ(Result));
+ iq->setTo(to);
+ iq->setFrom(from);
+ iq->setID(id);
+ if (payload) {
+ iq->addPayload(payload);
+ }
+ return iq;
+}
+
boost::shared_ptr<IQ> IQ::createError(const JID& to, const String& id, ErrorPayload::Condition condition, ErrorPayload::Type type) {
boost::shared_ptr<IQ> iq(new IQ(IQ::Error));
iq->setTo(to);
@@ -40,4 +50,13 @@ boost::shared_ptr<IQ> IQ::createError(const JID& to, const String& id, ErrorPayl
return iq;
}
+boost::shared_ptr<IQ> IQ::createError(const JID& to, const JID& from, const String& id, ErrorPayload::Condition condition, ErrorPayload::Type type) {
+ boost::shared_ptr<IQ> iq(new IQ(IQ::Error));
+ iq->setTo(to);
+ iq->setFrom(from);
+ iq->setID(id);
+ iq->addPayload(boost::shared_ptr<Swift::ErrorPayload>(new Swift::ErrorPayload(condition, type)));
+ return iq;
+}
+
}
diff --git a/Swiften/Elements/IQ.h b/Swiften/Elements/IQ.h
index e15de24..007dda2 100644
--- a/Swiften/Elements/IQ.h
+++ b/Swiften/Elements/IQ.h
@@ -32,8 +32,19 @@ namespace Swift {
const JID& to,
const String& id,
boost::shared_ptr<Payload> payload = boost::shared_ptr<Payload>());
+ static boost::shared_ptr<IQ> createResult(
+ const JID& to,
+ const JID& from,
+ const String& id,
+ boost::shared_ptr<Payload> payload = boost::shared_ptr<Payload>());
+ static boost::shared_ptr<IQ> createError(
+ const JID& to,
+ const String& id,
+ ErrorPayload::Condition condition = ErrorPayload::BadRequest,
+ ErrorPayload::Type type = ErrorPayload::Cancel);
static boost::shared_ptr<IQ> createError(
const JID& to,
+ const JID& from,
const String& id,
ErrorPayload::Condition condition = ErrorPayload::BadRequest,
ErrorPayload::Type type = ErrorPayload::Cancel);