From 9f51e6c6279ae7fb541774ac4bf9debfa61395c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Sat, 25 Jul 2009 19:32:55 +0200 Subject: Move LinkLocalServiceID->DNSSDServiceID. diff --git a/Swiften/LinkLocal/AppleDNSSDService.cpp b/Swiften/LinkLocal/AppleDNSSDService.cpp index bf66e50..a052eb1 100644 --- a/Swiften/LinkLocal/AppleDNSSDService.cpp +++ b/Swiften/LinkLocal/AppleDNSSDService.cpp @@ -70,7 +70,7 @@ void AppleDNSSDService::unregisterService() { registerSDRef = NULL; } -void AppleDNSSDService::startResolvingService(const LinkLocalServiceID& service) { +void AppleDNSSDService::startResolvingService(const DNSSDServiceID& service) { boost::lock_guard lock(sdRefsMutex); DNSServiceRef resolveSDRef; @@ -87,7 +87,7 @@ void AppleDNSSDService::startResolvingService(const LinkLocalServiceID& service) interruptSelect(); } -void AppleDNSSDService::stopResolvingService(const LinkLocalServiceID& service) { +void AppleDNSSDService::stopResolvingService(const DNSSDServiceID& service) { boost::lock_guard lock(sdRefsMutex); ServiceSDRefMap::iterator i = resolveSDRefs.find(service); @@ -238,7 +238,7 @@ void AppleDNSSDService::handleServiceDiscovered(DNSServiceRef, DNSServiceFlags f return; } else { - LinkLocalServiceID service(serviceName, regtype, replyDomain, interfaceIndex); + DNSSDServiceID service(serviceName, regtype, replyDomain, interfaceIndex); if (flags & kDNSServiceFlagsAdd) { MainEventLoop::postEvent(boost::bind(boost::ref(onServiceAdded), service), shared_from_this()); } @@ -258,7 +258,7 @@ void AppleDNSSDService::handleServiceRegistered(DNSServiceRef, DNSServiceFlags, haveError = true; } else { - MainEventLoop::postEvent(boost::bind(boost::ref(onServiceRegistered), LinkLocalServiceID(name, regtype, domain, 0)), shared_from_this()); + MainEventLoop::postEvent(boost::bind(boost::ref(onServiceRegistered), DNSSDServiceID(name, regtype, domain, 0)), shared_from_this()); } } diff --git a/Swiften/LinkLocal/AppleDNSSDService.h b/Swiften/LinkLocal/AppleDNSSDService.h index 7fdfd3e..554a154 100644 --- a/Swiften/LinkLocal/AppleDNSSDService.h +++ b/Swiften/LinkLocal/AppleDNSSDService.h @@ -6,7 +6,7 @@ #include #include "Swiften/LinkLocal/DNSSDService.h" -#include "Swiften/LinkLocal/LinkLocalServiceID.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" #include "Swiften/EventLoop/EventOwner.h" namespace Swift { @@ -22,8 +22,8 @@ namespace Swift { virtual void updateService(const LinkLocalServiceInfo&); virtual void unregisterService(); - virtual void startResolvingService(const LinkLocalServiceID&); - virtual void stopResolvingService(const LinkLocalServiceID&); + virtual void startResolvingService(const DNSSDServiceID&); + virtual void stopResolvingService(const DNSSDServiceID&); virtual void resolveHostname(const String& hostname, int interfaceIndex = 0); @@ -49,7 +49,7 @@ namespace Swift { boost::mutex sdRefsMutex; DNSServiceRef browseSDRef; DNSServiceRef registerSDRef; - typedef std::map ServiceSDRefMap; + typedef std::map ServiceSDRefMap; ServiceSDRefMap resolveSDRefs; typedef std::vector HostnameSDRefs; HostnameSDRefs hostnameResolveSDRefs; diff --git a/Swiften/LinkLocal/AvahiDNSSDService.cpp b/Swiften/LinkLocal/AvahiDNSSDService.cpp index fe9ac83..5f6295f 100644 --- a/Swiften/LinkLocal/AvahiDNSSDService.cpp +++ b/Swiften/LinkLocal/AvahiDNSSDService.cpp @@ -62,7 +62,7 @@ void AvahiDNSSDService::unregisterService() { avahi_threaded_poll_unlock(threadedPoll); } -void AvahiDNSSDService::startResolvingService(const LinkLocalServiceID& service) { +void AvahiDNSSDService::startResolvingService(const DNSSDServiceID& service) { avahi_threaded_poll_lock(threadedPoll); AvahiServiceResolver* resolver = avahi_service_resolver_new( @@ -82,7 +82,7 @@ void AvahiDNSSDService::startResolvingService(const LinkLocalServiceID& service) avahi_threaded_poll_unlock(threadedPoll); } -void AvahiDNSSDService::stopResolvingService(const LinkLocalServiceID& service) { +void AvahiDNSSDService::stopResolvingService(const DNSSDServiceID& service) { avahi_threaded_poll_lock(threadedPoll); ServiceResolverMap::iterator i = serviceResolvers.find(service); @@ -112,13 +112,13 @@ void AvahiDNSSDService::handleServiceDiscovered(AvahiServiceBrowser *, AvahiIfIn return; case AVAHI_BROWSER_NEW: { std::cerr << "Service added: " << name << " " << type << " " << domain << std::endl; - LinkLocalServiceID service(name, type, domain, interfaceIndex); + DNSSDServiceID service(name, type, domain, interfaceIndex); MainEventLoop::postEvent(boost::bind(boost::ref(onServiceAdded), service), shared_from_this()); } break; case AVAHI_BROWSER_REMOVE: { std::cerr << "Service removed: " << name << " " << type << " " << domain << std::endl; - LinkLocalServiceID service(name, type, domain, interfaceIndex); + DNSSDServiceID service(name, type, domain, interfaceIndex); MainEventLoop::postEvent(boost::bind(boost::ref(onServiceRemoved), service), shared_from_this()); } break; @@ -146,7 +146,7 @@ void AvahiDNSSDService::handleServiceResolved(AvahiServiceResolver *, AvahiIfInd HostAddress hostAddress(reinterpret_cast(&address->data.ipv4.address), 4); hostnameAddresses[String(hostname)] = hostAddress; MainEventLoop::postEvent(boost::bind(boost::ref(onServiceResolved), - LinkLocalServiceID(name, type, domain, interfaceIndex), + DNSSDServiceID(name, type, domain, interfaceIndex), ResolveResult(hostname, port, LinkLocalServiceInfo::createFromTXTRecord(data))), shared_from_this()); diff --git a/Swiften/LinkLocal/AvahiDNSSDService.h b/Swiften/LinkLocal/AvahiDNSSDService.h index 99a1d23..7162ade 100644 --- a/Swiften/LinkLocal/AvahiDNSSDService.h +++ b/Swiften/LinkLocal/AvahiDNSSDService.h @@ -26,8 +26,8 @@ namespace Swift { virtual void updateService(const LinkLocalServiceInfo&); virtual void unregisterService(); - virtual void startResolvingService(const LinkLocalServiceID&); - virtual void stopResolvingService(const LinkLocalServiceID&); + virtual void startResolvingService(const DNSSDServiceID&); + virtual void stopResolvingService(const DNSSDServiceID&); virtual void resolveHostname(const String& hostname, int interfaceIndex = 0); @@ -47,7 +47,7 @@ namespace Swift { AvahiClient* client; AvahiThreadedPoll* threadedPoll; AvahiServiceBrowser* serviceBrowser; - typedef std::map ServiceResolverMap; + typedef std::map ServiceResolverMap; ServiceResolverMap serviceResolvers; typedef std::map HostnameAddressMap; HostnameAddressMap hostnameAddresses; diff --git a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourBrowseQuery.h b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourBrowseQuery.h index edff064..62d8606 100644 --- a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourBrowseQuery.h +++ b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourBrowseQuery.h @@ -38,7 +38,7 @@ namespace Swift { return; } else { - LinkLocalServiceID service(name, type, domain, interfaceIndex); + DNSSDServiceID service(name, type, domain, interfaceIndex); if (flags & kDNSServiceFlagsAdd) { MainEventLoop::postEvent(boost::bind(boost::ref(onServiceAdded), service), shared_from_this()); } diff --git a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.cpp b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.cpp index 064e3c5..c065d4d 100644 --- a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.cpp +++ b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.cpp @@ -33,7 +33,7 @@ boost::shared_ptr BonjourQuerier::createRegisterQuery(const return boost::shared_ptr(new BonjourRegisterQuery(name, port, info, shared_from_this())); } -boost::shared_ptr BonjourQuerier::createResolveServiceQuery(const LinkLocalServiceID& service) { +boost::shared_ptr BonjourQuerier::createResolveServiceQuery(const DNSSDServiceID& service) { return boost::shared_ptr(new BonjourResolveServiceQuery(service, shared_from_this())); } diff --git a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.h b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.h index 79f9a81..644a8d9 100644 --- a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.h +++ b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourQuerier.h @@ -23,7 +23,7 @@ namespace Swift { boost::shared_ptr createRegisterQuery( const String& name, int port, const LinkLocalServiceInfo& info); boost::shared_ptr createResolveServiceQuery( - const LinkLocalServiceID&); + const DNSSDServiceID&); boost::shared_ptr createResolveHostnameQuery( const String& hostname, int interfaceIndex); diff --git a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourRegisterQuery.h b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourRegisterQuery.h index 31e86fc..9c4db13 100644 --- a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourRegisterQuery.h +++ b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourRegisterQuery.h @@ -40,10 +40,10 @@ namespace Swift { void handleServiceRegistered(DNSServiceErrorType errorCode, const char *name, const char *regtype, const char *domain) { if (errorCode != kDNSServiceErr_NoError) { - MainEventLoop::postEvent(boost::bind(boost::ref(onRegisterFinished), boost::optional()), shared_from_this()); + MainEventLoop::postEvent(boost::bind(boost::ref(onRegisterFinished), boost::optional()), shared_from_this()); } else { - MainEventLoop::postEvent(boost::bind(boost::ref(onRegisterFinished), boost::optional(LinkLocalServiceID(name, regtype, domain, 0))), shared_from_this()); + MainEventLoop::postEvent(boost::bind(boost::ref(onRegisterFinished), boost::optional(DNSSDServiceID(name, regtype, domain, 0))), shared_from_this()); } } }; diff --git a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourResolveServiceQuery.h b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourResolveServiceQuery.h index 1afdf5a..1ebd487 100644 --- a/Swiften/LinkLocal/DNSSD/Bonjour/BonjourResolveServiceQuery.h +++ b/Swiften/LinkLocal/DNSSD/Bonjour/BonjourResolveServiceQuery.h @@ -11,7 +11,7 @@ namespace Swift { class BonjourResolveServiceQuery : public DNSSDResolveServiceQuery, public BonjourQuery { public: - BonjourResolveServiceQuery(const LinkLocalServiceID& service, boost::shared_ptr querier) : BonjourQuery(querier) { + BonjourResolveServiceQuery(const DNSSDServiceID& service, boost::shared_ptr querier) : BonjourQuery(querier) { DNSServiceErrorType result = DNSServiceResolve( &sdRef, 0, service.getNetworkInterfaceID(), service.getName().getUTF8Data(), service.getType().getUTF8Data(), diff --git a/Swiften/LinkLocal/DNSSD/DNSSDBrowseQuery.h b/Swiften/LinkLocal/DNSSD/DNSSDBrowseQuery.h index e548ca5..86967ed 100644 --- a/Swiften/LinkLocal/DNSSD/DNSSDBrowseQuery.h +++ b/Swiften/LinkLocal/DNSSD/DNSSDBrowseQuery.h @@ -2,7 +2,7 @@ #include -#include "Swiften/LinkLocal/LinkLocalServiceID.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" namespace Swift { class DNSSDBrowseQuery { @@ -12,7 +12,7 @@ namespace Swift { virtual void startBrowsing() = 0; virtual void stopBrowsing() = 0; - boost::signal onServiceAdded; - boost::signal onServiceRemoved; + boost::signal onServiceAdded; + boost::signal onServiceRemoved; }; } diff --git a/Swiften/LinkLocal/DNSSD/DNSSDQuerier.h b/Swiften/LinkLocal/DNSSD/DNSSDQuerier.h index 528a6ea..6c7b576 100644 --- a/Swiften/LinkLocal/DNSSD/DNSSDQuerier.h +++ b/Swiften/LinkLocal/DNSSD/DNSSDQuerier.h @@ -5,7 +5,7 @@ namespace Swift { class String; class LinkLocalServiceInfo; - class LinkLocalServiceID; + class DNSSDServiceID; class DNSSDBrowseQuery; class DNSSDRegisterQuery; class DNSSDResolveServiceQuery; @@ -19,7 +19,7 @@ namespace Swift { virtual boost::shared_ptr createRegisterQuery( const String& name, int port, const LinkLocalServiceInfo& info) = 0; virtual boost::shared_ptr createResolveServiceQuery( - const LinkLocalServiceID&) = 0; + const DNSSDServiceID&) = 0; virtual boost::shared_ptr createResolveHostnameQuery( const String& hostname, int interfaceIndex) = 0; }; diff --git a/Swiften/LinkLocal/DNSSD/DNSSDRegisterQuery.h b/Swiften/LinkLocal/DNSSD/DNSSDRegisterQuery.h index 252fbf0..a643880 100644 --- a/Swiften/LinkLocal/DNSSD/DNSSDRegisterQuery.h +++ b/Swiften/LinkLocal/DNSSD/DNSSDRegisterQuery.h @@ -3,7 +3,7 @@ #include #include -#include "Swiften/LinkLocal/LinkLocalServiceID.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" namespace Swift { class LinkLocalServiceInfo; @@ -15,6 +15,6 @@ namespace Swift { virtual void registerService() = 0; virtual void updateServiceInfo(const LinkLocalServiceInfo& info) = 0; - boost::signal)> onRegisterFinished; + boost::signal)> onRegisterFinished; }; } diff --git a/Swiften/LinkLocal/DNSSD/DNSSDResolveServiceQuery.h b/Swiften/LinkLocal/DNSSD/DNSSDResolveServiceQuery.h index d8b5cf1..f79b537 100644 --- a/Swiften/LinkLocal/DNSSD/DNSSDResolveServiceQuery.h +++ b/Swiften/LinkLocal/DNSSD/DNSSDResolveServiceQuery.h @@ -3,7 +3,7 @@ #include #include -#include "Swiften/LinkLocal/LinkLocalServiceID.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" #include "Swiften/LinkLocal/LinkLocalServiceInfo.h" namespace Swift { diff --git a/Swiften/LinkLocal/DNSSD/DNSSDServiceID.cpp b/Swiften/LinkLocal/DNSSD/DNSSDServiceID.cpp new file mode 100644 index 0000000..06a5b81 --- /dev/null +++ b/Swiften/LinkLocal/DNSSD/DNSSDServiceID.cpp @@ -0,0 +1,7 @@ +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" + +namespace Swift { + +const String DNSSDServiceID::PresenceServiceType = String("_presence._tcp"); + +} diff --git a/Swiften/LinkLocal/DNSSD/DNSSDServiceID.h b/Swiften/LinkLocal/DNSSD/DNSSDServiceID.h new file mode 100644 index 0000000..b1986d3 --- /dev/null +++ b/Swiften/LinkLocal/DNSSD/DNSSDServiceID.h @@ -0,0 +1,66 @@ +#pragma once + +#include "Swiften/Base/String.h" + +namespace Swift { + class DNSSDServiceID { + public: + static const String PresenceServiceType; + + DNSSDServiceID( + const String& name, + const String& type, + const String& domain = PresenceServiceType, + int networkInterface = 0) : + name(name), + type(type), + domain(domain), + networkInterface(networkInterface) { + } + + bool operator==(const DNSSDServiceID& o) const { + return name == o.name && type == o.type && domain == o.domain && (networkInterface != 0 && o.networkInterface != 0 ? networkInterface == o.networkInterface : true); + } + + bool operator<(const DNSSDServiceID& 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; + }; +} diff --git a/Swiften/LinkLocal/DNSSD/Makefile.inc b/Swiften/LinkLocal/DNSSD/Makefile.inc index 81beee0..8612fee 100644 --- a/Swiften/LinkLocal/DNSSD/Makefile.inc +++ b/Swiften/LinkLocal/DNSSD/Makefile.inc @@ -1,4 +1,5 @@ SWIFTEN_SOURCES += \ + Swiften/LinkLocal/DNSSD/DNSSDServiceID.cpp \ Swiften/LinkLocal/DNSSD/DNSSDQuerier.cpp \ Swiften/LinkLocal/DNSSD/DNSSDBrowseQuery.cpp \ Swiften/LinkLocal/DNSSD/DNSSDRegisterQuery.cpp \ diff --git a/Swiften/LinkLocal/DNSSDService.h b/Swiften/LinkLocal/DNSSDService.h index 4cf1a6e..0ace21b 100644 --- a/Swiften/LinkLocal/DNSSDService.h +++ b/Swiften/LinkLocal/DNSSDService.h @@ -4,7 +4,7 @@ #include #include "Swiften/Base/String.h" -#include "Swiften/LinkLocal/LinkLocalServiceID.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" #include "Swiften/LinkLocal/LinkLocalServiceInfo.h" namespace Swift { @@ -29,17 +29,17 @@ namespace Swift { virtual void updateService(const LinkLocalServiceInfo&) = 0; virtual void unregisterService() = 0; - virtual void startResolvingService(const LinkLocalServiceID&) = 0; - virtual void stopResolvingService(const LinkLocalServiceID&) = 0; + virtual void startResolvingService(const DNSSDServiceID&) = 0; + virtual void stopResolvingService(const DNSSDServiceID&) = 0; virtual void resolveHostname(const String& hostname, int interfaceIndex = 0) = 0; boost::signal onStarted; boost::signal onStopped; - boost::signal onServiceAdded; - boost::signal onServiceRemoved; - boost::signal onServiceRegistered; - boost::signal onServiceResolved; + boost::signal onServiceAdded; + boost::signal onServiceRemoved; + boost::signal onServiceRegistered; + boost::signal onServiceResolved; boost::signal&)> onHostnameResolved; }; } diff --git a/Swiften/LinkLocal/LinkLocalRoster.cpp b/Swiften/LinkLocal/LinkLocalRoster.cpp index 5a6ccfd..af3c1af 100644 --- a/Swiften/LinkLocal/LinkLocalRoster.cpp +++ b/Swiften/LinkLocal/LinkLocalRoster.cpp @@ -30,11 +30,11 @@ std::vector > LinkLocalRoster::getAllPresence() cons return result; } -RosterItemPayload LinkLocalRoster::getRosterItem(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& resolveResult) const { +RosterItemPayload LinkLocalRoster::getRosterItem(const DNSSDServiceID& service, const DNSSDService::ResolveResult& resolveResult) const { return RosterItemPayload(getJIDForService(service), getRosterName(service, resolveResult), RosterItemPayload::Both); } -String LinkLocalRoster::getRosterName(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& resolveResult) const { +String LinkLocalRoster::getRosterName(const DNSSDServiceID& service, const DNSSDService::ResolveResult& resolveResult) const { if (!resolveResult.info.getNick().isEmpty()) { return resolveResult.info.getNick(); } @@ -51,11 +51,11 @@ String LinkLocalRoster::getRosterName(const LinkLocalServiceID& service, const D return service.getName(); } -JID LinkLocalRoster::getJIDForService(const LinkLocalServiceID& service) const { +JID LinkLocalRoster::getJIDForService(const DNSSDServiceID& service) const { return JID(service.getName()); } -boost::shared_ptr LinkLocalRoster::getPresence(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& resolveResult) const { +boost::shared_ptr LinkLocalRoster::getPresence(const DNSSDServiceID& service, const DNSSDService::ResolveResult& resolveResult) const { boost::shared_ptr presence(new Presence()); presence->setFrom(getJIDForService(service)); switch (resolveResult.info.getStatus()) { @@ -73,14 +73,14 @@ boost::shared_ptr LinkLocalRoster::getPresence(const LinkLocalServiceI return presence; } -void LinkLocalRoster::handleServiceAdded(const LinkLocalServiceID& service) { +void LinkLocalRoster::handleServiceAdded(const DNSSDServiceID& service) { if (selfService && *selfService == service) { return; } dnsSDService->startResolvingService(service); } -void LinkLocalRoster::handleServiceRemoved(const LinkLocalServiceID& service) { +void LinkLocalRoster::handleServiceRemoved(const DNSSDServiceID& service) { if (selfService && *selfService == service) { return; } @@ -91,7 +91,7 @@ void LinkLocalRoster::handleServiceRemoved(const LinkLocalServiceID& service) { onRosterChanged(roster); } -void LinkLocalRoster::handleServiceResolved(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& result) { +void LinkLocalRoster::handleServiceResolved(const DNSSDServiceID& service, const DNSSDService::ResolveResult& result) { std::pair r = services.insert(std::make_pair(service, result)); if (r.second) { boost::shared_ptr roster(new RosterPayload()); @@ -104,7 +104,7 @@ void LinkLocalRoster::handleServiceResolved(const LinkLocalServiceID& service, c onPresenceChanged(getPresence(service, result)); } -void LinkLocalRoster::handleServiceRegistered(const LinkLocalServiceID& service) { +void LinkLocalRoster::handleServiceRegistered(const DNSSDServiceID& service) { selfService = service; } diff --git a/Swiften/LinkLocal/LinkLocalRoster.h b/Swiften/LinkLocal/LinkLocalRoster.h index 128e39d..03ed2d5 100644 --- a/Swiften/LinkLocal/LinkLocalRoster.h +++ b/Swiften/LinkLocal/LinkLocalRoster.h @@ -28,21 +28,21 @@ namespace Swift { int getPort(const JID&) const; private: - RosterItemPayload getRosterItem(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& info) const; - String getRosterName(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& info) const; - JID getJIDForService(const LinkLocalServiceID& service) const; - boost::shared_ptr getPresence(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& info) const; + RosterItemPayload getRosterItem(const DNSSDServiceID& service, const DNSSDService::ResolveResult& info) const; + String getRosterName(const DNSSDServiceID& service, const DNSSDService::ResolveResult& info) const; + JID getJIDForService(const DNSSDServiceID& service) const; + boost::shared_ptr getPresence(const DNSSDServiceID& service, const DNSSDService::ResolveResult& info) const; void handleStopped(bool); - void handleServiceRegistered(const LinkLocalServiceID& service); - void handleServiceAdded(const LinkLocalServiceID&); - void handleServiceRemoved(const LinkLocalServiceID&); - void handleServiceResolved(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& result); + void handleServiceRegistered(const DNSSDServiceID& service); + void handleServiceAdded(const DNSSDServiceID&); + void handleServiceRemoved(const DNSSDServiceID&); + void handleServiceResolved(const DNSSDServiceID& service, const DNSSDService::ResolveResult& result); private: boost::shared_ptr dnsSDService; - boost::optional selfService; - typedef std::map ServiceMap; + boost::optional selfService; + typedef std::map ServiceMap; ServiceMap services; }; } diff --git a/Swiften/LinkLocal/LinkLocalService.h b/Swiften/LinkLocal/LinkLocalService.h index 6616303..2c62307 100644 --- a/Swiften/LinkLocal/LinkLocalService.h +++ b/Swiften/LinkLocal/LinkLocalService.h @@ -2,19 +2,19 @@ #include "Swiften/Base/String.h" #include "Swiften/Network/HostAddress.h" -#include "Swiften/LinkLocal/LinkLocalServiceID.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" #include "Swiften/LinkLocal/LinkLocalServiceInfo.h" namespace Swift { class LinkLocalService { public: LinkLocalService( - const LinkLocalServiceID& id, + const DNSSDServiceID& id, const DNSSDService::ResolveResult& info) : id(id), info(info) {} - const LinkLocalServiceID& getID() const { + const DNSSDServiceID& getID() const { return id; } @@ -35,7 +35,7 @@ namespace Swift { } private: - LinkLocalServiceID id; + DNSSDServiceID id; DNSSDService::ResolveResult info; }; } diff --git a/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp b/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp index 904f8f0..ab56695 100644 --- a/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp +++ b/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp @@ -6,35 +6,35 @@ namespace Swift { -LinkLocalServiceBrowser::LinkLocalServiceBrowser(DNSSDServiceFactory* factory) { - dnsSDService = factory->createDNSSDService(); +LinkLocalServiceBrowser::LinkLocalServiceBrowser(boost::shared_ptr querier) : querier(querier) { + /*dnsSDService = factory->createDNSSDService(); dnsSDService->onServiceAdded.connect( boost::bind(&LinkLocalServiceBrowser::handleServiceAdded, this, _1)); dnsSDService->onServiceRemoved.connect( boost::bind(&LinkLocalServiceBrowser::handleServiceRemoved, this, _1)); dnsSDService->onServiceResolved.connect( - boost::bind(&LinkLocalServiceBrowser::handleServiceResolved, this, _1, _2)); + boost::bind(&LinkLocalServiceBrowser::handleServiceResolved, this, _1, _2));*/ } std::vector LinkLocalServiceBrowser::getServices() const { std::vector result; - for (ServiceMap::const_iterator i = services.begin(); i != services.end(); ++i) { + /*for (ServiceMap::const_iterator i = services.begin(); i != services.end(); ++i) { result.push_back(LinkLocalService(i->first, i->second)); - } + }*/ return result; } -void LinkLocalServiceBrowser::handleServiceAdded(const LinkLocalServiceID& service) { +/*void LinkLocalServiceBrowser::handleServiceAdded(const DNSSDServiceID& service) { dnsSDService->startResolvingService(service); } -void LinkLocalServiceBrowser::handleServiceRemoved(const LinkLocalServiceID& service) { +void LinkLocalServiceBrowser::handleServiceRemoved(const DNSSDServiceID& service) { dnsSDService->stopResolvingService(service); services.erase(service); onServiceRemoved(service); } -void LinkLocalServiceBrowser::handleServiceResolved(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& result) { +void LinkLocalServiceBrowser::handleServiceResolved(const DNSSDServiceID& service, const DNSSDService::ResolveResult& result) { std::pair r = services.insert(std::make_pair(service, result)); if (r.second) { onServiceAdded(service); @@ -44,6 +44,6 @@ void LinkLocalServiceBrowser::handleServiceResolved(const LinkLocalServiceID& se onServiceChanged(service); } } - +*/ } diff --git a/Swiften/LinkLocal/LinkLocalServiceBrowser.h b/Swiften/LinkLocal/LinkLocalServiceBrowser.h index 879b286..10b12b7 100644 --- a/Swiften/LinkLocal/LinkLocalServiceBrowser.h +++ b/Swiften/LinkLocal/LinkLocalServiceBrowser.h @@ -6,31 +6,31 @@ #include #include "Swiften/Base/String.h" -#include "Swiften/LinkLocal/DNSSDService.h" -#include "Swiften/LinkLocal/DNSSDServiceFactory.h" #include "Swiften/LinkLocal/LinkLocalService.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDQuerier.h" +#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h" namespace Swift { class HostAddress; class LinkLocalServiceBrowser { public: - LinkLocalServiceBrowser(DNSSDServiceFactory*); + LinkLocalServiceBrowser(boost::shared_ptr querier); std::vector getServices() const; - boost::signal onServiceAdded; - boost::signal onServiceChanged; - boost::signal onServiceRemoved; + boost::signal onServiceAdded; + boost::signal onServiceChanged; + boost::signal onServiceRemoved; private: - void handleServiceAdded(const LinkLocalServiceID&); - void handleServiceRemoved(const LinkLocalServiceID&); - void handleServiceResolved(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& result); + //void handleServiceAdded(const DNSSDServiceID&); + //void handleServiceRemoved(const DNSSDServiceID&); + //void handleServiceResolved(const DNSSDServiceID& service, const DNSSDService::ResolveResult& result); private: - boost::shared_ptr dnsSDService; - typedef std::map ServiceMap; - ServiceMap services; + boost::shared_ptr querier; + //typedef std::map ServiceMap; + //ServiceMap services; }; } diff --git a/Swiften/LinkLocal/LinkLocalServiceID.cpp b/Swiften/LinkLocal/LinkLocalServiceID.cpp deleted file mode 100644 index 4248d88..0000000 --- a/Swiften/LinkLocal/LinkLocalServiceID.cpp +++ /dev/null @@ -1,7 +0,0 @@ -#include "Swiften/LinkLocal/LinkLocalServiceID.h" - -namespace Swift { - -const String LinkLocalServiceID::PresenceServiceType = String("_presence._tcp"); - -} diff --git a/Swiften/LinkLocal/LinkLocalServiceID.h b/Swiften/LinkLocal/LinkLocalServiceID.h deleted file mode 100644 index ca5ba17..0000000 --- a/Swiften/LinkLocal/LinkLocalServiceID.h +++ /dev/null @@ -1,66 +0,0 @@ -#pragma once - -#include "Swiften/Base/String.h" - -namespace Swift { - class LinkLocalServiceID { - public: - static const String PresenceServiceType; - - LinkLocalServiceID( - const String& name, - const String& type, - const String& domain = PresenceServiceType, - 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; - }; -} diff --git a/Swiften/LinkLocal/Makefile.inc b/Swiften/LinkLocal/Makefile.inc index 86a25fd..0980194 100644 --- a/Swiften/LinkLocal/Makefile.inc +++ b/Swiften/LinkLocal/Makefile.inc @@ -3,12 +3,11 @@ SWIFTEN_SOURCES += \ Swiften/LinkLocal/DNSSDService.cpp \ Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp \ Swiften/LinkLocal/LinkLocalRoster.cpp \ - Swiften/LinkLocal/LinkLocalServiceID.cpp \ Swiften/LinkLocal/LinkLocalServiceInfo.cpp \ - Swiften/LinkLocal/LinkLocalServiceBrowser.cpp \ Swiften/LinkLocal/IncomingLinkLocalSession.cpp \ Swiften/LinkLocal/OutgoingLinkLocalSession.cpp \ Swiften/LinkLocal/LinkLocalConnector.cpp +#Swiften/LinkLocal/LinkLocalServiceBrowser.cpp ifeq ($(HAVE_BONJOUR),yes) SWIFTEN_SOURCES += \ diff --git a/Swiften/LinkLocal/UnitTest/Makefile.inc b/Swiften/LinkLocal/UnitTest/Makefile.inc index 9640fa7..abc1180 100644 --- a/Swiften/LinkLocal/UnitTest/Makefile.inc +++ b/Swiften/LinkLocal/UnitTest/Makefile.inc @@ -1,3 +1,2 @@ UNITTEST_SOURCES += \ - Swiften/LinkLocal/UnitTest/LinkLocalServiceBrowserTest.cpp \ Swiften/LinkLocal/UnitTest/LinkLocalServiceInfoTest.cpp -- cgit v0.10.2-6-g49f6