1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright The Music Player Daemon Project
#ifndef MPD_WAKE_FD_HXX
#define MPD_WAKE_FD_HXX
#include "net/SocketDescriptor.hxx"
#include "event/Features.h"
#ifdef USE_EVENTFD
#include "system/EventFD.hxx"
#else
#include "system/EventPipe.hxx"
#endif
class WakeFD {
#ifdef USE_EVENTFD
EventFD fd;
#else
EventPipe fd;
#endif
public:
SocketDescriptor GetSocket() const noexcept {
#ifdef _WIN32
return fd.Get();
#else
return SocketDescriptor::FromFileDescriptor(fd.Get());
#endif
}
bool Read() noexcept {
return fd.Read();
}
void Write() noexcept {
fd.Write();
}
};
#endif
|