summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2012-05-07 17:20:10 (GMT)
committerRemko Tronçon <git@el-tramo.be>2012-05-07 17:20:10 (GMT)
commitad14f307e7b9647ac2ff96cd1947e709dd45f73d (patch)
tree0f9b23a0e9ca999cec0eaa3c8cdf3f15d01cb00e /Swiften/Elements
parent0dcd8ae902a7902a32b9e4bfbb1ec12a98d00ce4 (diff)
downloadswift-contrib-ad14f307e7b9647ac2ff96cd1947e709dd45f73d.zip
swift-contrib-ad14f307e7b9647ac2ff96cd1947e709dd45f73d.tar.bz2
Added convenience method for responding with a custom error payload.
Diffstat (limited to 'Swiften/Elements')
-rw-r--r--Swiften/Elements/IQ.cpp12
-rw-r--r--Swiften/Elements/IQ.h6
2 files changed, 12 insertions, 6 deletions
diff --git a/Swiften/Elements/IQ.cpp b/Swiften/Elements/IQ.cpp
index 8e6d7cc..8c0f692 100644
--- a/Swiften/Elements/IQ.cpp
+++ b/Swiften/Elements/IQ.cpp
@@ -44,20 +44,24 @@ boost::shared_ptr<IQ> IQ::createResult(const JID& to, const JID& from, const std
return iq;
}
-boost::shared_ptr<IQ> IQ::createError(const JID& to, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type) {
+boost::shared_ptr<IQ> IQ::createError(const JID& to, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type, boost::shared_ptr<Payload> payload) {
boost::shared_ptr<IQ> iq = boost::make_shared<IQ>(IQ::Error);
iq->setTo(to);
iq->setID(id);
- iq->addPayload(boost::make_shared<Swift::ErrorPayload>(condition, type));
+ boost::shared_ptr<ErrorPayload> errorPayload = boost::make_shared<Swift::ErrorPayload>(condition, type);
+ errorPayload->setPayload(payload);
+ iq->addPayload(errorPayload);
return iq;
}
-boost::shared_ptr<IQ> IQ::createError(const JID& to, const JID& from, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type) {
+boost::shared_ptr<IQ> IQ::createError(const JID& to, const JID& from, const std::string& id, ErrorPayload::Condition condition, ErrorPayload::Type type, boost::shared_ptr<Payload> payload) {
boost::shared_ptr<IQ> iq = boost::make_shared<IQ>(IQ::Error);
iq->setTo(to);
iq->setFrom(from);
iq->setID(id);
- iq->addPayload(boost::make_shared<Swift::ErrorPayload>(condition, type));
+ boost::shared_ptr<ErrorPayload> errorPayload = boost::make_shared<Swift::ErrorPayload>(condition, type);
+ errorPayload->setPayload(payload);
+ iq->addPayload(errorPayload);
return iq;
}
diff --git a/Swiften/Elements/IQ.h b/Swiften/Elements/IQ.h
index 05cd96a..99561f8 100644
--- a/Swiften/Elements/IQ.h
+++ b/Swiften/Elements/IQ.h
@@ -41,13 +41,15 @@ namespace Swift {
const JID& to,
const std::string& id,
ErrorPayload::Condition condition = ErrorPayload::BadRequest,
- ErrorPayload::Type type = ErrorPayload::Cancel);
+ ErrorPayload::Type type = ErrorPayload::Cancel,
+ boost::shared_ptr<Payload> payload = boost::shared_ptr<Payload>());
static boost::shared_ptr<IQ> createError(
const JID& to,
const JID& from,
const std::string& id,
ErrorPayload::Condition condition = ErrorPayload::BadRequest,
- ErrorPayload::Type type = ErrorPayload::Cancel);
+ ErrorPayload::Type type = ErrorPayload::Cancel,
+ boost::shared_ptr<Payload> payload = boost::shared_ptr<Payload>());
private:
Type type_;