summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTarun Gupta <tarun1995gupta@gmail.com>2017-03-22 09:18:20 (GMT)
committerTobias Markmann <tm@ayena.de>2017-03-23 21:07:53 (GMT)
commitcc873b3f00db4cd0a778bc2ec04f8748d70a92f9 (patch)
tree818b12d322fae76631668d8b64de082c6e20163e /Swiften/Elements
parent9bc6492fa3da165e0e3b9bb09b8f913d02275d11 (diff)
downloadswift-cc873b3f00db4cd0a778bc2ec04f8748d70a92f9.zip
swift-cc873b3f00db4cd0a778bc2ec04f8748d70a92f9.tar.bz2
Add Client State Indication Element, its Parser and Serializer
License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details. Test-Information: Adds tests for Client State Parser and Serializer, which passes. Tests performed on Ubuntu 16.04 LTS. Change-Id: I60c63f63e1c0fdd55600ef42faa95989ca5ab75b
Diffstat (limited to 'Swiften/Elements')
-rw-r--r--Swiften/Elements/ClientState.h31
-rw-r--r--Swiften/Elements/DiscoInfo.cpp1
-rw-r--r--Swiften/Elements/DiscoInfo.h1
3 files changed, 33 insertions, 0 deletions
diff --git a/Swiften/Elements/ClientState.h b/Swiften/Elements/ClientState.h
new file mode 100644
index 0000000..868d352
--- /dev/null
+++ b/Swiften/Elements/ClientState.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017 Tarun Gupta.
+ * Licensed under the simplified BSD license.
+ * See Documentation/Licenses/BSD-simplified.txt for more information.
+ */
+
+#pragma once
+
+#include <string>
+
+#include <Swiften/Base/API.h>
+#include <Swiften/Elements/Payload.h>
+
+namespace Swift {
+ class SWIFTEN_API ClientState : public Payload {
+ public:
+ typedef std::shared_ptr<ClientState> ref;
+
+ public:
+ enum class ClientStateType {Active, Inactive};
+ ClientState(ClientStateType state = ClientStateType::Active) : state_(state) {
+
+ }
+
+ ClientStateType getClientState() const { return state_; }
+ void setClientState(ClientStateType state) {state_ = state;}
+
+ private:
+ ClientStateType state_;
+ };
+}
diff --git a/Swiften/Elements/DiscoInfo.cpp b/Swiften/Elements/DiscoInfo.cpp
index 51a4450..11f0623 100644
--- a/Swiften/Elements/DiscoInfo.cpp
+++ b/Swiften/Elements/DiscoInfo.cpp
@@ -11,6 +11,7 @@
namespace Swift {
const std::string DiscoInfo::ChatStatesFeature = std::string("http://jabber.org/protocol/chatstates");
+const std::string DiscoInfo::ClientStatesFeature = std::string("urn:xmpp:csi:0");
const std::string DiscoInfo::SecurityLabelsFeature = std::string("urn:xmpp:sec-label:0");
const std::string DiscoInfo::SecurityLabelsCatalogFeature = std::string("urn:xmpp:sec-label:catalog:2");
const std::string DiscoInfo::JabberSearchFeature = std::string("jabber:iq:search");
diff --git a/Swiften/Elements/DiscoInfo.h b/Swiften/Elements/DiscoInfo.h
index ebc598c..c8009ee 100644
--- a/Swiften/Elements/DiscoInfo.h
+++ b/Swiften/Elements/DiscoInfo.h
@@ -22,6 +22,7 @@ namespace Swift {
typedef std::shared_ptr<DiscoInfo> ref;
static const std::string ChatStatesFeature;
+ static const std::string ClientStatesFeature;
static const std::string SecurityLabelsFeature;
static const std::string SecurityLabelsCatalogFeature;
static const std::string JabberSearchFeature;