zeroconf/Glue: move code to the ZeroconfHelper constructor

This commit is contained in:
Max Kellermann 2021-02-24 14:53:39 +01:00
parent 2d8ecd561b
commit 5f34508aae
3 changed files with 10 additions and 12 deletions

View File

@ -84,13 +84,5 @@ ZeroconfInit(const ConfigData &config, [[maybe_unused]] EventLoop &loop)
}
}
#ifdef HAVE_AVAHI
return std::make_unique<ZeroconfHelper>(AvahiInit(loop, serviceName,
listen_port));
#endif
#ifdef HAVE_BONJOUR
return std::make_unique<ZeroconfHelper>(BonjourInit(loop, serviceName,
listen_port));
#endif
return std::make_unique<ZeroconfHelper>(loop, serviceName, listen_port);
}

View File

@ -21,10 +21,16 @@
#ifdef HAVE_AVAHI
#include "avahi/Helper.hxx"
#define CreateHelper AvahiInit
#endif
#ifdef HAVE_BONJOUR
#include "Bonjour.hxx"
#define CreateHelper BonjourInit
#endif
ZeroconfHelper::ZeroconfHelper(EventLoop &event_loop, const char *name,
unsigned port)
:helper(CreateHelper(event_loop, name, port)) {}
ZeroconfHelper::~ZeroconfHelper() noexcept = default;

View File

@ -24,6 +24,7 @@
#include <memory>
class EventLoop;
class AvahiHelper;
class BonjourHelper;
@ -37,9 +38,8 @@ class ZeroconfHelper final {
#endif
public:
template<typename T>
ZeroconfHelper(T &&_helper) noexcept
:helper(std::forward<T>(_helper)) {}
ZeroconfHelper(EventLoop &event_loop, const char *name,
unsigned port);
~ZeroconfHelper() noexcept;
};