summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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
@@ -1,43 +1,44 @@
/*
* Copyright (c) 2010-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swiften/Elements/DiscoInfo.h>
#include <algorithm>
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");
const std::string DiscoInfo::CommandsFeature = std::string("http://jabber.org/protocol/commands");
const std::string DiscoInfo::MessageCorrectionFeature = std::string("urn:xmpp:message-correct:0");
const std::string DiscoInfo::JingleFeature = std::string("urn:xmpp:jingle:1");
const std::string DiscoInfo::JingleFTFeature = std::string("urn:xmpp:jingle:apps:file-transfer:4");
const std::string DiscoInfo::JingleTransportsIBBFeature = std::string("urn:xmpp:jingle:transports:ibb:1");
const std::string DiscoInfo::JingleTransportsS5BFeature = std::string("urn:xmpp:jingle:transports:s5b:1");
const std::string DiscoInfo::Bytestream = std::string("http://jabber.org/protocol/bytestreams");
const std::string DiscoInfo::MessageDeliveryReceiptsFeature = std::string("urn:xmpp:receipts");
const std::string DiscoInfo::WhiteboardFeature = std::string("http://swift.im/whiteboard");
const std::string DiscoInfo::BlockingCommandFeature = std::string("urn:xmpp:blocking");
const std::string DiscoInfo::MessageCarbonsFeature = std::string("urn:xmpp:carbons:2");
bool DiscoInfo::Identity::operator<(const Identity& other) const {
if (category_ == other.category_) {
if (type_ == other.type_) {
if (lang_ == other.lang_) {
return name_ < other.name_;
}
else {
return lang_ < other.lang_;
}
}
else {
return type_ < other.type_;
}
}
else {
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
@@ -1,54 +1,55 @@
/*
* Copyright (c) 2010-2016 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#pragma once
#include <string>
#include <vector>
#include <Swiften/Base/API.h>
#include <Swiften/Elements/Form.h>
#include <Swiften/Elements/Payload.h>
namespace Swift {
/**
* disco#info from XEP-0030
*/
class SWIFTEN_API DiscoInfo : public Payload {
public:
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;
static const std::string CommandsFeature;
static const std::string MessageCorrectionFeature;
static const std::string JingleFeature;
static const std::string JingleFTFeature;
static const std::string JingleTransportsIBBFeature;
static const std::string JingleTransportsS5BFeature;
static const std::string Bytestream;
static const std::string MessageDeliveryReceiptsFeature;
static const std::string WhiteboardFeature;
static const std::string BlockingCommandFeature;
static const std::string MessageCarbonsFeature;
class Identity {
public:
Identity(const std::string& name, const std::string& category = "client", const std::string& type = "pc", const std::string& lang = "") : name_(name), category_(category), type_(type), lang_(lang) {
}
const std::string& getCategory() const {
return category_;
}
const std::string& getType() const {
return type_;
}
const std::string& getLanguage() const {
return lang_;