diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-22 19:28:48 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-22 21:40:20 (GMT) |
commit | 15103cc6eb3dd62c0e84c68bb08995247c653094 (patch) | |
tree | 2948d38f076874c10dbb029c8ad1328b9afdffd3 /Swiften/LinkLocal/LinkLocalServiceID.h | |
parent | c4660f404c9a0dbf1c00a20baacfc738d93eaff5 (diff) | |
download | swift-contrib-15103cc6eb3dd62c0e84c68bb08995247c653094.zip swift-contrib-15103cc6eb3dd62c0e84c68bb08995247c653094.tar.bz2 |
Introduce LinkLocalServiceID to identify Link-Local services.
Diffstat (limited to 'Swiften/LinkLocal/LinkLocalServiceID.h')
-rw-r--r-- | Swiften/LinkLocal/LinkLocalServiceID.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Swiften/LinkLocal/LinkLocalServiceID.h b/Swiften/LinkLocal/LinkLocalServiceID.h new file mode 100644 index 0000000..72615d4 --- /dev/null +++ b/Swiften/LinkLocal/LinkLocalServiceID.h @@ -0,0 +1,64 @@ +#pragma once + +#include "Swiften/Base/String.h" + +namespace Swift { + class LinkLocalServiceID { + public: + LinkLocalServiceID( + const String& name, + const String& type, + const String& domain, + int networkInterface = 0) : + name(name), + type(type), + domain(domain), + networkInterface(networkInterface) { + } + + bool operator==(const LinkLocalServiceID& o) const { + return name == o.name && type == o.type && domain == o.domain && (networkInterface != 0 && o.networkInterface != 0 ? networkInterface == o.networkInterface : true); + } + + bool operator<(const LinkLocalServiceID& o) const { + if (o.name == name) { + if (o.type == type) { + if (o.domain == domain) { + return networkInterface < o.networkInterface; + } + else { + return domain < o.domain; + } + } + else { + return type < o.type; + } + } + else { + return o.name < name; + } + } + + const String& getName() const { + return name; + } + + const String& getType() const { + return type; + } + + const String& getDomain() const { + return domain; + } + + int getNetworkInterfaceID() const { + return networkInterface; + } + + private: + String name; + String type; + String domain; + int networkInterface; + }; +} |