21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
+
+
+
+
-
-
-
-
-
+
-
+
-
+
-
+
|
#include <errno.h>
#import "OFKernelEventObserver.h"
#import "OFKernelEventObserver+Private.h"
#import "OFArray.h"
#import "OFData.h"
#import "OFDate.h"
#ifdef OF_HAVE_THREADS
# import "OFMutex.h"
#endif
#import "OFStream.h"
#import "OFStream+Private.h"
#ifndef OF_HAVE_PIPE
# import "OFStreamSocket.h"
#endif
#import "OFDate.h"
#ifdef OF_HAVE_THREADS
# import "OFMutex.h"
#endif
#ifdef HAVE_KQUEUE
# import "OFKernelEventObserver_kqueue.h"
# import "OFKqueueKernelEventObserver.h"
#endif
#ifdef HAVE_EPOLL
# import "OFKernelEventObserver_epoll.h"
# import "OFEpollKernelEventObserver.h"
#endif
#ifdef HAVE_POLL
# import "OFKernelEventObserver_poll.h"
# import "OFPollKernelEventObserver.h"
#endif
#ifdef HAVE_SELECT
# import "OFKernelEventObserver_select.h"
# import "OFSelectKernelEventObserver.h"
#endif
#import "OFInitializationFailedException.h"
#import "OFInvalidArgumentException.h"
#import "OFOutOfRangeException.h"
#import "socket.h"
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
-
+
-
+
-
+
-
+
|
return [[[self alloc] init] autorelease];
}
+ (instancetype)alloc
{
if (self == [OFKernelEventObserver class])
#if defined(HAVE_KQUEUE)
return [OFKernelEventObserver_kqueue alloc];
return [OFKqueueKernelEventObserver alloc];
#elif defined(HAVE_EPOLL)
return [OFKernelEventObserver_epoll alloc];
return [OFEpollKernelEventObserver alloc];
#elif defined(HAVE_POLL)
return [OFKernelEventObserver_poll alloc];
return [OFPollKernelEventObserver alloc];
#elif defined(HAVE_SELECT)
return [OFKernelEventObserver_select alloc];
return [OFSelectKernelEventObserver alloc];
#else
# error No kqueue / epoll / poll / select found!
#endif
return [super alloc];
}
|