diff options
Diffstat (limited to 'Swiften/Elements')
-rw-r--r-- | Swiften/Elements/Message.h | 14 | ||||
-rw-r--r-- | Swiften/Elements/Subject.h | 29 |
2 files changed, 42 insertions, 1 deletions
diff --git a/Swiften/Elements/Message.h b/Swiften/Elements/Message.h index b1fea56..f42aec6 100644 --- a/Swiften/Elements/Message.h +++ b/Swiften/Elements/Message.h @@ -10,6 +10,7 @@ #include "Swiften/Base/String.h" #include "Swiften/Elements/Body.h" +#include "Swiften/Elements/Subject.h" #include "Swiften/Elements/ErrorPayload.h" #include "Swiften/Elements/Stanza.h" @@ -22,6 +23,18 @@ namespace Swift Message() : type_(Chat) { } + String getSubject() const { + boost::shared_ptr<Subject> subject(getPayload<Subject>()); + if (subject) { + return subject->getText(); + } + return ""; + } + + void setSubject(const String& subject) { + updatePayload(boost::shared_ptr<Subject>(new Subject(subject))); + } + String getBody() const { boost::shared_ptr<Body> body(getPayload<Body>()); if (body) { @@ -43,7 +56,6 @@ namespace Swift void setType(Type type) { type_ = type; } private: - String body_; Type type_; }; } diff --git a/Swiften/Elements/Subject.h b/Swiften/Elements/Subject.h new file mode 100644 index 0000000..745ddb5 --- /dev/null +++ b/Swiften/Elements/Subject.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2010 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include "Swiften/Elements/Payload.h" +#include "Swiften/Base/String.h" + +namespace Swift { + class Subject : public Payload { + public: + Subject(const String& text = "") : text_(text) { + } + + void setText(const String& text) { + text_ = text; + } + + const String& getText() const { + return text_; + } + + private: + String text_; + }; +} |