summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-26 08:21:20 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-26 14:52:17 (GMT)
commit26d623d3cfd8937fb52acf76ef33d230f5010538 (patch)
treeade8246f719fa4dee9de1daaa2ba3f7b6c324e53 /Swiften/LinkLocal/LinkLocalServiceBrowser.h
parent2833b8f09c9aef09004662a2a89eefbaee1e4247 (diff)
downloadswift-26d623d3cfd8937fb52acf76ef33d230f5010538.zip
swift-26d623d3cfd8937fb52acf76ef33d230f5010538.tar.bz2
Implement fake DNSSD querier.
Diffstat (limited to 'Swiften/LinkLocal/LinkLocalServiceBrowser.h')
-rw-r--r--Swiften/LinkLocal/LinkLocalServiceBrowser.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/Swiften/LinkLocal/LinkLocalServiceBrowser.h b/Swiften/LinkLocal/LinkLocalServiceBrowser.h
index 7ec796a..33c9858 100644
--- a/Swiften/LinkLocal/LinkLocalServiceBrowser.h
+++ b/Swiften/LinkLocal/LinkLocalServiceBrowser.h
@@ -9,8 +9,10 @@
#include "Swiften/Base/String.h"
#include "Swiften/LinkLocal/DNSSD/DNSSDQuerier.h"
#include "Swiften/LinkLocal/DNSSD/DNSSDResolveServiceQuery.h"
+#include "Swiften/LinkLocal/DNSSD/DNSSDRegisterQuery.h"
#include "Swiften/LinkLocal/DNSSD/DNSSDServiceID.h"
#include "Swiften/LinkLocal/LinkLocalService.h"
+#include "Swiften/LinkLocal/LinkLocalServiceInfo.h"
namespace Swift {
class LinkLocalServiceBrowser {
@@ -18,23 +20,37 @@ namespace Swift {
LinkLocalServiceBrowser(boost::shared_ptr<DNSSDQuerier> querier);
~LinkLocalServiceBrowser();
+ void start();
+ void stop();
+ bool isRunning() const;
+ bool hasError() const;
+
+ void registerService(const String& name, int port, const LinkLocalServiceInfo& info = LinkLocalServiceInfo());
+ void unregisterService();
+ bool isRegistered() const;
+
std::vector<LinkLocalService> getServices() const;
boost::signal<void (const DNSSDServiceID&)> onServiceAdded;
boost::signal<void (const DNSSDServiceID&)> onServiceChanged;
boost::signal<void (const DNSSDServiceID&)> onServiceRemoved;
+ boost::signal<void (bool)> onStopped;
private:
void handleServiceAdded(const DNSSDServiceID&);
void handleServiceRemoved(const DNSSDServiceID&);
void handleServiceResolved(const DNSSDServiceID& service, const boost::optional<DNSSDResolveServiceQuery::Result>& result);
+ void handleRegisterFinished(const boost::optional<DNSSDServiceID>&);
+ void handleBrowseError();
private:
boost::shared_ptr<DNSSDQuerier> querier;
boost::shared_ptr<DNSSDBrowseQuery> browseQuery;
+ boost::shared_ptr<DNSSDRegisterQuery> registerQuery;
typedef std::map<DNSSDServiceID, boost::shared_ptr<DNSSDResolveServiceQuery> > ResolveQueryMap;
ResolveQueryMap resolveQueries;
typedef std::map<DNSSDServiceID, DNSSDResolveServiceQuery::Result> ServiceMap;
ServiceMap services;
+ bool haveError;
};
}