summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-22 21:36:52 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-22 21:40:21 (GMT)
commit0a7336577f9609c70bb4d846c668e7853746cb52 (patch)
tree5a4b57f400da14190c12336db1333788183ad35c /Swiften/LinkLocal/LinkLocalServiceBrowser.h
parent15103cc6eb3dd62c0e84c68bb08995247c653094 (diff)
downloadswift-0a7336577f9609c70bb4d846c668e7853746cb52.zip
swift-0a7336577f9609c70bb4d846c668e7853746cb52.tar.bz2
Started LinkLocalServiceBrowser.
Diffstat (limited to 'Swiften/LinkLocal/LinkLocalServiceBrowser.h')
-rw-r--r--Swiften/LinkLocal/LinkLocalServiceBrowser.h32
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;
+ };
+}