Differences From Artifact [376bac39d6]:
- File
src/OFHTTPClient.m
— part of check-in
[d16ad96cbd]
at
2018-12-07 01:33:47
on branch trunk
— OFStream: Use a delegate for async operations
The target / selector approach had several drawbacks:
* It was inconvenient to use, as for every read or write, a target,
selector and context would need to be specified.
* It lacked any kind of type-safety and would not even warn about using
a callback method with the wrong number of parameters.
* It encouraged using a different callback method for each read or
write call, which results in code that is hard to follow and also
slower (as it needs to recreate the async operation with a new
callback every time). (user: js, size: 29459) [annotate] [blame] [check-ins using]
To Artifact [66db22090b]:
- File src/OFHTTPClient.m — part of check-in [27153bf8cf] at 2018-12-08 16:05:51 on branch trunk — OFTCPSocket: Use a delegate for async operations (user: js, size: 29333) [annotate] [blame] [check-ins using]
| ︙ | ︙ | |||
47 48 49 50 51 52 53 | #import "OFTruncatedDataException.h" #import "OFUnsupportedProtocolException.h" #import "OFUnsupportedVersionException.h" #import "OFWriteFailedException.h" #define REDIRECTS_DEFAULT 10 | | | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#import "OFTruncatedDataException.h"
#import "OFUnsupportedProtocolException.h"
#import "OFUnsupportedVersionException.h"
#import "OFWriteFailedException.h"
#define REDIRECTS_DEFAULT 10
@interface OFHTTPClientRequestHandler: OFObject <OFTCPSocketDelegate>
{
@public
OFHTTPClient *_client;
OFHTTPRequest *_request;
OFString *_requestString;
unsigned int _redirects;
id _context;
|
| ︙ | ︙ | |||
611 612 613 614 615 616 617 |
length: [_requestString UTF8StringLength]];
} @catch (id e) {
[self raiseException: e];
return;
}
}
| | | | < < < < < | | 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 |
length: [_requestString UTF8StringLength]];
} @catch (id e) {
[self raiseException: e];
return;
}
}
- (void)socket: (OF_KINDOF(OFTCPSocket *))sock
didConnectToHost: (OFString *)host
port: (uint16_t)port
{
[(OFTCPSocket *)sock setDelegate: self];
if ([_client->_delegate respondsToSelector:
@selector(client:didCreateSocket:request:context:)])
[_client->_delegate client: _client
didCreateSocket: sock
request: _request
context: _context];
|
| ︙ | ︙ | |||
693 694 695 696 697 698 699 700 | port = 80; } URLPort = [URL port]; if (URLPort != nil) port = [URLPort uInt16Value]; [sock asyncConnectToHost: [URL host] | > | < < < < | 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 |
port = 80;
}
URLPort = [URL port];
if (URLPort != nil)
port = [URLPort uInt16Value];
[sock setDelegate: self];
[sock asyncConnectToHost: [URL host]
port: port];
} @catch (id e) {
[self raiseException: e];
}
}
@end
@implementation OFHTTPClientRequestBodyStream
|
| ︙ | ︙ |