diff options
| -rw-r--r-- | Swiften/Elements/Stanza.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Swiften/Elements/Stanza.h b/Swiften/Elements/Stanza.h index f1c9e00..e83f522 100644 --- a/Swiften/Elements/Stanza.h +++ b/Swiften/Elements/Stanza.h @@ -1,61 +1,64 @@ /* * Copyright (c) 2010 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include <vector> #include <string> #include <boost/shared_ptr.hpp> #include <boost/optional/optional_fwd.hpp> #include <boost/date_time/posix_time/ptime.hpp> #include <Swiften/Base/API.h> #include <Swiften/Elements/Element.h> #include <Swiften/JID/JID.h> namespace Swift { class Payload; class SWIFTEN_API Stanza : public Element { public: typedef boost::shared_ptr<Stanza> ref; + protected: Stanza(); + + public: virtual ~Stanza(); SWIFTEN_DEFAULT_COPY_CONSTRUCTOR(Stanza) template<typename T> boost::shared_ptr<T> getPayload() const { for (size_t i = 0; i < payloads_.size(); ++i) { boost::shared_ptr<T> result(boost::dynamic_pointer_cast<T>(payloads_[i])); if (result) { return result; } } return boost::shared_ptr<T>(); } template<typename T> std::vector< boost::shared_ptr<T> > getPayloads() const { std::vector< boost::shared_ptr<T> > results; for (size_t i = 0; i < payloads_.size(); ++i) { boost::shared_ptr<T> result(boost::dynamic_pointer_cast<T>(payloads_[i])); if (result) { results.push_back(result); } } return results; } const std::vector< boost::shared_ptr<Payload> >& getPayloads() const { return payloads_; } void addPayload(boost::shared_ptr<Payload> payload) { payloads_.push_back(payload); } |
Swift