summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/LinkLocal/AppleDNSSDService.h')
-rw-r--r--Swiften/LinkLocal/AppleDNSSDService.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/Swiften/LinkLocal/AppleDNSSDService.h b/Swiften/LinkLocal/AppleDNSSDService.h
index e6bedf7..3607ce0 100644
--- a/Swiften/LinkLocal/AppleDNSSDService.h
+++ b/Swiften/LinkLocal/AppleDNSSDService.h
@@ -2,6 +2,8 @@
#include <boost/enable_shared_from_this.hpp>
#include <boost/thread.hpp>
+#include <boost/thread/mutex.hpp>
+#include <dns_sd.h>
#include "Swiften/LinkLocal/DNSSDService.h"
#include "Swiften/EventLoop/EventOwner.h"
@@ -12,15 +14,27 @@ namespace Swift {
AppleDNSSDService();
~AppleDNSSDService();
- virtual void publishService(const std::map<String,String> properties);
+ virtual void registerService(const String& name, int port, const std::map<String,String>& properties);
+ virtual void unregisterService();
virtual void start();
virtual void stop();
private:
void doStart();
+ void interruptSelect();
+
+ static void handleServiceDiscoveredGlobal(DNSServiceRef, DNSServiceFlags, uint32_t, DNSServiceErrorType, const char *, const char *, const char *, void*);
+ void handleServiceDiscovered(DNSServiceRef, DNSServiceFlags, uint32_t, DNSServiceErrorType, const char *, const char *, const char *);
+ static void handleServiceRegisteredGlobal(DNSServiceRef, DNSServiceFlags, DNSServiceErrorType, const char *, const char *, const char *, void *);
+ void handleServiceRegistered(DNSServiceRef, DNSServiceFlags, DNSServiceErrorType, const char *, const char *, const char *);
private:
boost::thread* thread;
bool stopRequested;
+ int interruptSelectReadSocket;
+ int interruptSelectWriteSocket;
+ boost::mutex sdRefsMutex;
+ DNSServiceRef browseSDRef;
+ DNSServiceRef registerSDRef;
};
}