File: WakeFD.hxx

package info (click to toggle)
mpdscribble 0.25-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 968 kB
  • sloc: cpp: 3,803; sh: 164; makefile: 17
file content (41 lines) | stat: -rw-r--r-- 639 bytes parent folder | download | duplicates (4)
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