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/DNSSDService.h
parentc4660f404c9a0dbf1c00a20baacfc738d93eaff5 (diff)
downloadswift-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.h43
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;
};
}