summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Elements/CapsInfo.h')
-rw-r--r--Swiften/Elements/CapsInfo.h39
1 files changed, 33 insertions, 6 deletions
diff --git a/Swiften/Elements/CapsInfo.h b/Swiften/Elements/CapsInfo.h
index 6fde13b..0fce90c 100644
--- a/Swiften/Elements/CapsInfo.h
+++ b/Swiften/Elements/CapsInfo.h
@@ -4,20 +4,49 @@
* See Documentation/Licenses/GPLv3.txt for more information.
*/
-#ifndef SWIFTEN_CapsInfo_H
-#define SWIFTEN_CapsInfo_H
+#pragma once
#include "Swiften/Base/String.h"
+#include "Swiften/Base/Shared.h"
#include "Swiften/Elements/Payload.h"
namespace Swift {
- class CapsInfo : public Payload {
+ class CapsInfo : public Payload, public Shared<CapsInfo> {
public:
- CapsInfo(const String& node, const String& version, const String& hash = "sha-1") : node_(node), version_(version), hash_(hash) {}
+ CapsInfo(const String& node = "", const String& version = "", const String& hash = "sha-1") : node_(node), version_(version), hash_(hash) {}
+
+ bool operator==(const CapsInfo& o) const {
+ return o.node_ == node_ && o.version_ == version_ && o.hash_ == hash_;
+ }
+
+ bool operator<(const CapsInfo& o) const {
+ if (o.node_ == node_) {
+ if (o.version_ == version_) {
+ return hash_ < o.hash_;
+ }
+ else {
+ return version_ < o.version_;
+ }
+ }
+ else {
+ return node_ < o.node_;
+ }
+ }
const String& getNode() const { return node_; }
+ void setNode(const String& node) {
+ node_ = node;
+ }
+
const String& getVersion() const { return version_; }
+ void setVersion(const String& version) {
+ version_ = version;
+ }
+
const String& getHash() const { return hash_; }
+ void setHash(const String& hash) {
+ hash_ = hash;
+ }
private:
String node_;
@@ -25,5 +54,3 @@ namespace Swift {
String hash_;
};
}
-
-#endif