Comment: | Pass the stream for stream exceptions. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
7ced2e7b6a1464da458c45f68b9c94a7 |
User & Date: | js on 2011-03-24 21:17:29 |
Other Links: | manifest | tags |
2011-03-24
| ||
21:29 | Pass the parser for OFMalformedXMLExceptions. check-in: 3a9a5001cf user: js tags: trunk | |
21:17 | Pass the stream for stream exceptions. check-in: 7ced2e7b6a user: js tags: trunk | |
20:36 | Pass the socket for socket exceptions. check-in: a8df2cff5f user: js tags: trunk | |
Modified src/OFFile.m from [dfa9456896] to [941019ae14].
︙ | ︙ | |||
566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 | - (size_t)_readNBytes: (size_t)size intoBuffer: (char*)buf { size_t ret; if (fd == -1 || eos) @throw [OFReadFailedException newWithClass: isa requestedSize: size]; if ((ret = read(fd, buf, size)) == 0) eos = YES; return ret; } - (size_t)_writeNBytes: (size_t)size fromBuffer: (const char*)buf { size_t ret; if (fd == -1 || eos || (ret = write(fd, buf, size)) < size) @throw [OFWriteFailedException newWithClass: isa requestedSize: size]; return ret; } - (void)_seekToOffset: (off_t)offset { if (lseek(fd, offset, SEEK_SET) == -1) | > > | > | > | > | 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 | - (size_t)_readNBytes: (size_t)size intoBuffer: (char*)buf { size_t ret; if (fd == -1 || eos) @throw [OFReadFailedException newWithClass: isa stream: self requestedSize: size]; if ((ret = read(fd, buf, size)) == 0) eos = YES; return ret; } - (size_t)_writeNBytes: (size_t)size fromBuffer: (const char*)buf { size_t ret; if (fd == -1 || eos || (ret = write(fd, buf, size)) < size) @throw [OFWriteFailedException newWithClass: isa stream: self requestedSize: size]; return ret; } - (void)_seekToOffset: (off_t)offset { if (lseek(fd, offset, SEEK_SET) == -1) @throw [OFSeekFailedException newWithClass: isa stream: self]; } - (off_t)_seekForwardWithOffset: (off_t)offset { off_t ret; if ((ret = lseek(fd, offset, SEEK_CUR)) == -1) @throw [OFSeekFailedException newWithClass: isa stream: self]; return ret; } - (off_t)_seekToOffsetRelativeToEnd: (off_t)offset { off_t ret; if ((ret = lseek(fd, offset, SEEK_END)) == -1) @throw [OFSeekFailedException newWithClass: isa stream: self]; return ret; } - (int)fileDescriptor { return fd; |
︙ | ︙ |
Modified src/OFStream.m from [d42d9a7020] to [d928d7a5b3].
︙ | ︙ | |||
712 713 714 715 716 717 718 | { #ifndef _WIN32 int flags; isBlocking = enable; if ((flags = fcntl([self fileDescriptor], F_GETFL)) == -1) | | > | > | 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 | { #ifndef _WIN32 int flags; isBlocking = enable; if ((flags = fcntl([self fileDescriptor], F_GETFL)) == -1) @throw [OFSetOptionFailedException newWithClass: isa stream: self]; if (enable) flags &= ~O_NONBLOCK; else flags |= O_NONBLOCK; if (fcntl([self fileDescriptor], F_SETFL, flags) == -1) @throw [OFSetOptionFailedException newWithClass: isa stream: self]; #else @throw [OFNotImplementedException newWithClass: isa selector: _cmd]; #endif } - (int)fileDescriptor |
︙ | ︙ |
Modified src/OFStreamSocket.m from [60c85e14ca] to [e1ff8d6e4c].
︙ | ︙ | |||
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | @throw [OFNotConnectedException newWithClass: isa socket: self]; if (eos) { OFReadFailedException *e; e = [OFReadFailedException newWithClass: isa requestedSize: size]; #ifndef _WIN32 e->errNo = ENOTCONN; #else e->errNo = WSAENOTCONN; #endif @throw e; } if ((ret = recv(sock, buf, size, 0)) < 0) @throw [OFReadFailedException newWithClass: isa requestedSize: size]; if (ret == 0) eos = YES; return ret; } | > > | 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | @throw [OFNotConnectedException newWithClass: isa socket: self]; if (eos) { OFReadFailedException *e; e = [OFReadFailedException newWithClass: isa stream: self requestedSize: size]; #ifndef _WIN32 e->errNo = ENOTCONN; #else e->errNo = WSAENOTCONN; #endif @throw e; } if ((ret = recv(sock, buf, size, 0)) < 0) @throw [OFReadFailedException newWithClass: isa stream: self requestedSize: size]; if (ret == 0) eos = YES; return ret; } |
︙ | ︙ | |||
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | @throw [OFNotConnectedException newWithClass: isa socket: self]; if (eos) { OFWriteFailedException *e; e = [OFWriteFailedException newWithClass: isa requestedSize: size]; #ifndef _WIN32 e->errNo = ENOTCONN; #else e->errNo = WSAENOTCONN; #endif @throw e; } if ((ret = send(sock, buf, size, 0)) == -1) @throw [OFWriteFailedException newWithClass: isa requestedSize: size]; /* This is safe, as we already checked for -1 */ return ret; } #ifdef _WIN32 - (void)setBlocking: (BOOL)enable { u_long v = enable; isBlocking = enable; if (ioctlsocket(sock, FIONBIO, &v) == SOCKET_ERROR) | > > | > | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | @throw [OFNotConnectedException newWithClass: isa socket: self]; if (eos) { OFWriteFailedException *e; e = [OFWriteFailedException newWithClass: isa stream: self requestedSize: size]; #ifndef _WIN32 e->errNo = ENOTCONN; #else e->errNo = WSAENOTCONN; #endif @throw e; } if ((ret = send(sock, buf, size, 0)) == -1) @throw [OFWriteFailedException newWithClass: isa stream: self requestedSize: size]; /* This is safe, as we already checked for -1 */ return ret; } #ifdef _WIN32 - (void)setBlocking: (BOOL)enable { u_long v = enable; isBlocking = enable; if (ioctlsocket(sock, FIONBIO, &v) == SOCKET_ERROR) @throw [OFSetOptionFailedException newWithClass: isa stream: stream]; } #endif - (int)fileDescriptor { return sock; } |
︙ | ︙ |
Modified src/OFTCPSocket.m from [c2279eed1e] to [f3c6437253].
︙ | ︙ | |||
340 341 342 343 344 345 346 | } - (void)setKeepAlivesEnabled: (BOOL)enable { int v = enable; if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char*)&v, sizeof(v))) | | > | 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 | } - (void)setKeepAlivesEnabled: (BOOL)enable { int v = enable; if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char*)&v, sizeof(v))) @throw [OFSetOptionFailedException newWithClass: isa stream: self]; } - (OFString*)remoteAddress { if (sockAddr == NULL || sockAddrLen == 0) @throw [OFInvalidArgumentException newWithClass: isa selector: _cmd]; |
︙ | ︙ |
Modified src/exceptions/OFAcceptFailedException.m from [12e9aaa538] to [7e7f947ee7].
︙ | ︙ | |||
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | */ #include "config.h" #import "OFAcceptFailedException.h" #import "OFString.h" #import "common.h" @implementation OFAcceptFailedException + newWithClass: (Class)class_ socket: (OFTCPSocket*)socket { return [[self alloc] initWithClass: class_ socket: socket]; } - initWithClass: (Class)class_ socket: (OFTCPSocket*)socket_ { self = [super initWithClass: class_]; @try { | > > > > > > > > > > | 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 42 43 44 45 46 47 | */ #include "config.h" #import "OFAcceptFailedException.h" #import "OFString.h" #import "OFNotImplementedException.h" #import "common.h" @implementation OFAcceptFailedException + newWithClass: (Class)class_ socket: (OFTCPSocket*)socket { return [[self alloc] initWithClass: class_ socket: socket]; } - initWithClass: (Class)class_ { Class c = isa; [self release]; @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ socket: (OFTCPSocket*)socket_ { self = [super initWithClass: class_]; @try { |
︙ | ︙ |
Modified src/exceptions/OFAlreadyConnectedException.m from [865fb79629] to [8f294af99b].
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | * file. */ #include "config.h" #import "OFAlreadyConnectedException.h" #import "OFString.h" @implementation OFAlreadyConnectedException + newWithClass: (Class)class_ socket: (OFTCPSocket*)socket { return [[self alloc] initWithClass: class_ socket: socket]; } - initWithClass: (Class)class_ socket: (OFTCPSocket*)socket_ { self = [super initWithClass: class_]; @try { | > > > > > > > > > > | 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 42 43 44 45 | * file. */ #include "config.h" #import "OFAlreadyConnectedException.h" #import "OFString.h" #import "OFNotImplementedException.h" @implementation OFAlreadyConnectedException + newWithClass: (Class)class_ socket: (OFTCPSocket*)socket { return [[self alloc] initWithClass: class_ socket: socket]; } - initWithClass: (Class)class_ { Class c = isa; [self release]; @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ socket: (OFTCPSocket*)socket_ { self = [super initWithClass: class_]; @try { |
︙ | ︙ |
Modified src/exceptions/OFNotConnectedException.m from [25504636c1] to [ba0d7f211d].
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | * file. */ #include "config.h" #import "OFNotConnectedException.h" #import "OFString.h" @implementation OFNotConnectedException + newWithClass: (Class)class_ socket: (OFStreamSocket*)socket { return [[self alloc] initWithClass: class_ socket: socket]; } - initWithClass: (Class)class_ socket: (OFStreamSocket*)socket_ { self = [super initWithClass: class_]; @try { | > > > > > > > > > > | 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 42 43 44 45 | * file. */ #include "config.h" #import "OFNotConnectedException.h" #import "OFString.h" #import "OFNotImplementedException.h" @implementation OFNotConnectedException + newWithClass: (Class)class_ socket: (OFStreamSocket*)socket { return [[self alloc] initWithClass: class_ socket: socket]; } - initWithClass: (Class)class_ { Class c = isa; [self release]; @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ socket: (OFStreamSocket*)socket_ { self = [super initWithClass: class_]; @try { |
︙ | ︙ |
Modified src/exceptions/OFReadOrWriteFailedException.h from [046030975c] to [6e14e8add8].
︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFException.h" /** * \brief An exception indicating a read or write to a stream failed. */ @interface OFReadOrWriteFailedException: OFException { | > > > | | > > > > > | | > > > > > | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFException.h" @class OFStream; /** * \brief An exception indicating a read or write to a stream failed. */ @interface OFReadOrWriteFailedException: OFException { OFStream *stream; size_t requestedSize; @public int errNo; } #ifdef OF_HAVE_PROPERTIES @property (readonly, nonatomic) OFStream *stream; @property (readonly) size_t requestedSize; @property (readonly) int errNo; #endif /** * \param class_ The class of the object which caused the exception * \param stream The stream which caused the read or write failed exception * \param size The requested size of the data that couldn't be read / written * \return A new open file failed exception */ + newWithClass: (Class)class_ stream: (OFStream*)stream requestedSize: (size_t)size; /** * Initializes an already allocated read or write failed exception. * * \param class_ The class of the object which caused the exception * \param stream The stream which caused the read or write failed exception * \param size The requested size of the data that couldn't be read / written * \return A new open file failed exception */ - initWithClass: (Class)class_ stream: (OFStream*)stream requestedSize: (size_t)size; /** * \return The stream which caused the read or write failed exception */ - (OFStream*)stream; /** * \return The requested size of the data that couldn't be read / written */ - (size_t)requestedSize; /** * \return The errno from when the exception was created */ - (int)errNo; @end |
Modified src/exceptions/OFReadOrWriteFailedException.m from [a76983b7b0] to [e499bb5a9d].
︙ | ︙ | |||
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 | #import "OFNotImplementedException.h" #import "common.h" @implementation OFReadOrWriteFailedException + newWithClass: (Class)class_ requestedSize: (size_t)size { return [[self alloc] initWithClass: class_ requestedSize: size]; } - initWithClass: (Class)class_ { Class c = isa; [self release]; @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ requestedSize: (size_t)size { self = [super initWithClass: class_]; | > > > > > | | | | | > > > > > > | > > | > > | > > > > > | 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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #import "OFNotImplementedException.h" #import "common.h" @implementation OFReadOrWriteFailedException + newWithClass: (Class)class_ stream: (OFStream*)stream requestedSize: (size_t)size { return [[self alloc] initWithClass: class_ stream: stream requestedSize: size]; } - initWithClass: (Class)class_ { Class c = isa; [self release]; @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ stream: (OFStream*)stream_ requestedSize: (size_t)size { self = [super initWithClass: class_]; @try { stream = [stream_ retain]; requestedSize = size; if ([class_ isSubclassOfClass: [OFStreamSocket class]]) errNo = GET_SOCK_ERRNO; else errNo = GET_ERRNO; } @catch (id e) { return e; } return self; } - (void)dealloc { [stream release]; [super dealloc]; } - (OFStream*)stream { return stream; } - (size_t)requestedSize { return requestedSize; } - (int)errNo { return errNo; } @end |
Modified src/exceptions/OFSeekFailedException.h from [b2cc5cbfa4] to [e0877600fb].
︙ | ︙ | |||
12 13 14 15 16 17 18 19 20 21 22 23 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFException.h" /** * \brief An exception indicating that seeking in a stream failed. */ @interface OFSeekFailedException: OFException { | > > > | > > > > > > > > > > > > > > > > > > > > > > | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFException.h" @class OFSeekableStream; /** * \brief An exception indicating that seeking in a stream failed. */ @interface OFSeekFailedException: OFException { OFSeekableStream *stream; int errNo; } #ifdef OF_HAVE_PROPERTIES @property (readonly, nonatomic) OFSeekableStream *stream; @property (readonly) int errNo; #endif /** * \param stream The stream for which seeking failed * \return A new seek failed exception */ + newWithClass: (Class)class_ stream: (OFSeekableStream*)stream; /** * Initializes an already allocated seek failed exception. * * \param stream The stream for which seeking failed * \return An initialized seek failed exception */ - initWithClass: (Class)class_ stream: (OFSeekableStream*)stream; /** * \return The stream for which seeking failed */ - (OFSeekableStream*)stream; /** * \return The errno from when the exception was created */ - (int)errNo; @end |
Modified src/exceptions/OFSeekFailedException.m from [f136f958cb] to [22f9ab7eaa].
︙ | ︙ | |||
15 16 17 18 19 20 21 22 23 24 25 26 27 28 | */ #include "config.h" #import "OFSeekFailedException.h" #import "OFString.h" #import "common.h" @implementation OFSeekFailedException - initWithClass: (Class)class_ { self = [super initWithClass: class_]; | > > > > > > > > > > > > > > > > > > > > | > > > > > > > > > > > > > > > > | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | */ #include "config.h" #import "OFSeekFailedException.h" #import "OFString.h" #import "OFNotImplementedException.h" #import "common.h" @implementation OFSeekFailedException + newWithClass: (Class)class_ stream: (OFSeekableStream*)stream { return [[self alloc] initWithClass: class_ stream: stream]; } - initWithClass: (Class)class_ { Class c = isa; [self release]; @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ stream: (OFSeekableStream*)stream_ { self = [super initWithClass: class_]; @try { stream = [stream_ retain]; errNo = GET_ERRNO; } @catch (id e) { [self release]; @throw e; } return self; } - (void)dealloc { [stream release]; [super dealloc]; } - (OFString*)description { if (description != nil) return description; description = [[OFString alloc] initWithFormat: @"Seeking failed in class %@! " ERRFMT, inClass, ERRPARAM]; return description; } - (OFSeekableStream*)stream { return stream; } - (int)errNo { return errNo; } @end |
Modified src/exceptions/OFSetOptionFailedException.h from [2231035311] to [0409392fd7].
︙ | ︙ | |||
12 13 14 15 16 17 18 19 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFException.h" /** | > > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 42 43 44 45 46 47 48 49 50 51 52 53 | * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ #import "OFException.h" @class OFStream; /** * \brief An exception indicating that setting an option for a stream failed. */ @interface OFSetOptionFailedException: OFException { OFStream *stream; } #ifdef OF_HAVE_PROPERTIES @property (readonly, nonatomic) OFStream *stream; #endif /** * \param stream The stream for which the option could not be set * \return A new set option failed exception */ + newWithClass: (Class)class_ stream: (OFStream*)stream; /** * Initializes an already allocated set option failed exception. * * \param stream The stream for which the option could not be set * \return An initialized set option failed exception */ - initWithClass: (Class)class_ stream: (OFStream*)stream; /** * \return The stream for which the option could not be set */ - (OFStream*)stream; @end |
Modified src/exceptions/OFSetOptionFailedException.m from [7f4c316959] to [dcdd902585].
︙ | ︙ | |||
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | * file. */ #include "config.h" #import "OFSetOptionFailedException.h" #import "OFString.h" @implementation OFSetOptionFailedException - (OFString*)description { if (description != nil) return description; description = [[OFString alloc] initWithFormat: @"Setting an option in class %@ failed!", inClass]; return description; } @end | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | * file. */ #include "config.h" #import "OFSetOptionFailedException.h" #import "OFString.h" #import "OFNotImplementedException.h" @implementation OFSetOptionFailedException + newWithClass: (Class)class_ stream: (OFStream*)stream { return [[self alloc] initWithClass: class_ stream: stream]; } - initWithClass: (Class)class_ { Class c = isa; [self release]; @throw [OFNotImplementedException newWithClass: c selector: _cmd]; } - initWithClass: (Class)class_ stream: (OFStream*)stream_ { self = [super initWithClass: class_]; @try { stream = [stream_ retain]; } @catch (id e) { [self release]; @throw e; } return self; } - (void)dealloc { [stream release]; [super dealloc]; } - (OFString*)description { if (description != nil) return description; description = [[OFString alloc] initWithFormat: @"Setting an option in class %@ failed!", inClass]; return description; } - (OFStream*)stream { return stream; } @end |