implement static method

NSNetServiceDelegate implement({
  1. void netServiceWillPublish_(
    1. NSNetService
    )?,
  2. void netServiceDidPublish_(
    1. NSNetService
    )?,
  3. void netService_didNotPublish_(
    1. NSNetService,
    2. NSDictionary
    )?,
  4. void netServiceWillResolve_(
    1. NSNetService
    )?,
  5. void netServiceDidResolveAddress_(
    1. NSNetService
    )?,
  6. void netService_didNotResolve_(
    1. NSNetService,
    2. NSDictionary
    )?,
  7. void netServiceDidStop_(
    1. NSNetService
    )?,
  8. void netService_didUpdateTXTRecordData_(
    1. NSNetService,
    2. NSData
    )?,
  9. void netService_didAcceptConnectionWithInputStream_outputStream_(
    1. NSNetService,
    2. NSInputStream,
    3. NSOutputStream
    )?,
  10. bool $keepIsolateAlive = true,
})

Builds an object that implements the NSNetServiceDelegate 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 NSNetServiceDelegate implement({
  void Function(NSNetService)? netServiceWillPublish_,
  void Function(NSNetService)? netServiceDidPublish_,
  void Function(NSNetService, objc.NSDictionary)? netService_didNotPublish_,
  void Function(NSNetService)? netServiceWillResolve_,
  void Function(NSNetService)? netServiceDidResolveAddress_,
  void Function(NSNetService, objc.NSDictionary)? netService_didNotResolve_,
  void Function(NSNetService)? netServiceDidStop_,
  void Function(NSNetService, objc.NSData)?
  netService_didUpdateTXTRecordData_,
  void Function(NSNetService, objc.NSInputStream, objc.NSOutputStream)?
  netService_didAcceptConnectionWithInputStream_outputStream_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(debugName: 'NSNetServiceDelegate');
  NSNetServiceDelegate.netServiceWillPublish_.implement(
    builder,
    netServiceWillPublish_,
  );
  NSNetServiceDelegate.netServiceDidPublish_.implement(
    builder,
    netServiceDidPublish_,
  );
  NSNetServiceDelegate.netService_didNotPublish_.implement(
    builder,
    netService_didNotPublish_,
  );
  NSNetServiceDelegate.netServiceWillResolve_.implement(
    builder,
    netServiceWillResolve_,
  );
  NSNetServiceDelegate.netServiceDidResolveAddress_.implement(
    builder,
    netServiceDidResolveAddress_,
  );
  NSNetServiceDelegate.netService_didNotResolve_.implement(
    builder,
    netService_didNotResolve_,
  );
  NSNetServiceDelegate.netServiceDidStop_.implement(
    builder,
    netServiceDidStop_,
  );
  NSNetServiceDelegate.netService_didUpdateTXTRecordData_.implement(
    builder,
    netService_didUpdateTXTRecordData_,
  );
  NSNetServiceDelegate
      .netService_didAcceptConnectionWithInputStream_outputStream_
      .implement(
        builder,
        netService_didAcceptConnectionWithInputStream_outputStream_,
      );
  builder.addProtocol($protocol);
  return NSNetServiceDelegate.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}