38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# import "OFTCPSocket.h"
#endif
#import "OFAutoreleasePool.h"
#import "OFInitializationFailedException.h"
#import "OFOutOfRangeException.h"
#ifdef _WIN32
# define close(sock) closesocket(sock)
#endif
enum {
QUEUE_ADD = 0,
QUEUE_REMOVE = 1,
|
>
>
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# import "OFTCPSocket.h"
#endif
#import "OFAutoreleasePool.h"
#import "OFInitializationFailedException.h"
#import "OFOutOfRangeException.h"
#import "macros.h"
#ifdef _WIN32
# define close(sock) closesocket(sock)
#endif
enum {
QUEUE_ADD = 0,
QUEUE_REMOVE = 1,
|
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
#endif
[super dealloc];
}
- (id <OFStreamObserverDelegate>)delegate
{
return [[(id)delegate retain] autorelease];
}
- (void)setDelegate: (id <OFStreamObserverDelegate>)delegate_
{
[(id)delegate_ retain];
[(id)delegate release];
delegate = delegate_;
}
#ifdef OF_HAVE_POLL
- (void)_addStream: (OFStream*)stream
withEvents: (short)events
{
struct pollfd *fds_c = [fds cArray];
|
|
<
<
|
|
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
#endif
[super dealloc];
}
- (id <OFStreamObserverDelegate>)delegate
{
OF_GETTER(delegate, YES)
}
- (void)setDelegate: (id <OFStreamObserverDelegate>)delegate_
{
OF_SETTER(delegate, delegate_, YES, NO)
}
#ifdef OF_HAVE_POLL
- (void)_addStream: (OFStream*)stream
withEvents: (short)events
{
struct pollfd *fds_c = [fds cArray];
|
485
486
487
488
489
490
491
492
493
494
495
496
497
498
|
FD_COPY(&exceptfds, &exceptfds_);
# else
readfds_ = readfds;
writefds_ = writefds;
exceptfds_ = exceptfds;
# endif
if (select(nfds, &readfds_, &writefds_, &exceptfds_,
(timeout != -1 ? &tv : NULL)) < 1)
return NO;
if (FD_ISSET(cancelFd[0], &readfds_)) {
char buf;
#ifndef _WIN32
|
>
>
>
|
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
|
FD_COPY(&exceptfds, &exceptfds_);
# else
readfds_ = readfds;
writefds_ = writefds;
exceptfds_ = exceptfds;
# endif
tv.tv_sec = timeout / 1000;
tv.tv_usec = (timeout % 1000) * 1000;
if (select(nfds, &readfds_, &writefds_, &exceptfds_,
(timeout != -1 ? &tv : NULL)) < 1)
return NO;
if (FD_ISSET(cancelFd[0], &readfds_)) {
char buf;
#ifndef _WIN32
|