summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-22 19:28:48 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-22 21:40:20 (GMT)
commit15103cc6eb3dd62c0e84c68bb08995247c653094 (patch)
tree2948d38f076874c10dbb029c8ad1328b9afdffd3 /Swiften/LinkLocal/LinkLocalServiceID.h
parentc4660f404c9a0dbf1c00a20baacfc738d93eaff5 (diff)
downloadswift-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.h64
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;
+ };
+}