diff options
Diffstat (limited to 'Swiften/Elements/CapsInfo.h')
-rw-r--r-- | Swiften/Elements/CapsInfo.h | 39 |
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 |