summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-23 19:03:11 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-23 19:03:11 (GMT)
commit3a0309d2d897bf4f399610e52ad439c002e16f9c (patch)
tree47bff40c767b95b7b395393186769e0fb68badc1 /Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp
parent1c1491cbbe9fca509ddc292dbeaedbba7b6a2b14 (diff)
downloadswift-3a0309d2d897bf4f399610e52ad439c002e16f9c.zip
swift-3a0309d2d897bf4f399610e52ad439c002e16f9c.tar.bz2
Add DNS service factory.
Diffstat (limited to 'Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp')
-rw-r--r--Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp b/Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp
new file mode 100644
index 0000000..df70506
--- /dev/null
+++ b/Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp
@@ -0,0 +1,38 @@
+#include "Swiften/LinkLocal/PlatformDNSSDServiceFactory.h"
+
+#include <cassert>
+
+#ifdef HAVE_SWIFTEN_CONFIG_H
+#include "Swiften/config.h"
+#endif
+#if defined(HAVE_AVAHI)
+#include "Swiften/LinkLocal/AvahiDNSSDService.h"
+#elif defined(HAVE_BONJOUR)
+#include "Swiften/LinkLocal/AppleDNSSDService.h"
+#endif
+
+namespace Swift {
+
+PlatformDNSSDServiceFactory::PlatformDNSSDServiceFactory() {
+}
+
+bool PlatformDNSSDServiceFactory::canCreate() const {
+#if defined(HAVE_AVAHI) || defined(HAVE_BONJOUR)
+ return true;
+#else
+ return false;
+#endif
+}
+
+boost::shared_ptr<DNSSDService> PlatformDNSSDServiceFactory::createDNSSDService() {
+#if defined(HAVE_AVAHI)
+ return boost::shared_ptr<DNSSDService>(new AvahiDNSSDService());
+#elif defined(HAVE_BONJOUR)
+ return boost::shared_ptr<DNSSDService>(new AppleDNSSDService());
+#else
+ assert(false);
+ return boost::shared_ptr<DNSSDService>();
+#endif
+}
+
+}