zeroconf/AvahiPoll: move TimevalToChrono() to time/Convert.cxx

This commit is contained in:
Max Kellermann 2019-05-08 16:11:14 +02:00
parent 80e55f6bfc
commit ae35df1126
4 changed files with 15 additions and 8 deletions

View File

@ -81,3 +81,10 @@ MakeTime(struct tm &tm) noexcept
{
return std::chrono::system_clock::from_time_t(mktime(&tm));
}
std::chrono::steady_clock::duration
ToSteadyClockDuration(const struct timeval &tv) noexcept
{
return std::chrono::steady_clock::duration(std::chrono::seconds(tv.tv_sec)) +
std::chrono::steady_clock::duration(std::chrono::microseconds(tv.tv_usec));
}

View File

@ -67,4 +67,8 @@ gcc_pure
std::chrono::system_clock::time_point
MakeTime(struct tm &tm) noexcept;
gcc_pure
std::chrono::steady_clock::duration
ToSteadyClockDuration(const struct timeval &tv) noexcept;
#endif

View File

@ -20,6 +20,7 @@
#include "AvahiPoll.hxx"
#include "event/SocketMonitor.hxx"
#include "event/TimerEvent.hxx"
#include "time/Convert.hxx"
static unsigned
FromAvahiWatchEvent(AvahiWatchEvent e)
@ -78,12 +79,6 @@ private:
}
};
static constexpr std::chrono::steady_clock::duration
TimevalToChrono(const timeval &tv)
{
return std::chrono::seconds(tv.tv_sec) + std::chrono::microseconds(tv.tv_usec);
}
struct AvahiTimeout final {
TimerEvent timer;
@ -97,12 +92,12 @@ public:
:timer(_loop, BIND_THIS_METHOD(OnTimeout)),
callback(_callback), userdata(_userdata) {
if (tv != nullptr)
timer.Schedule(TimevalToChrono(*tv));
timer.Schedule(ToSteadyClockDuration(*tv));
}
static void TimeoutUpdate(AvahiTimeout *t, const struct timeval *tv) {
if (tv != nullptr)
t->timer.Schedule(TimevalToChrono(*tv));
t->timer.Schedule(ToSteadyClockDuration(*tv));
else
t->timer.Cancel();
}

View File

@ -67,6 +67,7 @@ else
dependencies: [
libavahi_client_dep,
dbus_dep,
time_dep,
],
)