implementAsBlocking static method
NSURLProtocolClient
implementAsBlocking({
- required void URLProtocol_wasRedirectedToRequest_redirectResponse_(),
- required void URLProtocol_cachedResponseIsValid_(),
- required void URLProtocol_didReceiveResponse_cacheStoragePolicy_(),
- required void URLProtocol_didLoadData_(
- NSURLProtocol,
- NSData
- required void URLProtocolDidFinishLoading_(),
- required void URLProtocol_didFailWithError_(
- NSURLProtocol,
- NSError
- required void URLProtocol_didReceiveAuthenticationChallenge_(),
- required void URLProtocol_didCancelAuthenticationChallenge_(),
- bool $keepIsolateAlive = true,
Builds an object that implements the NSURLProtocolClient protocol. To implement
multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly. All
methods that can be implemented as blocking listeners will be.
If $keepIsolateAlive is true, this protocol will keep this isolate
alive until it is garbage collected by both Dart and ObjC.
Implementation
static NSURLProtocolClient implementAsBlocking({
required void Function(NSURLProtocol, NSURLRequest, NSURLResponse)
URLProtocol_wasRedirectedToRequest_redirectResponse_,
required void Function(NSURLProtocol, NSCachedURLResponse)
URLProtocol_cachedResponseIsValid_,
required void Function(
NSURLProtocol,
NSURLResponse,
NSURLCacheStoragePolicy,
)
URLProtocol_didReceiveResponse_cacheStoragePolicy_,
required void Function(NSURLProtocol, objc.NSData) URLProtocol_didLoadData_,
required void Function(NSURLProtocol) URLProtocolDidFinishLoading_,
required void Function(NSURLProtocol, objc.NSError)
URLProtocol_didFailWithError_,
required void Function(NSURLProtocol, NSURLAuthenticationChallenge)
URLProtocol_didReceiveAuthenticationChallenge_,
required void Function(NSURLProtocol, NSURLAuthenticationChallenge)
URLProtocol_didCancelAuthenticationChallenge_,
bool $keepIsolateAlive = true,
}) {
final builder = objc.ObjCProtocolBuilder(debugName: 'NSURLProtocolClient');
NSURLProtocolClient
.URLProtocol_wasRedirectedToRequest_redirectResponse_.implementAsBlocking(
builder,
URLProtocol_wasRedirectedToRequest_redirectResponse_,
);
NSURLProtocolClient.URLProtocol_cachedResponseIsValid_.implementAsBlocking(
builder,
URLProtocol_cachedResponseIsValid_,
);
NSURLProtocolClient
.URLProtocol_didReceiveResponse_cacheStoragePolicy_.implementAsBlocking(
builder,
URLProtocol_didReceiveResponse_cacheStoragePolicy_,
);
NSURLProtocolClient.URLProtocol_didLoadData_.implementAsBlocking(
builder,
URLProtocol_didLoadData_,
);
NSURLProtocolClient.URLProtocolDidFinishLoading_.implementAsBlocking(
builder,
URLProtocolDidFinishLoading_,
);
NSURLProtocolClient.URLProtocol_didFailWithError_.implementAsBlocking(
builder,
URLProtocol_didFailWithError_,
);
NSURLProtocolClient
.URLProtocol_didReceiveAuthenticationChallenge_.implementAsBlocking(
builder,
URLProtocol_didReceiveAuthenticationChallenge_,
);
NSURLProtocolClient
.URLProtocol_didCancelAuthenticationChallenge_.implementAsBlocking(
builder,
URLProtocol_didCancelAuthenticationChallenge_,
);
builder.addProtocol($protocol);
return NSURLProtocolClient.castFrom(
builder.build(keepIsolateAlive: $keepIsolateAlive),
);
}