27# include <exec/types.h>
28# include <exec/tasks.h>
31OF_ASSUME_NONNULL_BEGIN
43@protocol OFKernelEventObserverDelegate <
OFObject>
59- (void)objectIsReadyForReading: (
id)object;
66- (void)objectIsReadyForWriting: (
id)object;
68#if defined(OF_AMIGAOS) || defined(DOXYGEN)
74- (void)execSignalWasReceived: (ULONG)signalMask;
106#ifdef OF_HAVE_SOCKETS
121 id <OFKernelEventObserverDelegate> _Nullable _delegate;
122# if defined(OF_AMIGAOS)
123 struct Task *_waitingTask;
125# elif defined(OF_HAVE_PIPE)
128 OFSocketHandle _cancelFD[2];
129 struct sockaddr_in _cancelAddr;
132 ULONG _execSignalMask;
140@property OF_NULLABLE_PROPERTY (assign, nonatomic)
143# if defined(OF_AMIGAOS) || defined(DOXYGEN)
152# ifdef OF_HAVE_CLASS_PROPERTIES
194- (instancetype)initWithRunLoopMode: (nullable
OFRunLoopMode)runLoopMode;
209- (void)addObjectForReading: (
id <OFReadyForReadingObserving>)object;
221- (void)addObjectForWriting: (
id <OFReadyForWritingObserving>)object;
233- (void)removeObjectForReading: (
id <OFReadyForReadingObserving>)object;
245- (void)removeObjectForWriting: (
id <OFReadyForWritingObserving>)object;
273- (void)observeUntilDate: (
OFDate *)date;
double OFTimeInterval
A time interval in seconds.
Definition OFObject.h:154
OFConstantString * OFRunLoopMode
A mode for an OFRunLoop.
Definition OFRunLoop.h:46
A class for storing, accessing and comparing dates.
Definition OFDate.h:34
A class that can observe multiple kernel events (e.g. streams being ready to read) at once.
Definition OFKernelEventObserver.h:116
bool handlesForeignEvents()
Whether the kernel event observer handles foreign events.
Definition OFKernelEventObserver.m:87
void cancel()
Cancels the currently blocking observe call.
Definition OFKernelEventObserver.m:261
instancetype init()
Initializes the OFKernelEventObserver.
Definition OFKernelEventObserver.m:92
void observe()
Observes all objects and blocks until an event happens on an object.
Definition OFKernelEventObserver.m:246
ULONG execSignalMask
A mask of Exec Signals to wait for.
Definition OFKernelEventObserver.h:149
instancetype observer()
Creates a new OFKernelEventObserver.
Definition OFKernelEventObserver.m:64
id< OFKernelEventObserverDelegate > delegate
The delegate for the OFKernelEventObserver.
Definition OFKernelEventObserver.h:141
bool processReadBuffers()
This method should be called by subclasses in observeUntilDate: as the first thing to handle all sock...
Definition OFKernelEventObserver.m:211
An abstract class for storing, adding and removing objects in an array.
Definition OFMutableArray.h:48
A class for storing and manipulating arbitrary data in an array.
Definition OFMutableData.h:30
The root class for all other classes inside ObjFW.
Definition OFObject.h:692
int fileDescriptorForReading
The file descriptor for reading that should be checked by the OFKernelEventObserver.
Definition OFKernelEventObserver.h:89
int fileDescriptorForWriting
The file descriptor for writing that should be checked by the OFKernelEventObserver.
Definition OFKernelEventObserver.h:103