diff options
Diffstat (limited to 'Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp')
-rw-r--r-- | Swiften/LinkLocal/PlatformDNSSDServiceFactory.cpp | 38 |
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 +} + +} |