event/WakeFD: convert macro to class with a GetSocket() method
This commit is contained in:
		@@ -57,7 +57,7 @@ EventLoop::EventLoop(
 | 
				
			|||||||
#endif
 | 
					#endif
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef HAVE_THREADED_EVENT_LOOP
 | 
					#ifdef HAVE_THREADED_EVENT_LOOP
 | 
				
			||||||
	wake_event.Open(SocketDescriptor(wake_fd.Get()));
 | 
						wake_event.Open(wake_fd.GetSocket());
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,14 +20,34 @@
 | 
				
			|||||||
#ifndef MPD_WAKE_FD_HXX
 | 
					#ifndef MPD_WAKE_FD_HXX
 | 
				
			||||||
#define MPD_WAKE_FD_HXX
 | 
					#define MPD_WAKE_FD_HXX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "net/SocketDescriptor.hxx"
 | 
				
			||||||
#include "event/Features.h"
 | 
					#include "event/Features.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef USE_EVENTFD
 | 
					#ifdef USE_EVENTFD
 | 
				
			||||||
#include "system/EventFD.hxx"
 | 
					#include "system/EventFD.hxx"
 | 
				
			||||||
#define WakeFD EventFD
 | 
					 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
#include "system/EventPipe.hxx"
 | 
					#include "system/EventPipe.hxx"
 | 
				
			||||||
#define WakeFD EventPipe
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class WakeFD {
 | 
				
			||||||
 | 
					#ifdef USE_EVENTFD
 | 
				
			||||||
 | 
						EventFD fd;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						EventPipe fd;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public:
 | 
				
			||||||
 | 
						SocketDescriptor GetSocket() const noexcept {
 | 
				
			||||||
 | 
							return SocketDescriptor(fd.Get());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						bool Read() noexcept {
 | 
				
			||||||
 | 
							return fd.Read();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						void Write() noexcept {
 | 
				
			||||||
 | 
							fd.Write();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user