diff options
author | Remko Tronçon <git@el-tramo.be> | 2009-07-22 21:36:52 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2009-07-22 21:40:21 (GMT) |
commit | 0a7336577f9609c70bb4d846c668e7853746cb52 (patch) | |
tree | 5a4b57f400da14190c12336db1333788183ad35c /Swiften/LinkLocal/LinkLocalServiceBrowser.h | |
parent | 15103cc6eb3dd62c0e84c68bb08995247c653094 (diff) | |
download | swift-contrib-0a7336577f9609c70bb4d846c668e7853746cb52.zip swift-contrib-0a7336577f9609c70bb4d846c668e7853746cb52.tar.bz2 |
Started LinkLocalServiceBrowser.
Diffstat (limited to 'Swiften/LinkLocal/LinkLocalServiceBrowser.h')
-rw-r--r-- | Swiften/LinkLocal/LinkLocalServiceBrowser.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Swiften/LinkLocal/LinkLocalServiceBrowser.h b/Swiften/LinkLocal/LinkLocalServiceBrowser.h new file mode 100644 index 0000000..c0788e6 --- /dev/null +++ b/Swiften/LinkLocal/LinkLocalServiceBrowser.h @@ -0,0 +1,32 @@ +#pragma once + +#include <boost/shared_ptr.hpp> +#include <boost/optional.hpp> +#include <map> +#include <vector> + +#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<DNSSDService> service); + + boost::signal<void (const LinkLocalServiceID&)> onServiceAdded; + boost::signal<void (const LinkLocalServiceID&)> onServiceChanged; + + private: + void handleServiceAdded(const LinkLocalServiceID&); + void handleServiceRemoved(const LinkLocalServiceID&); + void handleServiceResolved(const LinkLocalServiceID& service, const DNSSDService::ResolveResult& result); + + private: + boost::shared_ptr<DNSSDService> dnsSDService; + typedef std::map<LinkLocalServiceID, DNSSDService::ResolveResult> ServiceMap; + ServiceMap services; + }; +} |