summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/Controllers/XMPPEvents/MessageEvent.h')
-rw-r--r--Swift/Controllers/XMPPEvents/MessageEvent.h77
1 files changed, 49 insertions, 28 deletions
diff --git a/Swift/Controllers/XMPPEvents/MessageEvent.h b/Swift/Controllers/XMPPEvents/MessageEvent.h
index a9214f5..12f4c48 100644
--- a/Swift/Controllers/XMPPEvents/MessageEvent.h
+++ b/Swift/Controllers/XMPPEvents/MessageEvent.h
@@ -1,46 +1,67 @@
/*
- * Copyright (c) 2010-2012 Kevin Smith
- * Licensed under the GNU General Public License v3.
- * See Documentation/Licenses/GPLv3.txt for more information.
+ * Copyright (c) 2010-2017 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
*/
-#pragma once
+#pragma once
+
#include <cassert>
+#include <memory>
-#include <boost/shared_ptr.hpp>
+#include <Swiften/Elements/Message.h>
#include <Swift/Controllers/XMPPEvents/StanzaEvent.h>
-#include <Swiften/Elements/Message.h>
namespace Swift {
- class MessageEvent : public StanzaEvent {
- public:
- typedef boost::shared_ptr<MessageEvent> ref;
+ class MessageEvent : public StanzaEvent {
+ public:
+ class SystemNotification {
+ public:
+ SystemNotification(const std::string& title, const std::string& message) : title(title), message(message) {
+ }
+
+ public:
+ std::string title;
+ std::string message;
+ };
+
+ public:
+ typedef std::shared_ptr<MessageEvent> ref;
+
+ MessageEvent(std::shared_ptr<Message> stanza) : stanza_(stanza), targetsMe_(true) {}
+
+ std::shared_ptr<Message> getStanza() {return stanza_;}
- MessageEvent(boost::shared_ptr<Message> stanza) : stanza_(stanza), targetsMe_(true) {}
+ bool isReadable() {
+ return getStanza()->isError() || !getStanza()->getBody().get_value_or("").empty();
+ }
- boost::shared_ptr<Message> getStanza() {return stanza_;}
+ void addNotification(const std::string& title, const std::string& message) {
+ systemNotifications_.push_back(SystemNotification(title, message));
+ }
- bool isReadable() {
- return getStanza()->isError() || !getStanza()->getBody().empty();
- }
+ const std::vector<SystemNotification>& getNotifications() const {
+ return systemNotifications_;
+ }
- void read() {
- assert (isReadable());
- conclude();
- }
+ void read() {
+ assert (isReadable());
+ conclude();
+ }
- void setTargetsMe(bool targetsMe) {
- targetsMe_ = targetsMe;
- }
+ void setTargetsMe(bool targetsMe) {
+ targetsMe_ = targetsMe;
+ }
- bool targetsMe() const {
- return targetsMe_;
- }
+ bool targetsMe() const {
+ return targetsMe_;
+ }
- private:
- boost::shared_ptr<Message> stanza_;
- bool targetsMe_;
- };
+ private:
+ std::shared_ptr<Message> stanza_;
+ std::vector<SystemNotification> systemNotifications_;
+ bool targetsMe_;
+ };
}