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/DNSSDService.h | |
parent | c4660f404c9a0dbf1c00a20baacfc738d93eaff5 (diff) | |
download | swift-15103cc6eb3dd62c0e84c68bb08995247c653094.zip swift-15103cc6eb3dd62c0e84c68bb08995247c653094.tar.bz2 |
Introduce LinkLocalServiceID to identify Link-Local services.
Diffstat (limited to 'Swiften/LinkLocal/DNSSDService.h')
-rw-r--r-- | Swiften/LinkLocal/DNSSDService.h | 43 |
1 files changed, 7 insertions, 36 deletions
diff --git a/Swiften/LinkLocal/DNSSDService.h b/Swiften/LinkLocal/DNSSDService.h index 9689352..4cf1a6e 100644 --- a/Swiften/LinkLocal/DNSSDService.h +++ b/Swiften/LinkLocal/DNSSDService.h @@ -4,6 +4,7 @@ #include <map> #include "Swiften/Base/String.h" +#include "Swiften/LinkLocal/LinkLocalServiceID.h" #include "Swiften/LinkLocal/LinkLocalServiceInfo.h" namespace Swift { @@ -12,36 +13,6 @@ namespace Swift { class DNSSDService { public: - struct Service { - Service(const String& name, const String& type, const String& domain, int networkInterface) : name(name), type(type), domain(domain), networkInterface(networkInterface) {} - bool operator==(const Service& o) const { - return name == o.name && type == o.type && domain == o.domain && (networkInterface != 0 && o.networkInterface != 0 ? networkInterface == o.networkInterface : true); - } - bool operator<(const Service& 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; - } - } - - String name; - String type; - String domain; - int networkInterface; - }; - struct ResolveResult { ResolveResult(const String& host, int port, const LinkLocalServiceInfo& info) : host(host), port(port), info(info) {} String host; @@ -58,17 +29,17 @@ namespace Swift { virtual void updateService(const LinkLocalServiceInfo&) = 0; virtual void unregisterService() = 0; - virtual void startResolvingService(const Service&) = 0; - virtual void stopResolvingService(const Service&) = 0; + virtual void startResolvingService(const LinkLocalServiceID&) = 0; + virtual void stopResolvingService(const LinkLocalServiceID&) = 0; virtual void resolveHostname(const String& hostname, int interfaceIndex = 0) = 0; boost::signal<void ()> onStarted; boost::signal<void (bool)> onStopped; - boost::signal<void (const Service&)> onServiceAdded; - boost::signal<void (const Service&)> onServiceRemoved; - boost::signal<void (const Service&)> onServiceRegistered; - boost::signal<void (const Service&, const ResolveResult&)> onServiceResolved; + boost::signal<void (const LinkLocalServiceID&)> onServiceAdded; + boost::signal<void (const LinkLocalServiceID&)> onServiceRemoved; + boost::signal<void (const LinkLocalServiceID&)> onServiceRegistered; + boost::signal<void (const LinkLocalServiceID&, const ResolveResult&)> onServiceResolved; boost::signal<void (const String&, const boost::optional<HostAddress>&)> onHostnameResolved; }; } |