appium-webdriveragent 16.6.0 → 16.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/WebDriverAgent.xcodeproj/project.pbxproj +45 -303
- package/WebDriverAgentLib/Info.plist +2 -2
- package/WebDriverAgentLib/Routing/{WatchOS/FBWatchHTTPServer.h → FBHTTPServer.h} +11 -7
- package/WebDriverAgentLib/Routing/{WatchOS/FBWatchHTTPServer.m → FBHTTPServer.m} +26 -13
- package/WebDriverAgentLib/Routing/FBTCPSocket.h +10 -45
- package/WebDriverAgentLib/Routing/FBTCPSocket.m +12 -94
- package/WebDriverAgentLib/Routing/FBWebServer.h +1 -1
- package/WebDriverAgentLib/Routing/FBWebServer.m +4 -49
- package/WebDriverAgentLib/Routing/{WatchOS/RouteRequest.h → RouteRequest.h} +2 -4
- package/WebDriverAgentLib/Routing/{WatchOS/RouteResponse.h → RouteResponse.h} +2 -2
- package/WebDriverAgentLib/Utilities/FBMjpegServer.h +3 -5
- package/WebDriverAgentLib/Utilities/FBMjpegServer.m +1 -66
- package/package.json +1 -1
- package/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h +0 -1220
- package/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m +0 -8786
- package/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.h +0 -1036
- package/WebDriverAgentLib/Vendor/CocoaAsyncSocket/GCDAsyncUdpSocket.m +0 -5868
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.h +0 -12
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDNumber.m +0 -88
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.h +0 -56
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Categories/DDRange.m +0 -100
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.h +0 -109
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPConnection.m +0 -2281
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPLogging.h +0 -122
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.h +0 -53
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPMessage.m +0 -357
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPResponse.h +0 -149
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.h +0 -126
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/HTTPServer.m +0 -372
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/LICENSE +0 -18
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.h +0 -13
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPDataResponse.m +0 -83
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.h +0 -9
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.m +0 -38
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.h +0 -13
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/HTTPResponseProxy.m +0 -84
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/LICENSE +0 -19
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.h +0 -18
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/Route.m +0 -11
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.h +0 -16
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteRequest.m +0 -50
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.h +0 -20
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RouteResponse.m +0 -66
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.h +0 -5
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingConnection.m +0 -142
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.h +0 -55
- package/WebDriverAgentLib/Vendor/RoutingHTTPServer/RoutingHTTPServer.m +0 -303
- /package/WebDriverAgentLib/Routing/{WatchOS/RouteRequest.m → RouteRequest.m} +0 -0
- /package/WebDriverAgentLib/Routing/{WatchOS/RouteResponse.m → RouteResponse.m} +0 -0
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#import <Foundation/Foundation.h>
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
@interface NSNumber (DDNumber)
|
|
5
|
-
|
|
6
|
-
+ (BOOL)parseString:(NSString *)str intoSInt64:(SInt64 *)pNum;
|
|
7
|
-
+ (BOOL)parseString:(NSString *)str intoUInt64:(UInt64 *)pNum;
|
|
8
|
-
|
|
9
|
-
+ (BOOL)parseString:(NSString *)str intoNSInteger:(NSInteger *)pNum;
|
|
10
|
-
+ (BOOL)parseString:(NSString *)str intoNSUInteger:(NSUInteger *)pNum;
|
|
11
|
-
|
|
12
|
-
@end
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
#import "DDNumber.h"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
@implementation NSNumber (DDNumber)
|
|
5
|
-
|
|
6
|
-
+ (BOOL)parseString:(NSString *)str intoSInt64:(SInt64 *)pNum
|
|
7
|
-
{
|
|
8
|
-
if(str == nil)
|
|
9
|
-
{
|
|
10
|
-
*pNum = 0;
|
|
11
|
-
return NO;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
errno = 0;
|
|
15
|
-
|
|
16
|
-
// On both 32-bit and 64-bit machines, long long = 64 bit
|
|
17
|
-
|
|
18
|
-
*pNum = strtoll([str UTF8String], NULL, 10);
|
|
19
|
-
|
|
20
|
-
if(errno != 0)
|
|
21
|
-
return NO;
|
|
22
|
-
else
|
|
23
|
-
return YES;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
+ (BOOL)parseString:(NSString *)str intoUInt64:(UInt64 *)pNum
|
|
27
|
-
{
|
|
28
|
-
if(str == nil)
|
|
29
|
-
{
|
|
30
|
-
*pNum = 0;
|
|
31
|
-
return NO;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
errno = 0;
|
|
35
|
-
|
|
36
|
-
// On both 32-bit and 64-bit machines, unsigned long long = 64 bit
|
|
37
|
-
|
|
38
|
-
*pNum = strtoull([str UTF8String], NULL, 10);
|
|
39
|
-
|
|
40
|
-
if(errno != 0)
|
|
41
|
-
return NO;
|
|
42
|
-
else
|
|
43
|
-
return YES;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
+ (BOOL)parseString:(NSString *)str intoNSInteger:(NSInteger *)pNum
|
|
47
|
-
{
|
|
48
|
-
if(str == nil)
|
|
49
|
-
{
|
|
50
|
-
*pNum = 0;
|
|
51
|
-
return NO;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
errno = 0;
|
|
55
|
-
|
|
56
|
-
// On LP64, NSInteger = long = 64 bit
|
|
57
|
-
// Otherwise, NSInteger = int = long = 32 bit
|
|
58
|
-
|
|
59
|
-
*pNum = strtol([str UTF8String], NULL, 10);
|
|
60
|
-
|
|
61
|
-
if(errno != 0)
|
|
62
|
-
return NO;
|
|
63
|
-
else
|
|
64
|
-
return YES;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
+ (BOOL)parseString:(NSString *)str intoNSUInteger:(NSUInteger *)pNum
|
|
68
|
-
{
|
|
69
|
-
if(str == nil)
|
|
70
|
-
{
|
|
71
|
-
*pNum = 0;
|
|
72
|
-
return NO;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
errno = 0;
|
|
76
|
-
|
|
77
|
-
// On LP64, NSUInteger = unsigned long = 64 bit
|
|
78
|
-
// Otherwise, NSUInteger = unsigned int = unsigned long = 32 bit
|
|
79
|
-
|
|
80
|
-
*pNum = strtoul([str UTF8String], NULL, 10);
|
|
81
|
-
|
|
82
|
-
if(errno != 0)
|
|
83
|
-
return NO;
|
|
84
|
-
else
|
|
85
|
-
return YES;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
@end
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DDRange is the functional equivalent of a 64 bit NSRange.
|
|
3
|
-
* The HTTP Server is designed to support very large files.
|
|
4
|
-
* On 32 bit architectures (ppc, i386) NSRange uses unsigned 32 bit integers.
|
|
5
|
-
* This only supports a range of up to 4 gigabytes.
|
|
6
|
-
* By defining our own variant, we can support a range up to 16 exabytes.
|
|
7
|
-
*
|
|
8
|
-
* All effort is given such that DDRange functions EXACTLY the same as NSRange.
|
|
9
|
-
**/
|
|
10
|
-
|
|
11
|
-
#import <Foundation/NSValue.h>
|
|
12
|
-
#import <Foundation/NSObjCRuntime.h>
|
|
13
|
-
|
|
14
|
-
@class NSString;
|
|
15
|
-
|
|
16
|
-
typedef struct _DDRange {
|
|
17
|
-
UInt64 location;
|
|
18
|
-
UInt64 length;
|
|
19
|
-
} DDRange;
|
|
20
|
-
|
|
21
|
-
typedef DDRange *DDRangePointer;
|
|
22
|
-
|
|
23
|
-
NS_INLINE DDRange DDMakeRange(UInt64 loc, UInt64 len) {
|
|
24
|
-
DDRange r;
|
|
25
|
-
r.location = loc;
|
|
26
|
-
r.length = len;
|
|
27
|
-
return r;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
NS_INLINE UInt64 DDMaxRange(DDRange range) {
|
|
31
|
-
return (range.location + range.length);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
NS_INLINE BOOL DDLocationInRange(UInt64 loc, DDRange range) {
|
|
35
|
-
return (loc - range.location < range.length);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
NS_INLINE BOOL DDEqualRanges(DDRange range1, DDRange range2) {
|
|
39
|
-
return ((range1.location == range2.location) && (range1.length == range2.length));
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
FOUNDATION_EXPORT DDRange DDUnionRange(DDRange range1, DDRange range2);
|
|
43
|
-
FOUNDATION_EXPORT DDRange DDIntersectionRange(DDRange range1, DDRange range2);
|
|
44
|
-
FOUNDATION_EXPORT NSString *DDStringFromRange(DDRange range);
|
|
45
|
-
FOUNDATION_EXPORT DDRange DDRangeFromString(NSString *aString);
|
|
46
|
-
|
|
47
|
-
NSInteger DDRangeCompare(DDRangePointer pDDRange1, DDRangePointer pDDRange2);
|
|
48
|
-
|
|
49
|
-
@interface NSValue (NSValueDDRangeExtensions)
|
|
50
|
-
|
|
51
|
-
+ (NSValue *)valueWithDDRange:(DDRange)range;
|
|
52
|
-
- (DDRange)ddrangeValue;
|
|
53
|
-
|
|
54
|
-
- (NSInteger)ddrangeCompare:(NSValue *)ddrangeValue;
|
|
55
|
-
|
|
56
|
-
@end
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
#import "DDRange.h"
|
|
2
|
-
#import "DDNumber.h"
|
|
3
|
-
|
|
4
|
-
#pragma clang diagnostic ignored "-Wformat-non-iso"
|
|
5
|
-
|
|
6
|
-
DDRange DDUnionRange(DDRange range1, DDRange range2)
|
|
7
|
-
{
|
|
8
|
-
UInt64 location = MIN(range1.location, range2.location);
|
|
9
|
-
UInt64 length = MAX(DDMaxRange(range1), DDMaxRange(range2)) - location;
|
|
10
|
-
|
|
11
|
-
return DDMakeRange(location, length);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
DDRange DDIntersectionRange(DDRange range1, DDRange range2)
|
|
15
|
-
{
|
|
16
|
-
if((DDMaxRange(range1) < range2.location) || (DDMaxRange(range2) < range1.location))
|
|
17
|
-
{
|
|
18
|
-
return DDMakeRange(0, 0);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return DDMakeRange(MAX(range1.location, range2.location),
|
|
22
|
-
MIN(DDMaxRange(range1), DDMaxRange(range2)) - MAX(range1.location, range2.location));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
NSString *DDStringFromRange(DDRange range)
|
|
26
|
-
{
|
|
27
|
-
return [NSString stringWithFormat:@"{%qu, %qu}", range.location, range.length];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
DDRange DDRangeFromString(NSString *aString)
|
|
31
|
-
{
|
|
32
|
-
DDRange result = DDMakeRange(0, 0);
|
|
33
|
-
|
|
34
|
-
// NSRange will ignore '-' characters, but not '+' characters
|
|
35
|
-
NSCharacterSet *cset = [NSCharacterSet characterSetWithCharactersInString:@"+0123456789"];
|
|
36
|
-
|
|
37
|
-
NSScanner *scanner = [NSScanner scannerWithString:aString];
|
|
38
|
-
[scanner setCharactersToBeSkipped:[cset invertedSet]];
|
|
39
|
-
|
|
40
|
-
NSString *str1 = nil;
|
|
41
|
-
NSString *str2 = nil;
|
|
42
|
-
|
|
43
|
-
BOOL found1 = [scanner scanCharactersFromSet:cset intoString:&str1];
|
|
44
|
-
BOOL found2 = [scanner scanCharactersFromSet:cset intoString:&str2];
|
|
45
|
-
|
|
46
|
-
if(found1) [NSNumber parseString:str1 intoUInt64:&result.location];
|
|
47
|
-
if(found2) [NSNumber parseString:str2 intoUInt64:&result.length];
|
|
48
|
-
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
NSInteger DDRangeCompare(DDRangePointer pDDRange1, DDRangePointer pDDRange2)
|
|
53
|
-
{
|
|
54
|
-
// Comparison basis:
|
|
55
|
-
// Which range would you encouter first if you started at zero, and began walking towards infinity.
|
|
56
|
-
// If you encouter both ranges at the same time, which range would end first.
|
|
57
|
-
|
|
58
|
-
if(pDDRange1->location < pDDRange2->location)
|
|
59
|
-
{
|
|
60
|
-
return NSOrderedAscending;
|
|
61
|
-
}
|
|
62
|
-
if(pDDRange1->location > pDDRange2->location)
|
|
63
|
-
{
|
|
64
|
-
return NSOrderedDescending;
|
|
65
|
-
}
|
|
66
|
-
if(pDDRange1->length < pDDRange2->length)
|
|
67
|
-
{
|
|
68
|
-
return NSOrderedAscending;
|
|
69
|
-
}
|
|
70
|
-
if(pDDRange1->length > pDDRange2->length)
|
|
71
|
-
{
|
|
72
|
-
return NSOrderedDescending;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return NSOrderedSame;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
@implementation NSValue (NSValueDDRangeExtensions)
|
|
79
|
-
|
|
80
|
-
+ (NSValue *)valueWithDDRange:(DDRange)range
|
|
81
|
-
{
|
|
82
|
-
return [NSValue valueWithBytes:&range objCType:@encode(DDRange)];
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
- (DDRange)ddrangeValue
|
|
86
|
-
{
|
|
87
|
-
DDRange result;
|
|
88
|
-
[self getValue:&result];
|
|
89
|
-
return result;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
- (NSInteger)ddrangeCompare:(NSValue *)other
|
|
93
|
-
{
|
|
94
|
-
DDRange r1 = [self ddrangeValue];
|
|
95
|
-
DDRange r2 = [other ddrangeValue];
|
|
96
|
-
|
|
97
|
-
return DDRangeCompare(&r1, &r2);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
@end
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
#import <Foundation/Foundation.h>
|
|
2
|
-
|
|
3
|
-
@class GCDAsyncSocket;
|
|
4
|
-
@class HTTPMessage;
|
|
5
|
-
@class HTTPServer;
|
|
6
|
-
@class WebSocket;
|
|
7
|
-
@protocol HTTPResponse;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
#define HTTPConnectionDidDieNotification @"HTTPConnectionDidDie"
|
|
11
|
-
|
|
12
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
13
|
-
#pragma mark -
|
|
14
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
15
|
-
|
|
16
|
-
@interface HTTPConfig : NSObject
|
|
17
|
-
{
|
|
18
|
-
HTTPServer __unsafe_unretained *server;
|
|
19
|
-
NSString __strong *documentRoot;
|
|
20
|
-
dispatch_queue_t queue;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
- (id)initWithServer:(HTTPServer *)server documentRoot:(NSString *)documentRoot;
|
|
24
|
-
- (id)initWithServer:(HTTPServer *)server documentRoot:(NSString *)documentRoot queue:(dispatch_queue_t)q;
|
|
25
|
-
|
|
26
|
-
@property (nonatomic, unsafe_unretained, readonly) HTTPServer *server;
|
|
27
|
-
@property (nonatomic, strong, readonly) NSString *documentRoot;
|
|
28
|
-
@property (nonatomic, readonly) dispatch_queue_t queue;
|
|
29
|
-
|
|
30
|
-
@end
|
|
31
|
-
|
|
32
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
33
|
-
#pragma mark -
|
|
34
|
-
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
35
|
-
|
|
36
|
-
@interface HTTPConnection : NSObject
|
|
37
|
-
{
|
|
38
|
-
dispatch_queue_t connectionQueue;
|
|
39
|
-
GCDAsyncSocket *asyncSocket;
|
|
40
|
-
HTTPConfig *config;
|
|
41
|
-
|
|
42
|
-
BOOL started;
|
|
43
|
-
|
|
44
|
-
HTTPMessage *request;
|
|
45
|
-
unsigned int numHeaderLines;
|
|
46
|
-
|
|
47
|
-
BOOL sentResponseHeaders;
|
|
48
|
-
|
|
49
|
-
NSObject<HTTPResponse> *httpResponse;
|
|
50
|
-
|
|
51
|
-
NSMutableArray *ranges;
|
|
52
|
-
NSMutableArray *ranges_headers;
|
|
53
|
-
NSString *ranges_boundry;
|
|
54
|
-
int rangeIndex;
|
|
55
|
-
|
|
56
|
-
UInt64 requestContentLength;
|
|
57
|
-
UInt64 requestContentLengthReceived;
|
|
58
|
-
UInt64 requestChunkSize;
|
|
59
|
-
UInt64 requestChunkSizeReceived;
|
|
60
|
-
|
|
61
|
-
NSMutableArray *responseDataSizes;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
- (id)initWithAsyncSocket:(GCDAsyncSocket *)newSocket configuration:(HTTPConfig *)aConfig;
|
|
65
|
-
|
|
66
|
-
- (void)start;
|
|
67
|
-
- (void)stop;
|
|
68
|
-
|
|
69
|
-
- (void)startConnection;
|
|
70
|
-
|
|
71
|
-
- (BOOL)supportsMethod:(NSString *)method atPath:(NSString *)path;
|
|
72
|
-
- (BOOL)expectsRequestBodyFromMethod:(NSString *)method atPath:(NSString *)path;
|
|
73
|
-
|
|
74
|
-
- (NSDictionary *)parseParams:(NSString *)query;
|
|
75
|
-
- (NSDictionary *)parseGetParams;
|
|
76
|
-
|
|
77
|
-
- (NSString *)requestURI;
|
|
78
|
-
|
|
79
|
-
- (NSArray *)directoryIndexFileNames;
|
|
80
|
-
- (NSString *)filePathForURI:(NSString *)path;
|
|
81
|
-
- (NSString *)filePathForURI:(NSString *)path allowDirectory:(BOOL)allowDirectory;
|
|
82
|
-
- (NSObject<HTTPResponse> *)httpResponseForMethod:(NSString *)method URI:(NSString *)path;
|
|
83
|
-
- (WebSocket *)webSocketForURI:(NSString *)path;
|
|
84
|
-
|
|
85
|
-
- (void)prepareForBodyWithSize:(UInt64)contentLength;
|
|
86
|
-
- (void)processBodyData:(NSData *)postDataChunk;
|
|
87
|
-
- (void)finishBody;
|
|
88
|
-
- (UInt64)maxRequestBodySize;
|
|
89
|
-
|
|
90
|
-
- (void)handleVersionNotSupported:(NSString *)version;
|
|
91
|
-
- (void)handleRequestBodyTooLarge;
|
|
92
|
-
- (void)handleResourceNotFound;
|
|
93
|
-
- (void)handleInvalidRequest:(NSData *)data;
|
|
94
|
-
- (void)handleUnknownMethod:(NSString *)method;
|
|
95
|
-
|
|
96
|
-
- (NSData *)preprocessResponse:(HTTPMessage *)response;
|
|
97
|
-
- (NSData *)preprocessErrorResponse:(HTTPMessage *)response;
|
|
98
|
-
|
|
99
|
-
- (void)finishResponse;
|
|
100
|
-
|
|
101
|
-
- (BOOL)shouldDie;
|
|
102
|
-
- (void)die;
|
|
103
|
-
|
|
104
|
-
@end
|
|
105
|
-
|
|
106
|
-
@interface HTTPConnection (AsynchronousHTTPResponse)
|
|
107
|
-
- (void)responseHasAvailableData:(NSObject<HTTPResponse> *)sender;
|
|
108
|
-
- (void)responseDidAbort:(NSObject<HTTPResponse> *)sender;
|
|
109
|
-
@end
|