implementAsBlocking static method

NSURLSessionStreamDelegate implementAsBlocking({
  1. void URLSession_readClosedForStreamTask_(
    1. NSURLSession,
    2. NSURLSessionStreamTask
    )?,
  2. void URLSession_writeClosedForStreamTask_(
    1. NSURLSession,
    2. NSURLSessionStreamTask
    )?,
  3. void URLSession_betterRouteDiscoveredForStreamTask_(
    1. NSURLSession,
    2. NSURLSessionStreamTask
    )?,
  4. void URLSession_streamTask_didBecomeInputStream_outputStream_(
    1. NSURLSession,
    2. NSURLSessionStreamTask,
    3. NSInputStream,
    4. NSOutputStream,
    )?,
  5. void URLSession_didCreateTask_(
    1. NSURLSession,
    2. NSURLSessionTask
    )?,
  6. void URLSession_task_willBeginDelayedRequest_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSURLRequest,
    4. ObjCBlock<Void Function(NSInteger, NSURLRequest?)>,
    )?,
  7. void URLSession_taskIsWaitingForConnectivity_(
    1. NSURLSession,
    2. NSURLSessionTask
    )?,
  8. void URLSession_task_willPerformHTTPRedirection_newRequest_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSHTTPURLResponse,
    4. NSURLRequest,
    5. ObjCBlock<Void Function(NSURLRequest?)>,
    )?,
  9. void URLSession_task_didReceiveChallenge_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSURLAuthenticationChallenge,
    4. ObjCBlock<Void Function(NSInteger, NSURLCredential?)>,
    )?,
  10. void URLSession_task_needNewBodyStream_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. ObjCBlock<Void Function(NSInputStream?)>
    )?,
  11. void URLSession_task_needNewBodyStreamFromOffset_completionHandler_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. int,
    4. ObjCBlock<Void Function(NSInputStream?)>,
    )?,
  12. void URLSession_task_didSendBodyData_totalBytesSent_totalBytesExpectedToSend_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. int,
    4. int,
    5. int,
    )?,
  13. void URLSession_task_didReceiveInformationalResponse_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSHTTPURLResponse
    )?,
  14. void URLSession_task_didFinishCollectingMetrics_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSURLSessionTaskMetrics
    )?,
  15. void URLSession_task_didCompleteWithError_(
    1. NSURLSession,
    2. NSURLSessionTask,
    3. NSError?
    )?,
  16. void URLSession_didBecomeInvalidWithError_(
    1. NSURLSession,
    2. NSError?
    )?,
  17. void URLSession_didReceiveChallenge_completionHandler_(
    1. NSURLSession,
    2. NSURLAuthenticationChallenge,
    3. ObjCBlock<Void Function(NSInteger, NSURLCredential?)>
    )?,
  18. void URLSessionDidFinishEventsForBackgroundURLSession_(
    1. NSURLSession
    )?,
  19. bool $keepIsolateAlive = true,
})
override

Builds an object that implements the NSURLSessionStreamDelegate 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 NSURLSessionStreamDelegate implementAsBlocking({
  void Function(NSURLSession, NSURLSessionStreamTask)?
  URLSession_readClosedForStreamTask_,
  void Function(NSURLSession, NSURLSessionStreamTask)?
  URLSession_writeClosedForStreamTask_,
  void Function(NSURLSession, NSURLSessionStreamTask)?
  URLSession_betterRouteDiscoveredForStreamTask_,
  void Function(
    NSURLSession,
    NSURLSessionStreamTask,
    objc.NSInputStream,
    objc.NSOutputStream,
  )?
  URLSession_streamTask_didBecomeInputStream_outputStream_,
  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: 'NSURLSessionStreamDelegate',
  );
  NSURLSessionStreamDelegate
      .URLSession_readClosedForStreamTask_.implementAsBlocking(
    builder,
    URLSession_readClosedForStreamTask_,
  );
  NSURLSessionStreamDelegate
      .URLSession_writeClosedForStreamTask_.implementAsBlocking(
    builder,
    URLSession_writeClosedForStreamTask_,
  );
  NSURLSessionStreamDelegate
      .URLSession_betterRouteDiscoveredForStreamTask_.implementAsBlocking(
    builder,
    URLSession_betterRouteDiscoveredForStreamTask_,
  );
  NSURLSessionStreamDelegate
      .URLSession_streamTask_didBecomeInputStream_outputStream_.implementAsBlocking(
    builder,
    URLSession_streamTask_didBecomeInputStream_outputStream_,
  );
  NSURLSessionStreamDelegate.URLSession_didCreateTask_.implementAsBlocking(
    builder,
    URLSession_didCreateTask_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_willBeginDelayedRequest_completionHandler_.implementAsBlocking(
    builder,
    URLSession_task_willBeginDelayedRequest_completionHandler_,
  );
  NSURLSessionStreamDelegate
      .URLSession_taskIsWaitingForConnectivity_.implementAsBlocking(
    builder,
    URLSession_taskIsWaitingForConnectivity_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_willPerformHTTPRedirection_newRequest_completionHandler_.implementAsBlocking(
    builder,
    URLSession_task_willPerformHTTPRedirection_newRequest_completionHandler_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_didReceiveChallenge_completionHandler_.implementAsBlocking(
    builder,
    URLSession_task_didReceiveChallenge_completionHandler_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_needNewBodyStream_.implementAsBlocking(
    builder,
    URLSession_task_needNewBodyStream_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_needNewBodyStreamFromOffset_completionHandler_.implementAsBlocking(
    builder,
    URLSession_task_needNewBodyStreamFromOffset_completionHandler_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_didSendBodyData_totalBytesSent_totalBytesExpectedToSend_.implementAsBlocking(
    builder,
    URLSession_task_didSendBodyData_totalBytesSent_totalBytesExpectedToSend_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_didReceiveInformationalResponse_.implementAsBlocking(
    builder,
    URLSession_task_didReceiveInformationalResponse_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_didFinishCollectingMetrics_.implementAsBlocking(
    builder,
    URLSession_task_didFinishCollectingMetrics_,
  );
  NSURLSessionStreamDelegate
      .URLSession_task_didCompleteWithError_.implementAsBlocking(
    builder,
    URLSession_task_didCompleteWithError_,
  );
  NSURLSessionStreamDelegate
      .URLSession_didBecomeInvalidWithError_.implementAsBlocking(
    builder,
    URLSession_didBecomeInvalidWithError_,
  );
  NSURLSessionStreamDelegate
      .URLSession_didReceiveChallenge_completionHandler_.implementAsBlocking(
    builder,
    URLSession_didReceiveChallenge_completionHandler_,
  );
  NSURLSessionStreamDelegate
      .URLSessionDidFinishEventsForBackgroundURLSession_.implementAsBlocking(
    builder,
    URLSessionDidFinishEventsForBackgroundURLSession_,
  );
  builder.addProtocol($protocol);
  return NSURLSessionStreamDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}