implement static method

NSURLSessionDataDelegate implement({
  1. void URLSession_dataTask_didReceiveResponse_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionDataTask,
    3. NSURLResponse,
    4. ObjCBlock<Void Function(NSInteger)>,
    )?,
  2. void URLSession_dataTask_didBecomeDownloadTask_(
    1. NSURLSession,
    2. NSURLSessionDataTask,
    3. NSURLSessionDownloadTask
    )?,
  3. void URLSession_dataTask_didBecomeStreamTask_(
    1. NSURLSession,
    2. NSURLSessionDataTask,
    3. NSURLSessionStreamTask
    )?,
  4. void URLSession_dataTask_didReceiveData_(
    1. NSURLSession,
    2. NSURLSessionDataTask,
    3. NSData
    )?,
  5. void URLSession_dataTask_willCacheResponse_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionDataTask,
    3. NSCachedURLResponse,
    4. ObjCBlock<Void Function(NSCachedURLResponse?)>,
    )?,
  6. void URLSession_didCreateTask_(
    1. NSURLSession,
    2. NSURLSessionTask
    )?,
  7. void URLSession_task_willBeginDelayedRequest_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSURLRequest,
    4. ObjCBlock<Void Function(NSInteger, NSURLRequest?)>,
    )?,
  8. void URLSession_taskIsWaitingForConnectivity_(
    1. NSURLSession,
    2. NSURLSessionTask
    )?,
  9. void URLSession_task_willPerformHTTPRedirection_newRequest_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSHTTPURLResponse,
    4. NSURLRequest,
    5. ObjCBlock<Void Function(NSURLRequest?)>,
    )?,
  10. void URLSession_task_didReceiveChallenge_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSURLAuthenticationChallenge,
    4. ObjCBlock<Void Function(NSInteger, NSURLCredential?)>,
    )?,
  11. void URLSession_task_needNewBodyStream_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. ObjCBlock<Void Function(NSInputStream?)>
    )?,
  12. void URLSession_task_needNewBodyStreamFromOffset_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. int,
    4. ObjCBlock<Void Function(NSInputStream?)>,
    )?,
  13. void URLSession_task_didSendBodyData_totalBytesSent_totalBytesExpectedToSend_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. int,
    4. int,
    5. int,
    )?,
  14. void URLSession_task_didReceiveInformationalResponse_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSHTTPURLResponse
    )?,
  15. void URLSession_task_didFinishCollectingMetrics_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSURLSessionTaskMetrics
    )?,
  16. void URLSession_task_didCompleteWithError_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSError?
    )?,
  17. void URLSession_didBecomeInvalidWithError_(
    1. NSURLSession,
    2. NSError?
    )?,
  18. void URLSession_didReceiveChallenge_completionHandler_(
    1. NSURLSession,
    2. NSURLAuthenticationChallenge,
    3. ObjCBlock<Void Function(NSInteger, NSURLCredential?)>
    )?,
  19. void URLSessionDidFinishEventsForBackgroundURLSession_(
    1. NSURLSession
    )?,
  20. bool $keepIsolateAlive = true,
})
override

Builds an object that implements the NSURLSessionDataDelegate protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly.

If $keepIsolateAlive is true, this protocol will keep this isolate alive until it is garbage collected by both Dart and ObjC.

Implementation

