diff options
author | Remko Tronçon <git@el-tramo.be> | 2012-05-07 17:20:10 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2012-05-07 17:20:10 (GMT) |
commit | ad14f307e7b9647ac2ff96cd1947e709dd45f73d (patch) | |
tree | 0f9b23a0e9ca999cec0eaa3c8cdf3f15d01cb00e /Swiften/Elements | |
parent | 0dcd8ae902a7902a32b9e4bfbb1ec12a98d00ce4 (diff) | |
download | swift-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.cpp | 12 | ||||
-rw-r--r-- | Swiften/Elements/IQ.h | 6 |
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_; |