#pragma once #include #include #include #include #include "Swiften/Base/String.h" #include "Swiften/LinkLocal/DNSSDService.h" #include "Swiften/LinkLocal/LinkLocalService.h" namespace Swift { class HostAddress; class LinkLocalServiceBrowser { public: LinkLocalServiceBrowser(boost::shared_ptr service); boost::signal onServiceAdded; boost::signal onServiceChanged; private: void handleServiceAdded(const LinkLocalServiceID&); void handleServiceRemoved(const LinkLocalServiceID&); void handleServiceResolved(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& result); private: boost::shared_ptr dnsSDService; typedef std::map ServiceMap; ServiceMap services; }; }