static NSURLSessionDataDelegate implement({
  void Function(
    NSURLSession,
    NSURLSessionDataTask,
    NSURLResponse,
    objc.ObjCBlock<ffi.Void Function(NSInteger)>,
  )?
  URLSession_dataTask_didReceiveResponse_completionHandler_,
  void Function(NSURLSession, NSURLSessionDataTask, NSURLSessionDownloadTask)?
  URLSession_dataTask_didBecomeDownloadTask_,
  void Function(NSURLSession, NSURLSessionDataTask, NSURLSessionStreamTask)?
  URLSession_dataTask_didBecomeStreamTask_,
  void Function(NSURLSession, NSURLSessionDataTask, objc.NSData)?
  URLSession_dataTask_didReceiveData_,
  void Function(
    NSURLSession,
    NSURLSessionDataTask,
    NSCachedURLResponse,
    objc.ObjCBlock<ffi.Void Function(NSCachedURLResponse?)>,
  )?
  URLSession_dataTask_willCacheResponse_completionHandler_,
  void Function(NSURLSession, NSURLSessionTask)? URLSession_didCreateTask_,
  void Function(
    NSURLSession,
    NSURLSessionTask,
    NSURLRequest,
    objc.ObjCBlock<ffi.Void Function(NSInteger, NSURLRequest?)>,
  )?
  URLSession_task_willBeginDelayedRequest_completionHandler_,
  void Function(NSURLSession, NSURLSessionTask)?
  URLSession_taskIsWaitingForConnectivity_,
  void Function(
    NSURLSession,
    NSURLSessionTask,
    NSHTTPURLResponse,
    NSURLRequest,
    objc.ObjCBlock<ffi.Void Function(NSURLRequest?)>,
  )?
  URLSession_task_willPerformHTTPRedirection_newRequest_completionHandler_,
  void Function(
    NSURLSession,
    NSURLSessionTask,
    NSURLAuthenticationChallenge,
    objc.ObjCBlock<ffi.Void Function(NSInteger, NSURLCredential?)>,
  )?
  URLSession_task_didReceiveChallenge_completionHandler_,
  void Function(
    NSURLSession,
    NSURLSessionTask,
    objc.ObjCBlock<ffi.Void Function(objc.NSInputStream?)>,
  )?
  URLSession_task_needNewBodyStream_,
  void Function(
    NSURLSession,
    NSURLSessionTask,
    int,
    objc.ObjCBlock<ffi.Void Function(objc.NSInputStream?)>,
  )?
  URLSession_task_needNewBodyStreamFromOffset_completionHandler_,
  void Function(NSURLSession, NSURLSessionTask, int, int, int)?
  URLSession_task_didSendBodyData_totalBytesSent_totalBytesExpectedToSend_,
  void Function(NSURLSession, NSURLSessionTask, NSHTTPURLResponse)?
  URLSession_task_didReceiveInformationalResponse_,
  void Function(NSURLSession, NSURLSessionTask, NSURLSessionTaskMetrics)?
  URLSession_task_didFinishCollectingMetrics_,
  void Function(NSURLSession, NSURLSessionTask, objc.NSError?)?
  URLSession_task_didCompleteWithError_,
  void Function(NSURLSession, objc.NSError?)?
  URLSession_didBecomeInvalidWithError_,
  void Function(
    NSURLSession,
    NSURLAuthenticationChallenge,
    objc.ObjCBlock<ffi.Void Function(NSInteger, NSURLCredential?)>,
  )?
  URLSession_didReceiveChallenge_completionHandler_,
  void Function(NSURLSession)?
  URLSessionDidFinishEventsForBackgroundURLSession_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(
    debugName: 'NSURLSessionDataDelegate',
  );
  NSURLSessionDataDelegate
      .URLSession_dataTask_didReceiveResponse_completionHandler_.implement(
    builder,
    URLSession_dataTask_didReceiveResponse_completionHandler_,
  );
  NSURLSessionDataDelegate
      .URLSession_dataTask_didBecomeDownloadTask_.implement(
    builder,
    URLSession_dataTask_didBecomeDownloadTask_,
  );
  NSURLSessionDataDelegate.URLSession_dataTask_didBecomeStreamTask_.implement(
    builder,
    URLSession_dataTask_didBecomeStreamTask_,
  );
  NSURLSessionDataDelegate.URLSession_dataTask_didReceiveData_.implement(
    builder,
    URLSession_dataTask_didReceiveData_,
  );
  NSURLSessionDataDelegate
      .URLSession_dataTask_willCacheResponse_completionHandler_.implement(
    builder,
    URLSession_dataTask_willCacheResponse_completionHandler_,
  );
  NSURLSessionDataDelegate.URLSession_didCreateTask_.implement(
    builder,
    URLSession_didCreateTask_,
  );
  NSURLSessionDataDelegate
      .URLSession_task_willBeginDelayedRequest_completionHandler_.implement(
    builder,
    URLSession_task_willBeginDelayedRequest_completionHandler_,
  );
  NSURLSessionDataDelegate.URLSession_taskIsWaitingForConnectivity_.implement(
    builder,
    URLSession_taskIsWaitingForConnectivity_,
  );
  NSURLSessionDataDelegate
      .URLSession_task_willPerformHTTPRedirection_newRequest_completionHandler_.implement(
    builder,
    URLSession_task_willPerformHTTPRedirection_newRequest_completionHandler_,
  );
  NSURLSessionDataDelegate
      .URLSession_task_didReceiveChallenge_completionHandler_.implement(
    builder,
    URLSession_task_didReceiveChallenge_completionHandler_,
  );
  NSURLSessionDataDelegate.URLSession_task_needNewBodyStream_.implement(
    builder,
    URLSession_task_needNewBodyStream_,
  );
  NSURLSessionDataDelegate
      .URLSession_task_needNewBodyStreamFromOffset_completionHandler_.implement(
    builder,
    URLSession_task_needNewBodyStreamFromOffset_completionHandler_,
  );
  NSURLSessionDataDelegate
      .URLSession_task_didSendBodyData_totalBytesSent_totalBytesExpectedToSend_.implement(
    builder,
    URLSession_task_didSendBodyData_totalBytesSent_totalBytesExpectedToSend_,
  );
  NSURLSessionDataDelegate
      .URLSession_task_didReceiveInformationalResponse_.implement(
    builder,
    URLSession_task_didReceiveInformationalResponse_,
  );
  NSURLSessionDataDelegate
      .URLSession_task_didFinishCollectingMetrics_.implement(
    builder,
    URLSession_task_didFinishCollectingMetrics_,
  );
  NSURLSessionDataDelegate.URLSession_task_didCompleteWithError_.implement(
    builder,
    URLSession_task_didCompleteWithError_,
  );
  NSURLSessionDataDelegate.URLSession_didBecomeInvalidWithError_.implement(
    builder,
    URLSession_didBecomeInvalidWithError_,
  );
  NSURLSessionDataDelegate
      .URLSession_didReceiveChallenge_completionHandler_.implement(
    builder,
    URLSession_didReceiveChallenge_completionHandler_,
  );
  NSURLSessionDataDelegate
      .URLSessionDidFinishEventsForBackgroundURLSession_.implement(
    builder,
    URLSessionDidFinishEventsForBackgroundURLSession_,
  );
  builder.addProtocol($protocol);
  return NSURLSessionDataDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}