diff --git a/pkgs/swift2objc/lib/src/ast/declarations/built_in/built_in_declaration.dart b/pkgs/swift2objc/lib/src/ast/declarations/built_in/built_in_declaration.dart index 9c75ba42f1..2634cd110a 100644 --- a/pkgs/swift2objc/lib/src/ast/declarations/built_in/built_in_declaration.dart +++ b/pkgs/swift2objc/lib/src/ast/declarations/built_in/built_in_declaration.dart @@ -8,6 +8,8 @@ import '../../_core/interfaces/objc_annotatable.dart'; /// Describes a built-in Swift type (e.g Int, String, etc). enum BuiltInDeclaration implements Declaration, ObjCAnnotatable { swiftNSObject(id: 'c:objc(cs)NSObject', name: 'NSObject'), + swiftURL(id: 's:10Foundation3URLV', name: 'URL'), // HACK + swiftTimeInterval(id: 'c:@T@NSTimeInterval', name: 'TimeInterval'), // HACK swiftString(id: 's:SS', name: 'String'), swiftInt(id: 's:Si', name: 'Int'), swiftFloat(id: 's:Sf', name: 'Float'), diff --git a/pkgs/swiftgen/example/.gitignore b/pkgs/swiftgen/example/.gitignore new file mode 100644 index 0000000000..a6d7ecd9ea --- /dev/null +++ b/pkgs/swiftgen/example/.gitignore @@ -0,0 +1 @@ +temp/ diff --git a/pkgs/swiftgen/example/avf_audio_bindings.dart b/pkgs/swiftgen/example/avf_audio_bindings.dart new file mode 100644 index 0000000000..ee3cf3c226 --- /dev/null +++ b/pkgs/swiftgen/example/avf_audio_bindings.dart @@ -0,0 +1,646 @@ +// AUTO GENERATED FILE, DO NOT EDIT. +// +// Generated by `package:ffigen`. +// ignore_for_file: type=lint +import 'dart:ffi' as ffi; +import 'package:objective_c/objective_c.dart' as objc; + +final class _NSZone extends ffi.Opaque {} + +/// WARNING: AVAudioFormatWrapper is a stub. To generate bindings for this class, include +/// AVAudioFormatWrapper in your config's objc-interfaces list. +/// +/// AVAudioFormatWrapper +class AVAudioFormatWrapper extends objc.NSObject { + AVAudioFormatWrapper._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [AVAudioFormatWrapper] that points to the same underlying object as [other]. + AVAudioFormatWrapper.castFrom(objc.ObjCObjectBase other) + : this._(other.ref.pointer, retain: true, release: true); + + /// Constructs a [AVAudioFormatWrapper] that wraps the given raw object pointer. + AVAudioFormatWrapper.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); +} + +late final _class_AVAudioPlayerWrapper = + objc.getClass("AVFAudioWrapper.AVAudioPlayerWrapper"); +late final _sel_isKindOfClass_ = objc.registerName("isKindOfClass:"); +final _objc_msgSend_69e0x1 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_currentDevice = objc.registerName("currentDevice"); +final _objc_msgSend_1x359cv = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCurrentDevice_ = objc.registerName("setCurrentDevice:"); +final _objc_msgSend_1jdvcbf = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_currentTime = objc.registerName("currentTime"); +final _objc_msgSend_1ukqyt8 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Double Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_1ukqyt8Fpret = objc.msgSendFpretPointer + .cast< + ffi.NativeFunction< + ffi.Double Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCurrentTime_ = objc.registerName("setCurrentTime:"); +final _objc_msgSend_hwm8nu = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Double)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, double)>(); +late final _sel_deviceCurrentTime = objc.registerName("deviceCurrentTime"); +late final _sel_duration = objc.registerName("duration"); +late final _sel_enableRate = objc.registerName("enableRate"); +final _objc_msgSend_91o635 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setEnableRate_ = objc.registerName("setEnableRate:"); +final _objc_msgSend_1s56lr9 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Bool)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, bool)>(); +late final _sel_format = objc.registerName("format"); +late final _sel_isMeteringEnabled = objc.registerName("isMeteringEnabled"); +late final _sel_setIsMeteringEnabled_ = + objc.registerName("setIsMeteringEnabled:"); +late final _sel_numberOfChannels = objc.registerName("numberOfChannels"); +final _objc_msgSend_1hz7y9r = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_numberOfLoops = objc.registerName("numberOfLoops"); +late final _sel_setNumberOfLoops_ = objc.registerName("setNumberOfLoops:"); +final _objc_msgSend_4sp4xj = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_pan = objc.registerName("pan"); +final _objc_msgSend_2cgrxl = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Float Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_2cgrxlFpret = objc.msgSendFpretPointer + .cast< + ffi.NativeFunction< + ffi.Float Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setPan_ = objc.registerName("setPan:"); +final _objc_msgSend_v5hmet = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Float)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, double)>(); +late final _sel_isPlaying = objc.registerName("isPlaying"); +late final _sel_rate = objc.registerName("rate"); +late final _sel_setRate_ = objc.registerName("setRate:"); +late final _sel_url = objc.registerName("url"); +late final _sel_volume = objc.registerName("volume"); +late final _sel_setVolume_ = objc.registerName("setVolume:"); +typedef instancetype = ffi.Pointer; +typedef Dartinstancetype = objc.ObjCObjectBase; +late final _sel_initWithContentsOf_error_ = + objc.registerName("initWithContentsOf:error:"); +final _objc_msgSend_1705co6 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_initWithContentsOf_fileTypeHint_error_ = + objc.registerName("initWithContentsOf:fileTypeHint:error:"); +final _objc_msgSend_bo6ep4 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_averagePowerForChannel_ = + objc.registerName("averagePowerForChannel:"); +final _objc_msgSend_1o3b4v9 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Float Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + double Function(ffi.Pointer, + ffi.Pointer, int)>(); +final _objc_msgSend_1o3b4v9Fpret = objc.msgSendFpretPointer + .cast< + ffi.NativeFunction< + ffi.Float Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + double Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_pause = objc.registerName("pause"); +final _objc_msgSend_1pl9qdv = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_peakPowerForChannel_ = + objc.registerName("peakPowerForChannel:"); +late final _sel_play = objc.registerName("play"); +late final _sel_playAtTime_ = objc.registerName("playAtTime:"); +final _objc_msgSend_18chyc = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.Double)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, double)>(); +late final _sel_prepareToPlay = objc.registerName("prepareToPlay"); +late final _sel_setVolume_fadeDuration_ = + objc.registerName("setVolume:fadeDuration:"); +final _objc_msgSend_1p4uk9e = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Float, ffi.Double)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, double, double)>(); +late final _sel_stop = objc.registerName("stop"); +late final _sel_updateMeters = objc.registerName("updateMeters"); +late final _sel_init = objc.registerName("init"); +late final _sel_new = objc.registerName("new"); +late final _sel_allocWithZone_ = objc.registerName("allocWithZone:"); +final _objc_msgSend_hzlb60 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<_NSZone>)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<_NSZone>)>(); +late final _sel_alloc = objc.registerName("alloc"); +late final _sel_self = objc.registerName("self"); +ffi.Pointer _ObjCBlock_objcObjCObject_ffiVoid_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer arg0)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer)>()(arg0); +ffi.Pointer _ObjCBlock_objcObjCObject_ffiVoid_fnPtrCallable = + ffi.Pointer.fromFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>( + _ObjCBlock_objcObjCObject_ffiVoid_fnPtrTrampoline) + .cast(); +ffi.Pointer + _ObjCBlock_objcObjCObject_ffiVoid_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0) => + (objc.getBlockClosure(block) as ffi.Pointer Function( + ffi.Pointer))(arg0); +ffi.Pointer _ObjCBlock_objcObjCObject_ffiVoid_closureCallable = + ffi.Pointer.fromFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>( + _ObjCBlock_objcObjCObject_ffiVoid_closureTrampoline) + .cast(); + +/// Construction methods for `objc.ObjCBlock Function(ffi.Pointer)>`. +abstract final class ObjCBlock_objcObjCObject_ffiVoid { + /// Returns a block that wraps the given raw block pointer. + static objc + .ObjCBlock Function(ffi.Pointer)> + castFromPointer(ffi.Pointer pointer, + {bool retain = false, bool release = false}) => + objc.ObjCBlock< + ffi.Pointer Function(ffi.Pointer)>( + pointer, + retain: retain, + release: release); + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + static objc.ObjCBlock Function(ffi.Pointer)> + fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer arg0)>> + ptr) => + objc.ObjCBlock Function(ffi.Pointer)>( + objc.newPointerBlock(_ObjCBlock_objcObjCObject_ffiVoid_fnPtrCallable, ptr.cast()), + retain: false, + release: true); + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + static objc + .ObjCBlock Function(ffi.Pointer)> + fromFunction(objc.ObjCObjectBase Function(ffi.Pointer) fn) => + objc.ObjCBlock< + ffi.Pointer Function(ffi.Pointer)>( + objc.newClosureBlock( + _ObjCBlock_objcObjCObject_ffiVoid_closureCallable, + (ffi.Pointer arg0) => + fn(arg0).ref.retainAndAutorelease()), + retain: false, + release: true); +} + +/// Call operator for `objc.ObjCBlock Function(ffi.Pointer)>`. +extension ObjCBlock_objcObjCObject_ffiVoid_CallExtension on objc + .ObjCBlock Function(ffi.Pointer)> { + objc.ObjCObjectBase call(ffi.Pointer arg0) => objc.ObjCObjectBase( + ref.pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer)>()(ref.pointer, arg0), + retain: true, + release: true); +} + +late final _sel_retain = objc.registerName("retain"); +late final _sel_autorelease = objc.registerName("autorelease"); + +/// AVAudioPlayerWrapper +class AVAudioPlayerWrapper extends objc.NSObject { + AVAudioPlayerWrapper._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [AVAudioPlayerWrapper] that points to the same underlying object as [other]. + AVAudioPlayerWrapper.castFrom(objc.ObjCObjectBase other) + : this._(other.ref.pointer, retain: true, release: true); + + /// Constructs a [AVAudioPlayerWrapper] that wraps the given raw object pointer. + AVAudioPlayerWrapper.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [AVAudioPlayerWrapper]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_69e0x1( + obj.ref.pointer, _sel_isKindOfClass_, _class_AVAudioPlayerWrapper); + } + + /// currentDevice + objc.NSString? get currentDevice { + final _ret = _objc_msgSend_1x359cv(this.ref.pointer, _sel_currentDevice); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setCurrentDevice: + set currentDevice(objc.NSString? value) { + _objc_msgSend_1jdvcbf(this.ref.pointer, _sel_setCurrentDevice_, + value?.ref.pointer ?? ffi.nullptr); + } + + /// currentTime + double get currentTime { + return objc.useMsgSendVariants + ? _objc_msgSend_1ukqyt8Fpret(this.ref.pointer, _sel_currentTime) + : _objc_msgSend_1ukqyt8(this.ref.pointer, _sel_currentTime); + } + + /// setCurrentTime: + set currentTime(double value) { + _objc_msgSend_hwm8nu(this.ref.pointer, _sel_setCurrentTime_, value); + } + + /// deviceCurrentTime + double get deviceCurrentTime { + return objc.useMsgSendVariants + ? _objc_msgSend_1ukqyt8Fpret(this.ref.pointer, _sel_deviceCurrentTime) + : _objc_msgSend_1ukqyt8(this.ref.pointer, _sel_deviceCurrentTime); + } + + /// duration + double get duration { + return objc.useMsgSendVariants + ? _objc_msgSend_1ukqyt8Fpret(this.ref.pointer, _sel_duration) + : _objc_msgSend_1ukqyt8(this.ref.pointer, _sel_duration); + } + + /// enableRate + bool get enableRate { + return _objc_msgSend_91o635(this.ref.pointer, _sel_enableRate); + } + + /// setEnableRate: + set enableRate(bool value) { + _objc_msgSend_1s56lr9(this.ref.pointer, _sel_setEnableRate_, value); + } + + /// format + AVAudioFormatWrapper get format { + final _ret = _objc_msgSend_1x359cv(this.ref.pointer, _sel_format); + return AVAudioFormatWrapper.castFromPointer(_ret, + retain: true, release: true); + } + + /// isMeteringEnabled + bool get isMeteringEnabled { + return _objc_msgSend_91o635(this.ref.pointer, _sel_isMeteringEnabled); + } + + /// setIsMeteringEnabled: + set isMeteringEnabled(bool value) { + _objc_msgSend_1s56lr9(this.ref.pointer, _sel_setIsMeteringEnabled_, value); + } + + /// numberOfChannels + int get numberOfChannels { + return _objc_msgSend_1hz7y9r(this.ref.pointer, _sel_numberOfChannels); + } + + /// numberOfLoops + int get numberOfLoops { + return _objc_msgSend_1hz7y9r(this.ref.pointer, _sel_numberOfLoops); + } + + /// setNumberOfLoops: + set numberOfLoops(int value) { + _objc_msgSend_4sp4xj(this.ref.pointer, _sel_setNumberOfLoops_, value); + } + + /// pan + double get pan { + return objc.useMsgSendVariants + ? _objc_msgSend_2cgrxlFpret(this.ref.pointer, _sel_pan) + : _objc_msgSend_2cgrxl(this.ref.pointer, _sel_pan); + } + + /// setPan: + set pan(double value) { + _objc_msgSend_v5hmet(this.ref.pointer, _sel_setPan_, value); + } + + /// isPlaying + bool get isPlaying { + return _objc_msgSend_91o635(this.ref.pointer, _sel_isPlaying); + } + + /// rate + double get rate { + return objc.useMsgSendVariants + ? _objc_msgSend_2cgrxlFpret(this.ref.pointer, _sel_rate) + : _objc_msgSend_2cgrxl(this.ref.pointer, _sel_rate); + } + + /// setRate: + set rate(double value) { + _objc_msgSend_v5hmet(this.ref.pointer, _sel_setRate_, value); + } + + /// url + objc.NSURL? get url { + final _ret = _objc_msgSend_1x359cv(this.ref.pointer, _sel_url); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// volume + double get volume { + return objc.useMsgSendVariants + ? _objc_msgSend_2cgrxlFpret(this.ref.pointer, _sel_volume) + : _objc_msgSend_2cgrxl(this.ref.pointer, _sel_volume); + } + + /// setVolume: + set volume(double value) { + _objc_msgSend_v5hmet(this.ref.pointer, _sel_setVolume_, value); + } + + /// initWithContentsOf:error: + AVAudioPlayerWrapper? initWithContentsOf_error_( + objc.NSURL url, ffi.Pointer> error) { + final _ret = _objc_msgSend_1705co6(this.ref.retainAndReturnPointer(), + _sel_initWithContentsOf_error_, url.ref.pointer, error); + return _ret.address == 0 + ? null + : AVAudioPlayerWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// initWithContentsOf:fileTypeHint:error: + AVAudioPlayerWrapper? initWithContentsOf_fileTypeHint_error_( + objc.NSURL url, + objc.NSString? utiString, + ffi.Pointer> error) { + final _ret = _objc_msgSend_bo6ep4( + this.ref.retainAndReturnPointer(), + _sel_initWithContentsOf_fileTypeHint_error_, + url.ref.pointer, + utiString?.ref.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : AVAudioPlayerWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// averagePowerForChannel: + double averagePowerForChannel_(int channelNumber) { + return objc.useMsgSendVariants + ? _objc_msgSend_1o3b4v9Fpret( + this.ref.pointer, _sel_averagePowerForChannel_, channelNumber) + : _objc_msgSend_1o3b4v9( + this.ref.pointer, _sel_averagePowerForChannel_, channelNumber); + } + + /// pause + void pause() { + _objc_msgSend_1pl9qdv(this.ref.pointer, _sel_pause); + } + + /// peakPowerForChannel: + double peakPowerForChannel_(int channelNumber) { + return objc.useMsgSendVariants + ? _objc_msgSend_1o3b4v9Fpret( + this.ref.pointer, _sel_peakPowerForChannel_, channelNumber) + : _objc_msgSend_1o3b4v9( + this.ref.pointer, _sel_peakPowerForChannel_, channelNumber); + } + + /// play + bool play() { + return _objc_msgSend_91o635(this.ref.pointer, _sel_play); + } + + /// playAtTime: + bool playAtTime_(double time) { + return _objc_msgSend_18chyc(this.ref.pointer, _sel_playAtTime_, time); + } + + /// prepareToPlay + bool prepareToPlay() { + return _objc_msgSend_91o635(this.ref.pointer, _sel_prepareToPlay); + } + + /// setVolume:fadeDuration: + void setVolume_fadeDuration_(double volume, double duration) { + _objc_msgSend_1p4uk9e( + this.ref.pointer, _sel_setVolume_fadeDuration_, volume, duration); + } + + /// stop + void stop() { + _objc_msgSend_1pl9qdv(this.ref.pointer, _sel_stop); + } + + /// updateMeters + void updateMeters() { + _objc_msgSend_1pl9qdv(this.ref.pointer, _sel_updateMeters); + } + + /// init + AVAudioPlayerWrapper init() { + final _ret = + _objc_msgSend_1x359cv(this.ref.retainAndReturnPointer(), _sel_init); + return AVAudioPlayerWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// new + static AVAudioPlayerWrapper new1() { + final _ret = _objc_msgSend_1x359cv(_class_AVAudioPlayerWrapper, _sel_new); + return AVAudioPlayerWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static AVAudioPlayerWrapper allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_hzlb60( + _class_AVAudioPlayerWrapper, _sel_allocWithZone_, zone); + return AVAudioPlayerWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static AVAudioPlayerWrapper alloc() { + final _ret = _objc_msgSend_1x359cv(_class_AVAudioPlayerWrapper, _sel_alloc); + return AVAudioPlayerWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// self + AVAudioPlayerWrapper self() { + final _ret = _objc_msgSend_1x359cv(this.ref.pointer, _sel_self); + return AVAudioPlayerWrapper.castFromPointer(_ret, + retain: true, release: true); + } + + /// retain + AVAudioPlayerWrapper retain() { + final _ret = _objc_msgSend_1x359cv(this.ref.pointer, _sel_retain); + return AVAudioPlayerWrapper.castFromPointer(_ret, + retain: true, release: true); + } + + /// autorelease + AVAudioPlayerWrapper autorelease() { + final _ret = _objc_msgSend_1x359cv(this.ref.pointer, _sel_autorelease); + return AVAudioPlayerWrapper.castFromPointer(_ret, + retain: true, release: true); + } +} diff --git a/pkgs/swiftgen/example/avf_audio_wrapper.swift b/pkgs/swiftgen/example/avf_audio_wrapper.swift new file mode 100644 index 0000000000..0b24833469 --- /dev/null +++ b/pkgs/swiftgen/example/avf_audio_wrapper.swift @@ -0,0 +1,2867 @@ + +import AVFAudio +import Foundation + +@objc public class AVAudioPlayerNodeBufferOptionsWrapper: NSObject { + var wrappedInstance: AVAudioPlayerNodeBufferOptions + + @objc static public var interrupts: AVAudioPlayerNodeBufferOptionsWrapper { + get { + AVAudioPlayerNodeBufferOptionsWrapper(AVAudioPlayerNodeBufferOptions.interrupts) + } + } + + @objc static public var interruptsAtLoop: AVAudioPlayerNodeBufferOptionsWrapper { + get { + AVAudioPlayerNodeBufferOptionsWrapper(AVAudioPlayerNodeBufferOptions.interruptsAtLoop) + } + } + + @objc static public var loops: AVAudioPlayerNodeBufferOptionsWrapper { + get { + AVAudioPlayerNodeBufferOptionsWrapper(AVAudioPlayerNodeBufferOptions.loops) + } + } + + @objc public var isEmpty: Bool { + get { + wrappedInstance.isEmpty + } + } + + init(_ wrappedInstance: AVAudioPlayerNodeBufferOptions) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioPlayerNodeBufferOptions() + } + +} + +@objc public class AVAudioSessionActivationOptionsWrapper: NSObject { + var wrappedInstance: AVAudioSessionActivationOptions + + @objc public var isEmpty: Bool { + get { + wrappedInstance.isEmpty + } + } + + init(_ wrappedInstance: AVAudioSessionActivationOptions) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioSessionActivationOptions() + } + +} + +@objc public class AVMusicSequenceLoadOptionsWrapper: NSObject { + var wrappedInstance: AVMusicSequenceLoadOptions + + @objc static public var smf_ChannelsToTracks: AVMusicSequenceLoadOptionsWrapper { + get { + AVMusicSequenceLoadOptionsWrapper(AVMusicSequenceLoadOptions.smf_ChannelsToTracks) + } + } + + @objc public var isEmpty: Bool { + get { + wrappedInstance.isEmpty + } + } + + init(_ wrappedInstance: AVMusicSequenceLoadOptions) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVMusicSequenceLoadOptions() + } + +} + +@objc public class AVAudio3DAngularOrientationWrapper: NSObject { + var wrappedInstance: AVAudio3DAngularOrientation + + @objc public var pitch: Float { + get { + wrappedInstance.pitch + } + set { + wrappedInstance.pitch = newValue + } + } + + @objc public var roll: Float { + get { + wrappedInstance.roll + } + set { + wrappedInstance.roll = newValue + } + } + + @objc public var yaw: Float { + get { + wrappedInstance.yaw + } + set { + wrappedInstance.yaw = newValue + } + } + + init(_ wrappedInstance: AVAudio3DAngularOrientation) { + self.wrappedInstance = wrappedInstance + } + + @objc init(yaw: Float, pitch: Float, roll: Float) { + wrappedInstance = AVAudio3DAngularOrientation(yaw: yaw, pitch: pitch, roll: roll) + } + + @objc override init() { + wrappedInstance = AVAudio3DAngularOrientation() + } + +} + +@objc public class AVAudio3DPointWrapper: NSObject { + var wrappedInstance: AVAudio3DPoint + + @objc public var x: Float { + get { + wrappedInstance.x + } + set { + wrappedInstance.x = newValue + } + } + + @objc public var y: Float { + get { + wrappedInstance.y + } + set { + wrappedInstance.y = newValue + } + } + + @objc public var z: Float { + get { + wrappedInstance.z + } + set { + wrappedInstance.z = newValue + } + } + + init(_ wrappedInstance: AVAudio3DPoint) { + self.wrappedInstance = wrappedInstance + } + + @objc init(x: Float, y: Float, z: Float) { + wrappedInstance = AVAudio3DPoint(x: x, y: y, z: z) + } + + @objc override init() { + wrappedInstance = AVAudio3DPoint() + } + +} + +@objc public class AVAudio3DVectorOrientationWrapper: NSObject { + var wrappedInstance: AVAudio3DVectorOrientation + + init(_ wrappedInstance: AVAudio3DVectorOrientation) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudio3DVectorOrientation() + } + +} + +@objc public class AVAudioConverterPrimeInfoWrapper: NSObject { + var wrappedInstance: AVAudioConverterPrimeInfo + + init(_ wrappedInstance: AVAudioConverterPrimeInfo) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioConverterPrimeInfo() + } + +} + +@objc public class AVAudioVoiceProcessingOtherAudioDuckingConfigurationWrapper: NSObject { + var wrappedInstance: AVAudioVoiceProcessingOtherAudioDuckingConfiguration + + init(_ wrappedInstance: AVAudioVoiceProcessingOtherAudioDuckingConfiguration) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioVoiceProcessingOtherAudioDuckingConfiguration() + } + +} + +@objc public class AVAUPresetEventWrapper: NSObject { + var wrappedInstance: AVAUPresetEvent + + init(_ wrappedInstance: AVAUPresetEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioApplicationWrapper: NSObject { + var wrappedInstance: AVAudioApplication + + @objc static public var muteStateKey: String { + get { + AVAudioApplication.muteStateKey + } + } + + @objc static public var shared: AVAudioApplicationWrapper { + get { + AVAudioApplicationWrapper(AVAudioApplication.shared) + } + } + + @objc public var isInputMuted: Bool { + get { + wrappedInstance.isInputMuted + } + } + + init(_ wrappedInstance: AVAudioApplication) { + self.wrappedInstance = wrappedInstance + } + + @objc public func setInputMuted(_ muted: Bool) throws { + return try wrappedInstance.setInputMuted(muted) + } + +} + +@objc public class AVAudioBufferWrapper: NSObject { + var wrappedInstance: AVAudioBuffer + + @objc public var format: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.format) + } + } + + init(_ wrappedInstance: AVAudioBuffer) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioChannelLayoutWrapper: NSObject { + var wrappedInstance: AVAudioChannelLayout + + init(_ wrappedInstance: AVAudioChannelLayout) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioCompressedBufferWrapper: NSObject { + var wrappedInstance: AVAudioCompressedBuffer + + @objc public var maximumPacketSize: Int { + get { + wrappedInstance.maximumPacketSize + } + } + + init(_ wrappedInstance: AVAudioCompressedBuffer) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioConnectionPointWrapper: NSObject { + var wrappedInstance: AVAudioConnectionPoint + + @objc public var node: AVAudioNodeWrapper? { + get { + wrappedInstance.node == nil ? nil : AVAudioNodeWrapper(wrappedInstance.node!) + } + } + + init(_ wrappedInstance: AVAudioConnectionPoint) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioConverterWrapper: NSObject { + var wrappedInstance: AVAudioConverter + + @objc public var bitRate: Int { + get { + wrappedInstance.bitRate + } + set { + wrappedInstance.bitRate = newValue + } + } + + @objc public var bitRateStrategy: String? { + get { + wrappedInstance.bitRateStrategy + } + set { + wrappedInstance.bitRateStrategy = newValue + } + } + + @objc public var dither: Bool { + get { + wrappedInstance.dither + } + set { + wrappedInstance.dither = newValue + } + } + + @objc public var downmix: Bool { + get { + wrappedInstance.downmix + } + set { + wrappedInstance.downmix = newValue + } + } + + @objc public var inputFormat: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.inputFormat) + } + } + + @objc public var maximumOutputPacketSize: Int { + get { + wrappedInstance.maximumOutputPacketSize + } + } + + @objc public var outputFormat: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.outputFormat) + } + } + + @objc public var primeInfo: AVAudioConverterPrimeInfoWrapper { + get { + AVAudioConverterPrimeInfoWrapper(wrappedInstance.primeInfo) + } + set { + wrappedInstance.primeInfo = newValue.wrappedInstance + } + } + + @objc public var sampleRateConverterAlgorithm: String? { + get { + wrappedInstance.sampleRateConverterAlgorithm + } + set { + wrappedInstance.sampleRateConverterAlgorithm = newValue + } + } + + @objc public var sampleRateConverterQuality: Int { + get { + wrappedInstance.sampleRateConverterQuality + } + set { + wrappedInstance.sampleRateConverterQuality = newValue + } + } + + init(_ wrappedInstance: AVAudioConverter) { + self.wrappedInstance = wrappedInstance + } + + @objc init?(from fromFormat: AVAudioFormatWrapper, to toFormat: AVAudioFormatWrapper) { + if let instance = AVAudioConverter(from: fromFormat.wrappedInstance, to: toFormat.wrappedInstance) { + wrappedInstance = instance + } else { + return nil + } + } + + @objc public func convert(to outputBuffer: AVAudioPCMBufferWrapper, from inputBuffer: AVAudioPCMBufferWrapper) throws { + return try wrappedInstance.convert(to: outputBuffer.wrappedInstance, from: inputBuffer.wrappedInstance) + } + + @objc public func reset() { + return wrappedInstance.reset() + } + +} + +@objc public class AVAudioEngineWrapper: NSObject { + var wrappedInstance: AVAudioEngine + + @objc public var isAutoShutdownEnabled: Bool { + get { + wrappedInstance.isAutoShutdownEnabled + } + set { + wrappedInstance.isAutoShutdownEnabled = newValue + } + } + + @objc public var inputNode: AVAudioInputNodeWrapper { + get { + AVAudioInputNodeWrapper(wrappedInstance.inputNode) + } + } + + @objc public var isInManualRenderingMode: Bool { + get { + wrappedInstance.isInManualRenderingMode + } + } + + @objc public var mainMixerNode: AVAudioMixerNodeWrapper { + get { + AVAudioMixerNodeWrapper(wrappedInstance.mainMixerNode) + } + } + + @objc public var manualRenderingFormat: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.manualRenderingFormat) + } + } + + @objc public var outputNode: AVAudioOutputNodeWrapper { + get { + AVAudioOutputNodeWrapper(wrappedInstance.outputNode) + } + } + + @objc public var isRunning: Bool { + get { + wrappedInstance.isRunning + } + } + + init(_ wrappedInstance: AVAudioEngine) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioEngine() + } + + @objc public func attach(_ node: AVAudioNodeWrapper) { + return wrappedInstance.attach(node.wrappedInstance) + } + + @objc public func connect(_ node1: AVAudioNodeWrapper, to node2: AVAudioNodeWrapper, format: AVAudioFormatWrapper?) { + return wrappedInstance.connect(node1.wrappedInstance, to: node2.wrappedInstance, format: format?.wrappedInstance) + } + + @objc public func detach(_ node: AVAudioNodeWrapper) { + return wrappedInstance.detach(node.wrappedInstance) + } + + @objc public func disableManualRenderingMode() { + return wrappedInstance.disableManualRenderingMode() + } + + @objc public func disconnectMIDI(_ sourceNode: AVAudioNodeWrapper, from destinationNode: AVAudioNodeWrapper) { + return wrappedInstance.disconnectMIDI(sourceNode.wrappedInstance, from: destinationNode.wrappedInstance) + } + + @objc public func disconnectMIDIInput(_ node: AVAudioNodeWrapper) { + return wrappedInstance.disconnectMIDIInput(node.wrappedInstance) + } + + @objc public func disconnectMIDIOutput(_ node: AVAudioNodeWrapper) { + return wrappedInstance.disconnectMIDIOutput(node.wrappedInstance) + } + + @objc public func disconnectNodeInput(_ node: AVAudioNodeWrapper) { + return wrappedInstance.disconnectNodeInput(node.wrappedInstance) + } + + @objc public func disconnectNodeOutput(_ node: AVAudioNodeWrapper) { + return wrappedInstance.disconnectNodeOutput(node.wrappedInstance) + } + + @objc public func pause() { + return wrappedInstance.pause() + } + + @objc public func prepare() { + return wrappedInstance.prepare() + } + + @objc public func reset() { + return wrappedInstance.reset() + } + + @objc public func start() throws { + return try wrappedInstance.start() + } + + @objc public func stop() { + return wrappedInstance.stop() + } + +} + +@objc public class AVAudioEnvironmentDistanceAttenuationParametersWrapper: NSObject { + var wrappedInstance: AVAudioEnvironmentDistanceAttenuationParameters + + @objc public var maximumDistance: Float { + get { + wrappedInstance.maximumDistance + } + set { + wrappedInstance.maximumDistance = newValue + } + } + + @objc public var referenceDistance: Float { + get { + wrappedInstance.referenceDistance + } + set { + wrappedInstance.referenceDistance = newValue + } + } + + @objc public var rolloffFactor: Float { + get { + wrappedInstance.rolloffFactor + } + set { + wrappedInstance.rolloffFactor = newValue + } + } + + init(_ wrappedInstance: AVAudioEnvironmentDistanceAttenuationParameters) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioEnvironmentNodeWrapper: NSObject { + var wrappedInstance: AVAudioEnvironmentNode + + @objc public var distanceAttenuationParameters: AVAudioEnvironmentDistanceAttenuationParametersWrapper { + get { + AVAudioEnvironmentDistanceAttenuationParametersWrapper(wrappedInstance.distanceAttenuationParameters) + } + } + + @objc public var listenerAngularOrientation: AVAudio3DAngularOrientationWrapper { + get { + AVAudio3DAngularOrientationWrapper(wrappedInstance.listenerAngularOrientation) + } + set { + wrappedInstance.listenerAngularOrientation = newValue.wrappedInstance + } + } + + @objc public var listenerPosition: AVAudio3DPointWrapper { + get { + AVAudio3DPointWrapper(wrappedInstance.listenerPosition) + } + set { + wrappedInstance.listenerPosition = newValue.wrappedInstance + } + } + + @objc public var listenerVectorOrientation: AVAudio3DVectorOrientationWrapper { + get { + AVAudio3DVectorOrientationWrapper(wrappedInstance.listenerVectorOrientation) + } + set { + wrappedInstance.listenerVectorOrientation = newValue.wrappedInstance + } + } + + @objc public var outputVolume: Float { + get { + wrappedInstance.outputVolume + } + set { + wrappedInstance.outputVolume = newValue + } + } + + @objc public var reverbParameters: AVAudioEnvironmentReverbParametersWrapper { + get { + AVAudioEnvironmentReverbParametersWrapper(wrappedInstance.reverbParameters) + } + } + + init(_ wrappedInstance: AVAudioEnvironmentNode) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioEnvironmentNode() + } + +} + +@objc public class AVAudioEnvironmentReverbParametersWrapper: NSObject { + var wrappedInstance: AVAudioEnvironmentReverbParameters + + @objc public var enable: Bool { + get { + wrappedInstance.enable + } + set { + wrappedInstance.enable = newValue + } + } + + @objc public var filterParameters: AVAudioUnitEQFilterParametersWrapper { + get { + AVAudioUnitEQFilterParametersWrapper(wrappedInstance.filterParameters) + } + } + + @objc public var level: Float { + get { + wrappedInstance.level + } + set { + wrappedInstance.level = newValue + } + } + + init(_ wrappedInstance: AVAudioEnvironmentReverbParameters) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioFileWrapper: NSObject { + var wrappedInstance: AVAudioFile + + @objc public var fileFormat: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.fileFormat) + } + } + + @objc public var processingFormat: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.processingFormat) + } + } + + @objc public var url: URL { + get { + wrappedInstance.url + } + } + + init(_ wrappedInstance: AVAudioFile) { + self.wrappedInstance = wrappedInstance + } + + @objc init(forReading fileURL: URL) throws { + wrappedInstance = try AVAudioFile(forReading: fileURL) + } + + @objc public func read(into buffer: AVAudioPCMBufferWrapper) throws { + return try wrappedInstance.read(into: buffer.wrappedInstance) + } + + @objc public func write(from buffer: AVAudioPCMBufferWrapper) throws { + return try wrappedInstance.write(from: buffer.wrappedInstance) + } + +} + +@objc public class AVAudioFormatWrapper: NSObject { + var wrappedInstance: AVAudioFormat + + @objc public var channelLayout: AVAudioChannelLayoutWrapper? { + get { + wrappedInstance.channelLayout == nil ? nil : AVAudioChannelLayoutWrapper(wrappedInstance.channelLayout!) + } + } + + @objc public var isInterleaved: Bool { + get { + wrappedInstance.isInterleaved + } + } + + @objc public var sampleRate: Double { + get { + wrappedInstance.sampleRate + } + } + + @objc public var isStandard: Bool { + get { + wrappedInstance.isStandard + } + } + + init(_ wrappedInstance: AVAudioFormat) { + self.wrappedInstance = wrappedInstance + } + + @objc init(standardFormatWithSampleRate sampleRate: Double, channelLayout layout: AVAudioChannelLayoutWrapper) { + wrappedInstance = AVAudioFormat(standardFormatWithSampleRate: sampleRate, channelLayout: layout.wrappedInstance) + } + +} + +@objc public class AVAudioIONodeWrapper: NSObject { + var wrappedInstance: AVAudioIONode + + @objc public var presentationLatency: TimeInterval { + get { + wrappedInstance.presentationLatency + } + } + + @objc public var isVoiceProcessingEnabled: Bool { + get { + wrappedInstance.isVoiceProcessingEnabled + } + } + + init(_ wrappedInstance: AVAudioIONode) { + self.wrappedInstance = wrappedInstance + } + + @objc public func setVoiceProcessingEnabled(_ enabled: Bool) throws { + return try wrappedInstance.setVoiceProcessingEnabled(enabled) + } + +} + +@objc public class AVAudioInputNodeWrapper: NSObject { + var wrappedInstance: AVAudioInputNode + + @objc public var isVoiceProcessingAGCEnabled: Bool { + get { + wrappedInstance.isVoiceProcessingAGCEnabled + } + set { + wrappedInstance.isVoiceProcessingAGCEnabled = newValue + } + } + + @objc public var isVoiceProcessingBypassed: Bool { + get { + wrappedInstance.isVoiceProcessingBypassed + } + set { + wrappedInstance.isVoiceProcessingBypassed = newValue + } + } + + @objc public var isVoiceProcessingInputMuted: Bool { + get { + wrappedInstance.isVoiceProcessingInputMuted + } + set { + wrappedInstance.isVoiceProcessingInputMuted = newValue + } + } + + @objc public var voiceProcessingOtherAudioDuckingConfiguration: AVAudioVoiceProcessingOtherAudioDuckingConfigurationWrapper { + get { + AVAudioVoiceProcessingOtherAudioDuckingConfigurationWrapper(wrappedInstance.voiceProcessingOtherAudioDuckingConfiguration) + } + set { + wrappedInstance.voiceProcessingOtherAudioDuckingConfiguration = newValue.wrappedInstance + } + } + + init(_ wrappedInstance: AVAudioInputNode) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioMixerNodeWrapper: NSObject { + var wrappedInstance: AVAudioMixerNode + + @objc public var outputVolume: Float { + get { + wrappedInstance.outputVolume + } + set { + wrappedInstance.outputVolume = newValue + } + } + + init(_ wrappedInstance: AVAudioMixerNode) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioMixerNode() + } + +} + +@objc public class AVAudioMixingDestinationWrapper: NSObject { + var wrappedInstance: AVAudioMixingDestination + + @objc public var connectionPoint: AVAudioConnectionPointWrapper { + get { + AVAudioConnectionPointWrapper(wrappedInstance.connectionPoint) + } + } + + init(_ wrappedInstance: AVAudioMixingDestination) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioNodeWrapper: NSObject { + var wrappedInstance: AVAudioNode + + @objc public var engine: AVAudioEngineWrapper? { + get { + wrappedInstance.engine == nil ? nil : AVAudioEngineWrapper(wrappedInstance.engine!) + } + } + + @objc public var lastRenderTime: AVAudioTimeWrapper? { + get { + wrappedInstance.lastRenderTime == nil ? nil : AVAudioTimeWrapper(wrappedInstance.lastRenderTime!) + } + } + + @objc public var latency: TimeInterval { + get { + wrappedInstance.latency + } + } + + @objc public var numberOfInputs: Int { + get { + wrappedInstance.numberOfInputs + } + } + + @objc public var numberOfOutputs: Int { + get { + wrappedInstance.numberOfOutputs + } + } + + @objc public var outputPresentationLatency: TimeInterval { + get { + wrappedInstance.outputPresentationLatency + } + } + + init(_ wrappedInstance: AVAudioNode) { + self.wrappedInstance = wrappedInstance + } + + @objc public func reset() { + return wrappedInstance.reset() + } + +} + +@objc public class AVAudioOutputNodeWrapper: NSObject { + var wrappedInstance: AVAudioOutputNode + + init(_ wrappedInstance: AVAudioOutputNode) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioPCMBufferWrapper: NSObject { + var wrappedInstance: AVAudioPCMBuffer + + @objc public var stride: Int { + get { + wrappedInstance.stride + } + } + + init(_ wrappedInstance: AVAudioPCMBuffer) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioPlayerWrapper: NSObject { + var wrappedInstance: AVAudioPlayer + + @objc public var currentDevice: String? { + get { + wrappedInstance.currentDevice + } + set { + wrappedInstance.currentDevice = newValue + } + } + + @objc public var currentTime: TimeInterval { + get { + wrappedInstance.currentTime + } + set { + wrappedInstance.currentTime = newValue + } + } + + @objc public var deviceCurrentTime: TimeInterval { + get { + wrappedInstance.deviceCurrentTime + } + } + + @objc public var duration: TimeInterval { + get { + wrappedInstance.duration + } + } + + @objc public var enableRate: Bool { + get { + wrappedInstance.enableRate + } + set { + wrappedInstance.enableRate = newValue + } + } + + @objc public var format: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.format) + } + } + + @objc public var isMeteringEnabled: Bool { + get { + wrappedInstance.isMeteringEnabled + } + set { + wrappedInstance.isMeteringEnabled = newValue + } + } + + @objc public var numberOfChannels: Int { + get { + wrappedInstance.numberOfChannels + } + } + + @objc public var numberOfLoops: Int { + get { + wrappedInstance.numberOfLoops + } + set { + wrappedInstance.numberOfLoops = newValue + } + } + + @objc public var pan: Float { + get { + wrappedInstance.pan + } + set { + wrappedInstance.pan = newValue + } + } + + @objc public var isPlaying: Bool { + get { + wrappedInstance.isPlaying + } + } + + @objc public var rate: Float { + get { + wrappedInstance.rate + } + set { + wrappedInstance.rate = newValue + } + } + + @objc public var url: URL? { + get { + wrappedInstance.url + } + } + + @objc public var volume: Float { + get { + wrappedInstance.volume + } + set { + wrappedInstance.volume = newValue + } + } + + init(_ wrappedInstance: AVAudioPlayer) { + self.wrappedInstance = wrappedInstance + } + + @objc init(contentsOf url: URL) throws { + wrappedInstance = try AVAudioPlayer(contentsOf: url) + } + + @objc init(contentsOf url: URL, fileTypeHint utiString: String?) throws { + wrappedInstance = try AVAudioPlayer(contentsOf: url, fileTypeHint: utiString) + } + + @objc public func averagePower(forChannel channelNumber: Int) -> Float { + return wrappedInstance.averagePower(forChannel: channelNumber) + } + + @objc public func pause() { + return wrappedInstance.pause() + } + + @objc public func peakPower(forChannel channelNumber: Int) -> Float { + return wrappedInstance.peakPower(forChannel: channelNumber) + } + + @objc public func play() -> Bool { + return wrappedInstance.play() + } + + @objc public func play(atTime time: TimeInterval) -> Bool { + return wrappedInstance.play(atTime: time) + } + + @objc public func prepareToPlay() -> Bool { + return wrappedInstance.prepareToPlay() + } + + @objc public func setVolume(_ volume: Float, fadeDuration duration: TimeInterval) { + return wrappedInstance.setVolume(volume, fadeDuration: duration) + } + + @objc public func stop() { + return wrappedInstance.stop() + } + + @objc public func updateMeters() { + return wrappedInstance.updateMeters() + } + +} + +@objc public class AVAudioPlayerNodeWrapper: NSObject { + var wrappedInstance: AVAudioPlayerNode + + @objc public var isPlaying: Bool { + get { + wrappedInstance.isPlaying + } + } + + init(_ wrappedInstance: AVAudioPlayerNode) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioPlayerNode() + } + + @objc public func nodeTime(forPlayerTime playerTime: AVAudioTimeWrapper) -> AVAudioTimeWrapper? { + let result = wrappedInstance.nodeTime(forPlayerTime: playerTime.wrappedInstance) + return result == nil ? nil : AVAudioTimeWrapper(result!) + } + + @objc public func pause() { + return wrappedInstance.pause() + } + + @objc public func play() { + return wrappedInstance.play() + } + + @objc public func play(at when: AVAudioTimeWrapper?) { + return wrappedInstance.play(at: when?.wrappedInstance) + } + + @objc public func playerTime(forNodeTime nodeTime: AVAudioTimeWrapper) -> AVAudioTimeWrapper? { + let result = wrappedInstance.playerTime(forNodeTime: nodeTime.wrappedInstance) + return result == nil ? nil : AVAudioTimeWrapper(result!) + } + + @objc public func scheduleBuffer(_ buffer: AVAudioPCMBufferWrapper) async { + return await wrappedInstance.scheduleBuffer(buffer.wrappedInstance) + } + + @objc public func scheduleFile(_ file: AVAudioFileWrapper, at when: AVAudioTimeWrapper?) async { + return await wrappedInstance.scheduleFile(file.wrappedInstance, at: when?.wrappedInstance) + } + + @objc public func stop() { + return wrappedInstance.stop() + } + +} + +@objc public class AVAudioRecorderWrapper: NSObject { + var wrappedInstance: AVAudioRecorder + + @objc public var currentTime: TimeInterval { + get { + wrappedInstance.currentTime + } + } + + @objc public var deviceCurrentTime: TimeInterval { + get { + wrappedInstance.deviceCurrentTime + } + } + + @objc public var format: AVAudioFormatWrapper { + get { + AVAudioFormatWrapper(wrappedInstance.format) + } + } + + @objc public var isMeteringEnabled: Bool { + get { + wrappedInstance.isMeteringEnabled + } + set { + wrappedInstance.isMeteringEnabled = newValue + } + } + + @objc public var isRecording: Bool { + get { + wrappedInstance.isRecording + } + } + + @objc public var url: URL { + get { + wrappedInstance.url + } + } + + init(_ wrappedInstance: AVAudioRecorder) { + self.wrappedInstance = wrappedInstance + } + + @objc init(url: URL, format: AVAudioFormatWrapper) throws { + wrappedInstance = try AVAudioRecorder(url: url, format: format.wrappedInstance) + } + + @objc public func averagePower(forChannel channelNumber: Int) -> Float { + return wrappedInstance.averagePower(forChannel: channelNumber) + } + + @objc public func deleteRecording() -> Bool { + return wrappedInstance.deleteRecording() + } + + @objc public func pause() { + return wrappedInstance.pause() + } + + @objc public func peakPower(forChannel channelNumber: Int) -> Float { + return wrappedInstance.peakPower(forChannel: channelNumber) + } + + @objc public func prepareToRecord() -> Bool { + return wrappedInstance.prepareToRecord() + } + + @objc public func record() -> Bool { + return wrappedInstance.record() + } + + @objc public func record(atTime time: TimeInterval) -> Bool { + return wrappedInstance.record(atTime: time) + } + + @objc public func record(atTime time: TimeInterval, forDuration duration: TimeInterval) -> Bool { + return wrappedInstance.record(atTime: time, forDuration: duration) + } + + @objc public func record(forDuration duration: TimeInterval) -> Bool { + return wrappedInstance.record(forDuration: duration) + } + + @objc public func stop() { + return wrappedInstance.stop() + } + + @objc public func updateMeters() { + return wrappedInstance.updateMeters() + } + +} + +@objc public class AVAudioRoutingArbiterWrapper: NSObject { + var wrappedInstance: AVAudioRoutingArbiter + + @objc static public var shared: AVAudioRoutingArbiterWrapper { + get { + AVAudioRoutingArbiterWrapper(AVAudioRoutingArbiter.shared) + } + } + + init(_ wrappedInstance: AVAudioRoutingArbiter) { + self.wrappedInstance = wrappedInstance + } + + @objc public func leave() { + return wrappedInstance.leave() + } + +} + +@objc public class AVAudioSequencerWrapper: NSObject { + var wrappedInstance: AVAudioSequencer + + @objc public var currentPositionInBeats: TimeInterval { + get { + wrappedInstance.currentPositionInBeats + } + set { + wrappedInstance.currentPositionInBeats = newValue + } + } + + @objc public var currentPositionInSeconds: TimeInterval { + get { + wrappedInstance.currentPositionInSeconds + } + set { + wrappedInstance.currentPositionInSeconds = newValue + } + } + + @objc public var isPlaying: Bool { + get { + wrappedInstance.isPlaying + } + } + + @objc public var rate: Float { + get { + wrappedInstance.rate + } + set { + wrappedInstance.rate = newValue + } + } + + @objc public var tempoTrack: AVMusicTrackWrapper { + get { + AVMusicTrackWrapper(wrappedInstance.tempoTrack) + } + } + + init(_ wrappedInstance: AVAudioSequencer) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVAudioSequencer() + } + + @objc init(audioEngine engine: AVAudioEngineWrapper) { + wrappedInstance = AVAudioSequencer(audioEngine: engine.wrappedInstance) + } + + @objc public func createAndAppendTrack() -> AVMusicTrackWrapper { + let result = wrappedInstance.createAndAppendTrack() + return AVMusicTrackWrapper(result) + } + + @objc public func prepareToPlay() { + return wrappedInstance.prepareToPlay() + } + + @objc public func removeTrack(_ track: AVMusicTrackWrapper) -> Bool { + return wrappedInstance.removeTrack(track.wrappedInstance) + } + + @objc public func reverseEvents() { + return wrappedInstance.reverseEvents() + } + + @objc public func start() throws { + return try wrappedInstance.start() + } + + @objc public func stop() { + return wrappedInstance.stop() + } + + @objc public func write(to fileURL: URL, smpteResolution resolution: Int, replaceExisting replace: Bool) throws { + return try wrappedInstance.write(to: fileURL, smpteResolution: resolution, replaceExisting: replace) + } + + @objc public class InfoDictionaryKeyWrapper: NSObject { + var wrappedInstance: AVAudioSequencer.InfoDictionaryKey + + @objc static public var album: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.album) + } + } + + @objc static public var approximateDurationInSeconds: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.approximateDurationInSeconds) + } + } + + @objc static public var artist: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.artist) + } + } + + @objc static public var channelLayout: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.channelLayout) + } + } + + @objc static public var comments: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.comments) + } + } + + @objc static public var composer: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.composer) + } + } + + @objc static public var copyright: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.copyright) + } + } + + @objc static public var encodingApplication: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.encodingApplication) + } + } + + @objc static public var genre: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.genre) + } + } + + @objc static public var ISRC: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.ISRC) + } + } + + @objc static public var keySignature: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.keySignature) + } + } + + @objc static public var lyricist: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.lyricist) + } + } + + @objc static public var nominalBitRate: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.nominalBitRate) + } + } + + @objc static public var recordedDate: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.recordedDate) + } + } + + @objc static public var sourceBitDepth: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.sourceBitDepth) + } + } + + @objc static public var sourceEncoder: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.sourceEncoder) + } + } + + @objc static public var subTitle: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.subTitle) + } + } + + @objc static public var tempo: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.tempo) + } + } + + @objc static public var timeSignature: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.timeSignature) + } + } + + @objc static public var title: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.title) + } + } + + @objc static public var trackNumber: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.trackNumber) + } + } + + @objc static public var year: AVAudioSequencerWrapper.InfoDictionaryKeyWrapper { + get { + InfoDictionaryKeyWrapper(AVAudioSequencer.InfoDictionaryKey.year) + } + } + + init(_ wrappedInstance: AVAudioSequencer.InfoDictionaryKey) { + self.wrappedInstance = wrappedInstance + } + + @objc init(rawValue: String) { + wrappedInstance = AVAudioSequencer.InfoDictionaryKey(rawValue: rawValue) + } + + } + +} + +@objc public class AVAudioSinkNodeWrapper: NSObject { + var wrappedInstance: AVAudioSinkNode + + init(_ wrappedInstance: AVAudioSinkNode) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioSourceNodeWrapper: NSObject { + var wrappedInstance: AVAudioSourceNode + + init(_ wrappedInstance: AVAudioSourceNode) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioTimeWrapper: NSObject { + var wrappedInstance: AVAudioTime + + @objc public var isHostTimeValid: Bool { + get { + wrappedInstance.isHostTimeValid + } + } + + @objc public var sampleRate: Double { + get { + wrappedInstance.sampleRate + } + } + + @objc public var isSampleTimeValid: Bool { + get { + wrappedInstance.isSampleTimeValid + } + } + + init(_ wrappedInstance: AVAudioTime) { + self.wrappedInstance = wrappedInstance + } + + @objc public func extrapolateTime(fromAnchor anchorTime: AVAudioTimeWrapper) -> AVAudioTimeWrapper? { + let result = wrappedInstance.extrapolateTime(fromAnchor: anchorTime.wrappedInstance) + return result == nil ? nil : AVAudioTimeWrapper(result!) + } + +} + +@objc public class AVAudioUnitWrapper: NSObject { + var wrappedInstance: AVAudioUnit + + @objc public var manufacturerName: String { + get { + wrappedInstance.manufacturerName + } + } + + @objc public var name: String { + get { + wrappedInstance.name + } + } + + @objc public var version: Int { + get { + wrappedInstance.version + } + } + + init(_ wrappedInstance: AVAudioUnit) { + self.wrappedInstance = wrappedInstance + } + + @objc public func loadPreset(at url: URL) throws { + return try wrappedInstance.loadPreset(at: url) + } + +} + +@objc public class AVAudioUnitComponentWrapper: NSObject { + var wrappedInstance: AVAudioUnitComponent + + @objc public var componentURL: URL? { + get { + wrappedInstance.componentURL + } + } + + @objc public var hasCustomView: Bool { + get { + wrappedInstance.hasCustomView + } + } + + @objc public var hasMIDIInput: Bool { + get { + wrappedInstance.hasMIDIInput + } + } + + @objc public var hasMIDIOutput: Bool { + get { + wrappedInstance.hasMIDIOutput + } + } + + @objc public var iconURL: URL? { + get { + wrappedInstance.iconURL + } + } + + @objc public var localizedTypeName: String { + get { + wrappedInstance.localizedTypeName + } + } + + @objc public var manufacturerName: String { + get { + wrappedInstance.manufacturerName + } + } + + @objc public var name: String { + get { + wrappedInstance.name + } + } + + @objc public var passesAUVal: Bool { + get { + wrappedInstance.passesAUVal + } + } + + @objc public var isSandboxSafe: Bool { + get { + wrappedInstance.isSandboxSafe + } + } + + @objc public var typeName: String { + get { + wrappedInstance.typeName + } + } + + @objc public var version: Int { + get { + wrappedInstance.version + } + } + + @objc public var versionString: String { + get { + wrappedInstance.versionString + } + } + + init(_ wrappedInstance: AVAudioUnitComponent) { + self.wrappedInstance = wrappedInstance + } + + @objc public func supportsNumberInputChannels(_ numInputChannels: Int, outputChannels numOutputChannels: Int) -> Bool { + return wrappedInstance.supportsNumberInputChannels(numInputChannels, outputChannels: numOutputChannels) + } + +} + +@objc public class AVAudioUnitComponentManagerWrapper: NSObject { + var wrappedInstance: AVAudioUnitComponentManager + + init(_ wrappedInstance: AVAudioUnitComponentManager) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitDelayWrapper: NSObject { + var wrappedInstance: AVAudioUnitDelay + + @objc public var delayTime: TimeInterval { + get { + wrappedInstance.delayTime + } + set { + wrappedInstance.delayTime = newValue + } + } + + @objc public var feedback: Float { + get { + wrappedInstance.feedback + } + set { + wrappedInstance.feedback = newValue + } + } + + @objc public var lowPassCutoff: Float { + get { + wrappedInstance.lowPassCutoff + } + set { + wrappedInstance.lowPassCutoff = newValue + } + } + + @objc public var wetDryMix: Float { + get { + wrappedInstance.wetDryMix + } + set { + wrappedInstance.wetDryMix = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitDelay) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitDistortionWrapper: NSObject { + var wrappedInstance: AVAudioUnitDistortion + + @objc public var preGain: Float { + get { + wrappedInstance.preGain + } + set { + wrappedInstance.preGain = newValue + } + } + + @objc public var wetDryMix: Float { + get { + wrappedInstance.wetDryMix + } + set { + wrappedInstance.wetDryMix = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitDistortion) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitEQWrapper: NSObject { + var wrappedInstance: AVAudioUnitEQ + + @objc public var globalGain: Float { + get { + wrappedInstance.globalGain + } + set { + wrappedInstance.globalGain = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitEQ) { + self.wrappedInstance = wrappedInstance + } + + @objc init(numberOfBands: Int) { + wrappedInstance = AVAudioUnitEQ(numberOfBands: numberOfBands) + } + +} + +@objc public class AVAudioUnitEQFilterParametersWrapper: NSObject { + var wrappedInstance: AVAudioUnitEQFilterParameters + + @objc public var bandwidth: Float { + get { + wrappedInstance.bandwidth + } + set { + wrappedInstance.bandwidth = newValue + } + } + + @objc public var bypass: Bool { + get { + wrappedInstance.bypass + } + set { + wrappedInstance.bypass = newValue + } + } + + @objc public var frequency: Float { + get { + wrappedInstance.frequency + } + set { + wrappedInstance.frequency = newValue + } + } + + @objc public var gain: Float { + get { + wrappedInstance.gain + } + set { + wrappedInstance.gain = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitEQFilterParameters) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitEffectWrapper: NSObject { + var wrappedInstance: AVAudioUnitEffect + + @objc public var bypass: Bool { + get { + wrappedInstance.bypass + } + set { + wrappedInstance.bypass = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitEffect) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitGeneratorWrapper: NSObject { + var wrappedInstance: AVAudioUnitGenerator + + @objc public var bypass: Bool { + get { + wrappedInstance.bypass + } + set { + wrappedInstance.bypass = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitGenerator) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitMIDIInstrumentWrapper: NSObject { + var wrappedInstance: AVAudioUnitMIDIInstrument + + init(_ wrappedInstance: AVAudioUnitMIDIInstrument) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitReverbWrapper: NSObject { + var wrappedInstance: AVAudioUnitReverb + + @objc public var wetDryMix: Float { + get { + wrappedInstance.wetDryMix + } + set { + wrappedInstance.wetDryMix = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitReverb) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitSamplerWrapper: NSObject { + var wrappedInstance: AVAudioUnitSampler + + @objc public var globalTuning: Float { + get { + wrappedInstance.globalTuning + } + set { + wrappedInstance.globalTuning = newValue + } + } + + @objc public var masterGain: Float { + get { + wrappedInstance.masterGain + } + set { + wrappedInstance.masterGain = newValue + } + } + + @objc public var overallGain: Float { + get { + wrappedInstance.overallGain + } + set { + wrappedInstance.overallGain = newValue + } + } + + @objc public var stereoPan: Float { + get { + wrappedInstance.stereoPan + } + set { + wrappedInstance.stereoPan = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitSampler) { + self.wrappedInstance = wrappedInstance + } + + @objc public func loadInstrument(at instrumentURL: URL) throws { + return try wrappedInstance.loadInstrument(at: instrumentURL) + } + +} + +@objc public class AVAudioUnitTimeEffectWrapper: NSObject { + var wrappedInstance: AVAudioUnitTimeEffect + + @objc public var bypass: Bool { + get { + wrappedInstance.bypass + } + set { + wrappedInstance.bypass = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitTimeEffect) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitTimePitchWrapper: NSObject { + var wrappedInstance: AVAudioUnitTimePitch + + @objc public var overlap: Float { + get { + wrappedInstance.overlap + } + set { + wrappedInstance.overlap = newValue + } + } + + @objc public var pitch: Float { + get { + wrappedInstance.pitch + } + set { + wrappedInstance.pitch = newValue + } + } + + @objc public var rate: Float { + get { + wrappedInstance.rate + } + set { + wrappedInstance.rate = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitTimePitch) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVAudioUnitVarispeedWrapper: NSObject { + var wrappedInstance: AVAudioUnitVarispeed + + @objc public var rate: Float { + get { + wrappedInstance.rate + } + set { + wrappedInstance.rate = newValue + } + } + + init(_ wrappedInstance: AVAudioUnitVarispeed) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVExtendedNoteOnEventWrapper: NSObject { + var wrappedInstance: AVExtendedNoteOnEvent + + @objc public var midiNote: Float { + get { + wrappedInstance.midiNote + } + set { + wrappedInstance.midiNote = newValue + } + } + + @objc public var velocity: Float { + get { + wrappedInstance.velocity + } + set { + wrappedInstance.velocity = newValue + } + } + + init(_ wrappedInstance: AVExtendedNoteOnEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVExtendedTempoEventWrapper: NSObject { + var wrappedInstance: AVExtendedTempoEvent + + @objc public var tempo: Double { + get { + wrappedInstance.tempo + } + set { + wrappedInstance.tempo = newValue + } + } + + init(_ wrappedInstance: AVExtendedTempoEvent) { + self.wrappedInstance = wrappedInstance + } + + @objc init(tempo: Double) { + wrappedInstance = AVExtendedTempoEvent(tempo: tempo) + } + +} + +@objc public class AVMIDIChannelEventWrapper: NSObject { + var wrappedInstance: AVMIDIChannelEvent + + init(_ wrappedInstance: AVMIDIChannelEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDIChannelPressureEventWrapper: NSObject { + var wrappedInstance: AVMIDIChannelPressureEvent + + init(_ wrappedInstance: AVMIDIChannelPressureEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDIControlChangeEventWrapper: NSObject { + var wrappedInstance: AVMIDIControlChangeEvent + + init(_ wrappedInstance: AVMIDIControlChangeEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDIMetaEventWrapper: NSObject { + var wrappedInstance: AVMIDIMetaEvent + + init(_ wrappedInstance: AVMIDIMetaEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDINoteEventWrapper: NSObject { + var wrappedInstance: AVMIDINoteEvent + + init(_ wrappedInstance: AVMIDINoteEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDIPitchBendEventWrapper: NSObject { + var wrappedInstance: AVMIDIPitchBendEvent + + init(_ wrappedInstance: AVMIDIPitchBendEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDIPlayerWrapper: NSObject { + var wrappedInstance: AVMIDIPlayer + + @objc public var currentPosition: TimeInterval { + get { + wrappedInstance.currentPosition + } + set { + wrappedInstance.currentPosition = newValue + } + } + + @objc public var duration: TimeInterval { + get { + wrappedInstance.duration + } + } + + @objc public var isPlaying: Bool { + get { + wrappedInstance.isPlaying + } + } + + @objc public var rate: Float { + get { + wrappedInstance.rate + } + set { + wrappedInstance.rate = newValue + } + } + + init(_ wrappedInstance: AVMIDIPlayer) { + self.wrappedInstance = wrappedInstance + } + + @objc init(contentsOf inURL: URL, soundBankURL bankURL: URL?) throws { + wrappedInstance = try AVMIDIPlayer(contentsOf: inURL, soundBankURL: bankURL) + } + + @objc public func prepareToPlay() { + return wrappedInstance.prepareToPlay() + } + + @objc public func stop() { + return wrappedInstance.stop() + } + +} + +@objc public class AVMIDIPolyPressureEventWrapper: NSObject { + var wrappedInstance: AVMIDIPolyPressureEvent + + init(_ wrappedInstance: AVMIDIPolyPressureEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDIProgramChangeEventWrapper: NSObject { + var wrappedInstance: AVMIDIProgramChangeEvent + + init(_ wrappedInstance: AVMIDIProgramChangeEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMIDISysexEventWrapper: NSObject { + var wrappedInstance: AVMIDISysexEvent + + init(_ wrappedInstance: AVMIDISysexEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMusicEventWrapper: NSObject { + var wrappedInstance: AVMusicEvent + + init(_ wrappedInstance: AVMusicEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMusicTrackWrapper: NSObject { + var wrappedInstance: AVMusicTrack + + @objc public var destinationAudioUnit: AVAudioUnitWrapper? { + get { + wrappedInstance.destinationAudioUnit == nil ? nil : AVAudioUnitWrapper(wrappedInstance.destinationAudioUnit!) + } + set { + wrappedInstance.destinationAudioUnit = newValue?.wrappedInstance + } + } + + @objc public var lengthInSeconds: TimeInterval { + get { + wrappedInstance.lengthInSeconds + } + set { + wrappedInstance.lengthInSeconds = newValue + } + } + + @objc public var isLoopingEnabled: Bool { + get { + wrappedInstance.isLoopingEnabled + } + set { + wrappedInstance.isLoopingEnabled = newValue + } + } + + @objc public var isMuted: Bool { + get { + wrappedInstance.isMuted + } + set { + wrappedInstance.isMuted = newValue + } + } + + @objc public var numberOfLoops: Int { + get { + wrappedInstance.numberOfLoops + } + set { + wrappedInstance.numberOfLoops = newValue + } + } + + @objc public var isSoloed: Bool { + get { + wrappedInstance.isSoloed + } + set { + wrappedInstance.isSoloed = newValue + } + } + + @objc public var timeResolution: Int { + get { + wrappedInstance.timeResolution + } + } + + @objc public var usesAutomatedParameters: Bool { + get { + wrappedInstance.usesAutomatedParameters + } + set { + wrappedInstance.usesAutomatedParameters = newValue + } + } + + init(_ wrappedInstance: AVMusicTrack) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVMusicUserEventWrapper: NSObject { + var wrappedInstance: AVMusicUserEvent + + init(_ wrappedInstance: AVMusicUserEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVParameterEventWrapper: NSObject { + var wrappedInstance: AVParameterEvent + + @objc public var value: Float { + get { + wrappedInstance.value + } + set { + wrappedInstance.value = newValue + } + } + + init(_ wrappedInstance: AVParameterEvent) { + self.wrappedInstance = wrappedInstance + } + +} + +@objc public class AVSpeechSynthesisMarkerWrapper: NSObject { + var wrappedInstance: AVSpeechSynthesisMarker + + @objc public var bookmarkName: String { + get { + wrappedInstance.bookmarkName + } + set { + wrappedInstance.bookmarkName = newValue + } + } + + @objc public var byteSampleOffset: Int { + get { + wrappedInstance.byteSampleOffset + } + set { + wrappedInstance.byteSampleOffset = newValue + } + } + + @objc public var phoneme: String { + get { + wrappedInstance.phoneme + } + set { + wrappedInstance.phoneme = newValue + } + } + + init(_ wrappedInstance: AVSpeechSynthesisMarker) { + self.wrappedInstance = wrappedInstance + } + + @objc init(bookmarkName mark: String, atByteSampleOffset byteSampleOffset: Int) { + wrappedInstance = AVSpeechSynthesisMarker(bookmarkName: mark, atByteSampleOffset: byteSampleOffset) + } + + @objc init(phonemeString phoneme: String, atByteSampleOffset byteSampleOffset: Int) { + wrappedInstance = AVSpeechSynthesisMarker(phonemeString: phoneme, atByteSampleOffset: byteSampleOffset) + } + +} + +@objc public class AVSpeechSynthesisProviderAudioUnitWrapper: NSObject { + var wrappedInstance: AVSpeechSynthesisProviderAudioUnit + + init(_ wrappedInstance: AVSpeechSynthesisProviderAudioUnit) { + self.wrappedInstance = wrappedInstance + } + + @objc public func cancelSpeechRequest() { + return wrappedInstance.cancelSpeechRequest() + } + + @objc public func synthesizeSpeechRequest(_ speechRequest: AVSpeechSynthesisProviderRequestWrapper) { + return wrappedInstance.synthesizeSpeechRequest(speechRequest.wrappedInstance) + } + +} + +@objc public class AVSpeechSynthesisProviderRequestWrapper: NSObject { + var wrappedInstance: AVSpeechSynthesisProviderRequest + + @objc public var ssmlRepresentation: String { + get { + wrappedInstance.ssmlRepresentation + } + } + + @objc public var voice: AVSpeechSynthesisProviderVoiceWrapper { + get { + AVSpeechSynthesisProviderVoiceWrapper(wrappedInstance.voice) + } + } + + init(_ wrappedInstance: AVSpeechSynthesisProviderRequest) { + self.wrappedInstance = wrappedInstance + } + + @objc init(ssmlRepresentation text: String, voice: AVSpeechSynthesisProviderVoiceWrapper) { + wrappedInstance = AVSpeechSynthesisProviderRequest(ssmlRepresentation: text, voice: voice.wrappedInstance) + } + +} + +@objc public class AVSpeechSynthesisProviderVoiceWrapper: NSObject { + var wrappedInstance: AVSpeechSynthesisProviderVoice + + @objc public var age: Int { + get { + wrappedInstance.age + } + set { + wrappedInstance.age = newValue + } + } + + @objc public var identifier: String { + get { + wrappedInstance.identifier + } + } + + @objc public var name: String { + get { + wrappedInstance.name + } + } + + @objc public var version: String { + get { + wrappedInstance.version + } + set { + wrappedInstance.version = newValue + } + } + + init(_ wrappedInstance: AVSpeechSynthesisProviderVoice) { + self.wrappedInstance = wrappedInstance + } + + @objc static public func updateSpeechVoices() { + return AVSpeechSynthesisProviderVoice.updateSpeechVoices() + } + +} + +@objc public class AVSpeechSynthesisVoiceWrapper: NSObject { + var wrappedInstance: AVSpeechSynthesisVoice + + @objc public var identifier: String { + get { + wrappedInstance.identifier + } + } + + @objc public var language: String { + get { + wrappedInstance.language + } + } + + @objc public var name: String { + get { + wrappedInstance.name + } + } + + @objc public var voiceTraits: AVSpeechSynthesisVoiceWrapper.TraitsWrapper { + get { + TraitsWrapper(wrappedInstance.voiceTraits) + } + } + + init(_ wrappedInstance: AVSpeechSynthesisVoice) { + self.wrappedInstance = wrappedInstance + } + + @objc init?(identifier: String) { + if let instance = AVSpeechSynthesisVoice(identifier: identifier) { + wrappedInstance = instance + } else { + return nil + } + } + + @objc init?(language languageCode: String?) { + if let instance = AVSpeechSynthesisVoice(language: languageCode) { + wrappedInstance = instance + } else { + return nil + } + } + + @objc static public func currentLanguageCode() -> String { + return AVSpeechSynthesisVoice.currentLanguageCode() + } + + @objc public class TraitsWrapper: NSObject { + var wrappedInstance: AVSpeechSynthesisVoice.Traits + + @objc static public var isNoveltyVoice: AVSpeechSynthesisVoiceWrapper.TraitsWrapper { + get { + TraitsWrapper(AVSpeechSynthesisVoice.Traits.isNoveltyVoice) + } + } + + @objc static public var isPersonalVoice: AVSpeechSynthesisVoiceWrapper.TraitsWrapper { + get { + TraitsWrapper(AVSpeechSynthesisVoice.Traits.isPersonalVoice) + } + } + + @objc public var isEmpty: Bool { + get { + wrappedInstance.isEmpty + } + } + + init(_ wrappedInstance: AVSpeechSynthesisVoice.Traits) { + self.wrappedInstance = wrappedInstance + } + + @objc override init() { + wrappedInstance = AVSpeechSynthesisVoice.Traits() + } + + } + +} + +@objc public class AVSpeechSynthesizerWrapper: NSObject { + var wrappedInstance: AVSpeechSynthesizer + + @objc public var isPaused: Bool { + get { + wrappedInstance.isPaused + } + } + + @objc public var isSpeaking: Bool { + get { + wrappedInstance.isSpeaking + } + } + + init(_ wrappedInstance: AVSpeechSynthesizer) { + self.wrappedInstance = wrappedInstance + } + + @objc public func continueSpeaking() -> Bool { + return wrappedInstance.continueSpeaking() + } + + @objc public func speak(_ utterance: AVSpeechUtteranceWrapper) { + return wrappedInstance.speak(utterance.wrappedInstance) + } + +} + +@objc public class AVSpeechUtteranceWrapper: NSObject { + var wrappedInstance: AVSpeechUtterance + + @objc public var pitchMultiplier: Float { + get { + wrappedInstance.pitchMultiplier + } + set { + wrappedInstance.pitchMultiplier = newValue + } + } + + @objc public var postUtteranceDelay: TimeInterval { + get { + wrappedInstance.postUtteranceDelay + } + set { + wrappedInstance.postUtteranceDelay = newValue + } + } + + @objc public var preUtteranceDelay: TimeInterval { + get { + wrappedInstance.preUtteranceDelay + } + set { + wrappedInstance.preUtteranceDelay = newValue + } + } + + @objc public var prefersAssistiveTechnologySettings: Bool { + get { + wrappedInstance.prefersAssistiveTechnologySettings + } + set { + wrappedInstance.prefersAssistiveTechnologySettings = newValue + } + } + + @objc public var rate: Float { + get { + wrappedInstance.rate + } + set { + wrappedInstance.rate = newValue + } + } + + @objc public var speechString: String { + get { + wrappedInstance.speechString + } + } + + @objc public var voice: AVSpeechSynthesisVoiceWrapper? { + get { + wrappedInstance.voice == nil ? nil : AVSpeechSynthesisVoiceWrapper(wrappedInstance.voice!) + } + set { + wrappedInstance.voice = newValue?.wrappedInstance + } + } + + @objc public var volume: Float { + get { + wrappedInstance.volume + } + set { + wrappedInstance.volume = newValue + } + } + + init(_ wrappedInstance: AVSpeechUtterance) { + self.wrappedInstance = wrappedInstance + } + + @objc init?(ssmlRepresentation string: String) { + if let instance = AVSpeechUtterance(ssmlRepresentation: string) { + wrappedInstance = instance + } else { + return nil + } + } + + @objc init(string: String) { + wrappedInstance = AVSpeechUtterance(string: string) + } + +} + +@objc public class GlobalsWrapper: NSObject { + @objc static public var AVAudioBitRateStrategy_ConstantWrapper: String { + get { + AVAudioBitRateStrategy_Constant + } + } + + @objc static public var AVAudioBitRateStrategy_LongTermAverageWrapper: String { + get { + AVAudioBitRateStrategy_LongTermAverage + } + } + + @objc static public var AVAudioBitRateStrategy_VariableWrapper: String { + get { + AVAudioBitRateStrategy_Variable + } + } + + @objc static public var AVAudioBitRateStrategy_VariableConstrainedWrapper: String { + get { + AVAudioBitRateStrategy_VariableConstrained + } + } + + @objc static public var AVAudioFileTypeKeyWrapper: String { + get { + AVAudioFileTypeKey + } + } + + @objc static public var AVAudioSessionInterruptionWasSuspendedKeyWrapper: String { + get { + AVAudioSessionInterruptionWasSuspendedKey + } + } + + @objc static public var AVAudioUnitManufacturerNameAppleWrapper: String { + get { + AVAudioUnitManufacturerNameApple + } + } + + @objc static public var AVAudioUnitTypeEffectWrapper: String { + get { + AVAudioUnitTypeEffect + } + } + + @objc static public var AVAudioUnitTypeFormatConverterWrapper: String { + get { + AVAudioUnitTypeFormatConverter + } + } + + @objc static public var AVAudioUnitTypeGeneratorWrapper: String { + get { + AVAudioUnitTypeGenerator + } + } + + @objc static public var AVAudioUnitTypeMIDIProcessorWrapper: String { + get { + AVAudioUnitTypeMIDIProcessor + } + } + + @objc static public var AVAudioUnitTypeMixerWrapper: String { + get { + AVAudioUnitTypeMixer + } + } + + @objc static public var AVAudioUnitTypeMusicDeviceWrapper: String { + get { + AVAudioUnitTypeMusicDevice + } + } + + @objc static public var AVAudioUnitTypeMusicEffectWrapper: String { + get { + AVAudioUnitTypeMusicEffect + } + } + + @objc static public var AVAudioUnitTypeOfflineEffectWrapper: String { + get { + AVAudioUnitTypeOfflineEffect + } + } + + @objc static public var AVAudioUnitTypeOutputWrapper: String { + get { + AVAudioUnitTypeOutput + } + } + + @objc static public var AVAudioUnitTypePannerWrapper: String { + get { + AVAudioUnitTypePanner + } + } + + @objc static public var AVChannelLayoutKeyWrapper: String { + get { + AVChannelLayoutKey + } + } + + @objc static public var AVEncoderAudioQualityForVBRKeyWrapper: String { + get { + AVEncoderAudioQualityForVBRKey + } + } + + @objc static public var AVEncoderAudioQualityKeyWrapper: String { + get { + AVEncoderAudioQualityKey + } + } + + @objc static public var AVEncoderBitDepthHintKeyWrapper: String { + get { + AVEncoderBitDepthHintKey + } + } + + @objc static public var AVEncoderBitRateKeyWrapper: String { + get { + AVEncoderBitRateKey + } + } + + @objc static public var AVEncoderBitRatePerChannelKeyWrapper: String { + get { + AVEncoderBitRatePerChannelKey + } + } + + @objc static public var AVEncoderBitRateStrategyKeyWrapper: String { + get { + AVEncoderBitRateStrategyKey + } + } + + @objc static public var AVFormatIDKeyWrapper: String { + get { + AVFormatIDKey + } + } + + @objc static public var AVLinearPCMBitDepthKeyWrapper: String { + get { + AVLinearPCMBitDepthKey + } + } + + @objc static public var AVLinearPCMIsBigEndianKeyWrapper: String { + get { + AVLinearPCMIsBigEndianKey + } + } + + @objc static public var AVLinearPCMIsFloatKeyWrapper: String { + get { + AVLinearPCMIsFloatKey + } + } + + @objc static public var AVLinearPCMIsNonInterleavedWrapper: String { + get { + AVLinearPCMIsNonInterleaved + } + } + + @objc static public var AVNumberOfChannelsKeyWrapper: String { + get { + AVNumberOfChannelsKey + } + } + + @objc static public var AVSampleRateConverterAlgorithmKeyWrapper: String { + get { + AVSampleRateConverterAlgorithmKey + } + } + + @objc static public var AVSampleRateConverterAlgorithm_MasteringWrapper: String { + get { + AVSampleRateConverterAlgorithm_Mastering + } + } + + @objc static public var AVSampleRateConverterAlgorithm_MinimumPhaseWrapper: String { + get { + AVSampleRateConverterAlgorithm_MinimumPhase + } + } + + @objc static public var AVSampleRateConverterAlgorithm_NormalWrapper: String { + get { + AVSampleRateConverterAlgorithm_Normal + } + } + + @objc static public var AVSampleRateConverterAudioQualityKeyWrapper: String { + get { + AVSampleRateConverterAudioQualityKey + } + } + + @objc static public var AVSampleRateKeyWrapper: String { + get { + AVSampleRateKey + } + } + + @objc static public var AVSpeechSynthesisIPANotationAttributeWrapper: String { + get { + AVSpeechSynthesisIPANotationAttribute + } + } + + @objc static public var AVSpeechSynthesisVoiceIdentifierAlexWrapper: String { + get { + AVSpeechSynthesisVoiceIdentifierAlex + } + } + + @objc static public var AVSpeechUtteranceDefaultSpeechRateWrapper: Float { + get { + AVSpeechUtteranceDefaultSpeechRate + } + } + + @objc static public var AVSpeechUtteranceMaximumSpeechRateWrapper: Float { + get { + AVSpeechUtteranceMaximumSpeechRate + } + } + + @objc static public var AVSpeechUtteranceMinimumSpeechRateWrapper: Float { + get { + AVSpeechUtteranceMinimumSpeechRate + } + } + + @objc static public var AVMusicTimeStampEndOfTrackWrapper: Double { + get { + AVMusicTimeStampEndOfTrack + } + } + + @objc static public func AVAudioMake3DAngularOrientationWrapper(_ yaw: Float, _ pitch: Float, _ roll: Float) -> AVAudio3DAngularOrientationWrapper { + let result = AVAudioMake3DAngularOrientation(yaw, pitch, roll) + return AVAudio3DAngularOrientationWrapper(result) + } + + @objc static public func AVAudioMake3DPointWrapper(_ x: Float, _ y: Float, _ z: Float) -> AVAudio3DPointWrapper { + let result = AVAudioMake3DPoint(x, y, z) + return AVAudio3DPointWrapper(result) + } + +} + diff --git a/pkgs/swiftgen/example/generate_code.dart b/pkgs/swiftgen/example/generate_code.dart new file mode 100644 index 0000000000..8bdd4a73c1 --- /dev/null +++ b/pkgs/swiftgen/example/generate_code.dart @@ -0,0 +1,64 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'package:swiftgen/swiftgen.dart'; +import 'package:logging/logging.dart'; +import 'package:ffigen/ffigen.dart' as ffigen; +import 'package:pub_semver/pub_semver.dart'; + +Future main() async { + // TODO: Should swiftgen have an internal notion of working dir? + Directory.current = Platform.script.resolve('.').toFilePath(); + + // TODO: swiftgen needs a way of setting up logging. Then remove this. + Logger.root.onRecord.listen((record) { + stderr.writeln('${record.level.name}: ${record.message}'); + }); + + await generate(Config( + target: Target( + triple: 'x86_64-apple-macosx14.0', + sdk: Uri.directory( + '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk'), + ), + input: SwiftModuleInput(module: 'AVFAudio'), + tempDir: Uri.directory('temp'), + outputModule: 'AVFAudioWrapper', + objcSwiftFile: Uri.file('avf_audio_wrapper.swift'), + ffigen: FfiGenConfig( + output: Uri.file('avf_audio_bindings.dart'), + outputObjC: Uri.file('avf_audio_wrapper.m'), + externalVersions: ffigen.ExternalVersions( + ios: ffigen.Versions(min: Version(12, 0, 0)), + macos: ffigen.Versions(min: Version(10, 14, 0)), + ), + objcInterfaces: ffigen.DeclarationFilters( + shouldInclude: (decl) => decl.originalName == 'AVAudioPlayerWrapper', + ), + ), + )); + + final result = Process.runSync( + 'swiftc', + [ + '-emit-library', + '-o', + 'avf_audio_wrapper.dylib', + '-module-name', + 'AVFAudioWrapper', + 'avf_audio_wrapper.swift', + '-framework', + 'AVFAudio', + '-framework', + 'Foundation', + ], + ); + if (result.exitCode != 0) { + print("Failed to build the swift wrapper library"); + print(result.stdout); + print(result.stderr); + } +} diff --git a/pkgs/swiftgen/example/play_audio.dart b/pkgs/swiftgen/example/play_audio.dart new file mode 100644 index 0000000000..dcc8d061fb --- /dev/null +++ b/pkgs/swiftgen/example/play_audio.dart @@ -0,0 +1,47 @@ +// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:ffi'; +import 'dart:io'; +import 'package:objective_c/objective_c.dart'; +import 'avf_audio_bindings.dart'; + +// TODO(https://github.com/dart-lang/native/issues/1068): Remove this. +import '../../objective_c/test/setup.dart' as objCSetup; + +const _dylibPath = + '/System/Library/Frameworks/AVFAudio.framework/Versions/Current/AVFAudio'; + +const _wrapperDylib = 'avf_audio_wrapper.dylib'; + +void main(List args) async { + if (args.length == 0) { + print("Usage: dart play_audio.dart file1.wav file2.mp3 ..."); + return; + } + + objCSetup.main([]); + DynamicLibrary.open(_dylibPath); + DynamicLibrary.open(Platform.script.resolve(_wrapperDylib).toFilePath()); + for (final file in args) { + final fileStr = NSString(file); + print('Loading $fileStr'); + final fileUrl = NSURL.fileURLWithPath_(fileStr); + final player = AVAudioPlayerWrapper.alloc() + .initWithContentsOf_error_(fileUrl, nullptr); + if (player == null) { + print('Failed to load audio'); + continue; + } + final durationSeconds = player.duration.ceil(); + print('$durationSeconds sec'); + final status = player.play(); + if (status) { + print('Playing...'); + await Future.delayed(Duration(seconds: durationSeconds)); + } else { + print('Failed to play audio.'); + } + } +} diff --git a/pkgs/swiftgen/lib/src/config.dart b/pkgs/swiftgen/lib/src/config.dart new file mode 100644 index 0000000000..c815d0ddaa --- /dev/null +++ b/pkgs/swiftgen/lib/src/config.dart @@ -0,0 +1,189 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'package:swift2objc/swift2objc.dart' as swift2objc; +import 'package:ffigen/ffigen.dart' as ffigen; + +import 'util.dart'; + +class Target { + String triple; + Uri sdk; + + Target({required this.triple, required this.sdk}); + + static Future host() => getHostTarget(); +} + +abstract interface class ConfigInput { + String get module; + swift2objc.InputConfig asSwift2ObjCConfig(Target target); + Iterable get files; + Iterable get compileArgs; +} + +class SwiftFileInput implements ConfigInput { + @override + final String module; + + @override + final List files; + + SwiftFileInput({ + required this.module, + required this.files, + }); + + @override + swift2objc.InputConfig asSwift2ObjCConfig(Target target) => + swift2objc.FilesInputConfig( + files: files, + generatedModuleName: module, + ); + + @override + Iterable get compileArgs => const []; +} + +class SwiftModuleInput implements ConfigInput { + @override + final String module; + + SwiftModuleInput({ + required this.module, + }); + + @override + swift2objc.InputConfig asSwift2ObjCConfig(Target target) => + swift2objc.ModuleInputConfig( + module: module, + target: target.triple, + sdk: target.sdk, + ); + + @override + Iterable get files => const []; + + @override + Iterable get compileArgs => const []; +} + +class JsonFileInput implements ConfigInput { + @override + final String module; + + final Uri jsonFile; + + JsonFileInput({ + required this.module, + required this.jsonFile, + }); + + @override + swift2objc.InputConfig asSwift2ObjCConfig(Target target) => + swift2objc.JsonFileInputConfig(jsonFile: jsonFile); + + @override + Iterable get files => []; + + @override + Iterable get compileArgs => const []; +} + +/// Selected options from the ffigen Config object. +class FfiGenConfig { + /// Output file name. + final Uri output; + + /// Output ObjC file name. + final Uri outputObjC; + + /// Name of the wrapper class. + final String? wrapperName; + + /// Doc comment for the wrapper class. + final String? wrapperDocComment; + + /// Header of the generated bindings. + final String? preamble; + + /// Declaration filters for Functions. + final ffigen.DeclarationFilters? functionDecl; + + /// Declaration filters for Structs. + final ffigen.DeclarationFilters? structDecl; + + /// Declaration filters for Unions. + final ffigen.DeclarationFilters? unionDecl; + + /// Declaration filters for Enums. + final ffigen.DeclarationFilters? enumClassDecl; + + /// Declaration filters for Unnamed enum constants. + final ffigen.DeclarationFilters? unnamedEnumConstants; + + /// Declaration filters for Globals. + final ffigen.DeclarationFilters? globals; + + /// Declaration filters for Macro constants. + final ffigen.DeclarationFilters? macroDecl; + + /// Declaration filters for Typedefs. + final ffigen.DeclarationFilters? typedefs; + + /// Declaration filters for Objective C interfaces. + final ffigen.DeclarationFilters? objcInterfaces; + + /// Declaration filters for Objective C protocols. + final ffigen.DeclarationFilters? objcProtocols; + + /// Minimum target versions for ObjC APIs, per OS. APIs that were deprecated + /// before this version will not be generated. + final ffigen.ExternalVersions externalVersions; + + FfiGenConfig({ + required this.output, + required this.outputObjC, + this.wrapperName, + this.wrapperDocComment, + this.preamble, + this.functionDecl, + this.structDecl, + this.unionDecl, + this.enumClassDecl, + this.unnamedEnumConstants, + this.globals, + this.macroDecl, + this.typedefs, + this.objcInterfaces, + this.objcProtocols, + this.externalVersions = const ffigen.ExternalVersions(), + }); +} + +class Config { + final Target target; + + // Input. Either a swift file or a module. + final ConfigInput input; + + // Intermediates. + final String? objcSwiftPreamble; + final Uri objcSwiftFile; + final Uri tempDir; + + // Output file. + final String? outputModule; + final FfiGenConfig ffigen; + + Config({ + required this.target, + required this.input, + this.objcSwiftPreamble, + required this.objcSwiftFile, + required this.tempDir, + this.outputModule, + required this.ffigen, + }); +} diff --git a/pkgs/swiftgen/lib/src/generator.dart b/pkgs/swiftgen/lib/src/generator.dart new file mode 100644 index 0000000000..596c96091f --- /dev/null +++ b/pkgs/swiftgen/lib/src/generator.dart @@ -0,0 +1,90 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'package:path/path.dart' as p; +import 'package:swift2objc/swift2objc.dart' as swift2objc; +import 'package:ffigen/ffigen.dart' as ffigen; +import 'package:ffigen/src/config_provider/path_finder.dart'; +import 'package:logging/logging.dart'; + +import 'config.dart'; +import 'util.dart'; + +extension _ConfigUtil on Config { + String get absTempDir => p.absolute(tempDir.toFilePath()); + String get outModule => outputModule ?? input.module; + String get objcHeader => p.join(absTempDir, '${outModule}.h'); +} + +Future generate(Config config) async { + Directory(config.absTempDir).createSync(recursive: true); + await _generateObjCSwiftFile(config); + await _generateObjCFile(config); + _generateDartFile(config); +} + +Future _generateObjCSwiftFile(Config config) => + swift2objc.generateWrapper(swift2objc.Config( + input: config.input.asSwift2ObjCConfig(config.target), + outputFile: config.objcSwiftFile, + tempDir: config.tempDir, + preamble: config.objcSwiftPreamble, + )); + +Future _generateObjCFile(Config config) => run( + 'swiftc', + [ + '-c', + p.absolute(config.objcSwiftFile.toFilePath()), + ...config.input.files.map((uri) => p.absolute(uri.toFilePath())), + '-module-name', + config.outModule, + '-emit-objc-header-path', + config.objcHeader, + '-target', + config.target.triple, + '-sdk', + p.absolute(config.target.sdk.toFilePath()), + ...config.input.compileArgs, + ], + config.absTempDir); + +void _generateDartFile(Config config) { + final generator = ffigen.FfiGen(logLevel: Level.SEVERE); + final ffigenConfig = ffigen.Config( + language: ffigen.Language.objc, + output: config.ffigen.output, + outputObjC: config.ffigen.outputObjC, + wrapperName: config.ffigen.wrapperName ?? config.outModule, + wrapperDocComment: config.ffigen.wrapperDocComment, + preamble: config.ffigen.preamble, + functionDecl: + config.ffigen.functionDecl ?? ffigen.DeclarationFilters.excludeAll, + structDecl: + config.ffigen.structDecl ?? ffigen.DeclarationFilters.excludeAll, + unionDecl: config.ffigen.unionDecl ?? ffigen.DeclarationFilters.excludeAll, + enumClassDecl: + config.ffigen.enumClassDecl ?? ffigen.DeclarationFilters.excludeAll, + unnamedEnumConstants: config.ffigen.unnamedEnumConstants ?? + ffigen.DeclarationFilters.excludeAll, + globals: config.ffigen.globals ?? ffigen.DeclarationFilters.excludeAll, + macroDecl: config.ffigen.macroDecl ?? ffigen.DeclarationFilters.excludeAll, + typedefs: config.ffigen.typedefs ?? ffigen.DeclarationFilters.excludeAll, + objcInterfaces: + config.ffigen.objcInterfaces ?? ffigen.DeclarationFilters.excludeAll, + objcProtocols: + config.ffigen.objcProtocols ?? ffigen.DeclarationFilters.excludeAll, + entryPoints: [Uri.file(config.objcHeader)], + compilerOpts: [ + ...getCStandardLibraryHeadersForMac(), + '-Wno-nullability-completeness', + ], + interfaceModuleFunc: (_) => config.outModule, + protocolModuleFunc: (_) => config.outModule, + externalVersions: config.ffigen.externalVersions, + ); + generator.run(ffigenConfig); +} diff --git a/pkgs/swiftgen/lib/src/util.dart b/pkgs/swiftgen/lib/src/util.dart new file mode 100644 index 0000000000..f808a9410a --- /dev/null +++ b/pkgs/swiftgen/lib/src/util.dart @@ -0,0 +1,28 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'config.dart'; + +Future run( + String executable, List arguments, String workingDir) async { + final process = + await Process.start(executable, arguments, workingDirectory: workingDir); + process.stdout.listen(stdout.add); + process.stderr.listen(stderr.add); + if ((await process.exitCode) != 0) { + throw ProcessException(executable, arguments); + } +} + +Future getHostTarget() async { + return Target( + // TODO: swiftc -print-target-info, target.triple + triple: 'x86_64-apple-macosx14.0', + // TODO: xcrun --show-sdk-path + sdk: Uri.directory( + '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk'), + ); +} diff --git a/pkgs/swiftgen/lib/swiftgen.dart b/pkgs/swiftgen/lib/swiftgen.dart new file mode 100644 index 0000000000..f764138d1d --- /dev/null +++ b/pkgs/swiftgen/lib/swiftgen.dart @@ -0,0 +1,14 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +export 'package:ffigen/ffigen.dart' show DeclarationFilters; +export 'src/config.dart' + show + Config, + FfiGenConfig, + JsonFileInput, + SwiftFileInput, + SwiftModuleInput, + Target; +export 'src/generator.dart' show generate; diff --git a/pkgs/swiftgen/pubspec.yaml b/pkgs/swiftgen/pubspec.yaml index 664fd220ca..7c9745aec9 100644 --- a/pkgs/swiftgen/pubspec.yaml +++ b/pkgs/swiftgen/pubspec.yaml @@ -19,12 +19,20 @@ environment: dependencies: ffi: ^2.1.0 + objective_c: ^1.1.0 + swift2objc: ^0.1.0 dev_dependencies: dart_flutter_team_lints: ^2.0.0 - ffigen: ^11.0.0 test: ^1.21.1 dependency_overrides: ffigen: path: ../ffigen/ + objective_c: + path: ../objective_c/ + swift2objc: + path: ../swift2objc/ + +executables: + swiftgen: diff --git a/pkgs/swiftgen/test/integration/classes.swift b/pkgs/swiftgen/test/integration/classes.swift new file mode 100644 index 0000000000..ae1354d88a --- /dev/null +++ b/pkgs/swiftgen/test/integration/classes.swift @@ -0,0 +1,17 @@ +import Foundation + +public class TestClass { + public func myMethod() -> TestOtherClass { + return TestOtherClass() + } + + static func create() -> TestClass { + return TestClass() + } +} + +public class TestOtherClass { + public func times10(x: Int) -> Int { + return x * 10 + } +} diff --git a/pkgs/swiftgen/test/integration/classes_bindings.dart b/pkgs/swiftgen/test/integration/classes_bindings.dart new file mode 100644 index 0000000000..4b6c12a916 --- /dev/null +++ b/pkgs/swiftgen/test/integration/classes_bindings.dart @@ -0,0 +1,38340 @@ +// AUTO GENERATED FILE, DO NOT EDIT. +// +// Generated by `package:ffigen`. +// ignore_for_file: type=lint +import 'dart:ffi' as ffi; +import 'package:objective_c/objective_c.dart' as objc; + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSDictionary_NSRange_bool( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSDate_bool_bool( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSTimer( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSFileHandle( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSError( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSDictionary_NSError( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSArray( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSCachedURLResponse( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSDictionary( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSURLCredential( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSArray_NSArray_NSArray( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSArray1( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer wrapListenerBlock_ObjCBlock_ffiVoid_NSData( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSData_bool_NSError( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer + wrapListenerBlock_ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError( + ffi.Pointer block, +); + +@ffi.Native Function(ffi.Pointer)>( + isLeaf: true) +external ffi.Pointer wrapListenerBlock_ObjCBlock_ffiVoid_NSTask( + ffi.Pointer block, +); + +/// NSProgress +class NSProgress extends objc.NSObject { + NSProgress._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSProgress] that points to the same underlying object as [other]. + NSProgress.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSProgress] that wraps the given raw object pointer. + NSProgress.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSProgress]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSProgress); + } + + /// currentProgress + static NSProgress? currentProgress() { + final _ret = _objc_msgSend_1(_class_NSProgress, _sel_currentProgress); + return _ret.address == 0 + ? null + : NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// progressWithTotalUnitCount: + static NSProgress progressWithTotalUnitCount_(int unitCount) { + final _ret = _objc_msgSend_2( + _class_NSProgress, _sel_progressWithTotalUnitCount_, unitCount); + return NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// discreteProgressWithTotalUnitCount: + static NSProgress discreteProgressWithTotalUnitCount_(int unitCount) { + final _ret = _objc_msgSend_2( + _class_NSProgress, _sel_discreteProgressWithTotalUnitCount_, unitCount); + return NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// progressWithTotalUnitCount:parent:pendingUnitCount: + static NSProgress progressWithTotalUnitCount_parent_pendingUnitCount_( + int unitCount, NSProgress parent, int portionOfParentTotalUnitCount) { + final _ret = _objc_msgSend_3( + _class_NSProgress, + _sel_progressWithTotalUnitCount_parent_pendingUnitCount_, + unitCount, + parent.pointer, + portionOfParentTotalUnitCount); + return NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithParent:userInfo: + NSProgress initWithParent_userInfo_( + NSProgress? parentProgressOrNil, objc.ObjCObjectBase? userInfoOrNil) { + final _ret = _objc_msgSend_4( + this.pointer, + _sel_initWithParent_userInfo_, + parentProgressOrNil?.pointer ?? ffi.nullptr, + userInfoOrNil?.pointer ?? ffi.nullptr); + return NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// becomeCurrentWithPendingUnitCount: + void becomeCurrentWithPendingUnitCount_(int unitCount) { + _objc_msgSend_5( + this.pointer, _sel_becomeCurrentWithPendingUnitCount_, unitCount); + } + + /// performAsCurrentWithPendingUnitCount:usingBlock: + void performAsCurrentWithPendingUnitCount_usingBlock_( + int unitCount, ObjCBlock_ffiVoid work) { + _objc_msgSend_6( + this.pointer, + _sel_performAsCurrentWithPendingUnitCount_usingBlock_, + unitCount, + work.pointer); + } + + /// resignCurrent + void resignCurrent() { + _objc_msgSend_7(this.pointer, _sel_resignCurrent); + } + + /// addChild:withPendingUnitCount: + void addChild_withPendingUnitCount_(NSProgress child, int inUnitCount) { + _objc_msgSend_8(this.pointer, _sel_addChild_withPendingUnitCount_, + child.pointer, inUnitCount); + } + + /// totalUnitCount + int get totalUnitCount { + return _objc_msgSend_9(this.pointer, _sel_totalUnitCount); + } + + /// setTotalUnitCount: + set totalUnitCount(int value) { + return _objc_msgSend_10(this.pointer, _sel_setTotalUnitCount_, value); + } + + /// completedUnitCount + int get completedUnitCount { + return _objc_msgSend_9(this.pointer, _sel_completedUnitCount); + } + + /// setCompletedUnitCount: + set completedUnitCount(int value) { + return _objc_msgSend_10(this.pointer, _sel_setCompletedUnitCount_, value); + } + + /// localizedDescription + objc.NSString get localizedDescription { + final _ret = _objc_msgSend_11(this.pointer, _sel_localizedDescription); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setLocalizedDescription: + set localizedDescription(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setLocalizedDescription_, value.pointer); + } + + /// localizedAdditionalDescription + objc.NSString get localizedAdditionalDescription { + final _ret = + _objc_msgSend_11(this.pointer, _sel_localizedAdditionalDescription); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setLocalizedAdditionalDescription: + set localizedAdditionalDescription(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setLocalizedAdditionalDescription_, value.pointer); + } + + /// isCancellable + bool get cancellable { + return _objc_msgSend_13(this.pointer, _sel_isCancellable); + } + + /// setCancellable: + set cancellable(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setCancellable_, value); + } + + /// isPausable + bool get pausable { + return _objc_msgSend_13(this.pointer, _sel_isPausable); + } + + /// setPausable: + set pausable(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setPausable_, value); + } + + /// isCancelled + bool get cancelled { + return _objc_msgSend_13(this.pointer, _sel_isCancelled); + } + + /// isPaused + bool get paused { + return _objc_msgSend_13(this.pointer, _sel_isPaused); + } + + /// cancellationHandler + ObjCBlock_ffiVoid? get cancellationHandler { + final _ret = _objc_msgSend_15(this.pointer, _sel_cancellationHandler); + return _ret.address == 0 + ? null + : ObjCBlock_ffiVoid.castFromPointer(_ret, retain: true, release: true); + } + + /// setCancellationHandler: + set cancellationHandler(ObjCBlock_ffiVoid? value) { + return _objc_msgSend_16(this.pointer, _sel_setCancellationHandler_, + value?.pointer ?? ffi.nullptr); + } + + /// pausingHandler + ObjCBlock_ffiVoid? get pausingHandler { + final _ret = _objc_msgSend_15(this.pointer, _sel_pausingHandler); + return _ret.address == 0 + ? null + : ObjCBlock_ffiVoid.castFromPointer(_ret, retain: true, release: true); + } + + /// setPausingHandler: + set pausingHandler(ObjCBlock_ffiVoid? value) { + return _objc_msgSend_16( + this.pointer, _sel_setPausingHandler_, value?.pointer ?? ffi.nullptr); + } + + /// resumingHandler + ObjCBlock_ffiVoid? get resumingHandler { + final _ret = _objc_msgSend_15(this.pointer, _sel_resumingHandler); + return _ret.address == 0 + ? null + : ObjCBlock_ffiVoid.castFromPointer(_ret, retain: true, release: true); + } + + /// setResumingHandler: + set resumingHandler(ObjCBlock_ffiVoid? value) { + return _objc_msgSend_16( + this.pointer, _sel_setResumingHandler_, value?.pointer ?? ffi.nullptr); + } + + /// setUserInfoObject:forKey: + void setUserInfoObject_forKey_( + objc.ObjCObjectBase? objectOrNil, objc.NSString key) { + _objc_msgSend_17(this.pointer, _sel_setUserInfoObject_forKey_, + objectOrNil?.pointer ?? ffi.nullptr, key.pointer); + } + + /// isIndeterminate + bool get indeterminate { + return _objc_msgSend_13(this.pointer, _sel_isIndeterminate); + } + + /// fractionCompleted + double get fractionCompleted { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_fractionCompleted) + : _objc_msgSend_18(this.pointer, _sel_fractionCompleted); + } + + /// isFinished + bool get finished { + return _objc_msgSend_13(this.pointer, _sel_isFinished); + } + + /// cancel + void cancel() { + _objc_msgSend_7(this.pointer, _sel_cancel); + } + + /// pause + void pause() { + _objc_msgSend_7(this.pointer, _sel_pause); + } + + /// resume + void resume() { + _objc_msgSend_7(this.pointer, _sel_resume); + } + + /// userInfo + objc.ObjCObjectBase get userInfo { + final _ret = _objc_msgSend_19(this.pointer, _sel_userInfo); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// kind + objc.NSString? get kind { + final _ret = _objc_msgSend_20(this.pointer, _sel_kind); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setKind: + set kind(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setKind_, value?.pointer ?? ffi.nullptr); + } + + /// estimatedTimeRemaining + objc.NSNumber? get estimatedTimeRemaining { + final _ret = _objc_msgSend_22(this.pointer, _sel_estimatedTimeRemaining); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setEstimatedTimeRemaining: + set estimatedTimeRemaining(objc.NSNumber? value) { + return _objc_msgSend_23(this.pointer, _sel_setEstimatedTimeRemaining_, + value?.pointer ?? ffi.nullptr); + } + + /// throughput + objc.NSNumber? get throughput { + final _ret = _objc_msgSend_22(this.pointer, _sel_throughput); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setThroughput: + set throughput(objc.NSNumber? value) { + return _objc_msgSend_23( + this.pointer, _sel_setThroughput_, value?.pointer ?? ffi.nullptr); + } + + /// fileOperationKind + objc.NSString? get fileOperationKind { + final _ret = _objc_msgSend_20(this.pointer, _sel_fileOperationKind); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setFileOperationKind: + set fileOperationKind(objc.NSString? value) { + return _objc_msgSend_21(this.pointer, _sel_setFileOperationKind_, + value?.pointer ?? ffi.nullptr); + } + + /// fileURL + objc.NSURL? get fileURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_fileURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// setFileURL: + set fileURL(objc.NSURL? value) { + return _objc_msgSend_25( + this.pointer, _sel_setFileURL_, value?.pointer ?? ffi.nullptr); + } + + /// fileTotalCount + objc.NSNumber? get fileTotalCount { + final _ret = _objc_msgSend_22(this.pointer, _sel_fileTotalCount); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setFileTotalCount: + set fileTotalCount(objc.NSNumber? value) { + return _objc_msgSend_23( + this.pointer, _sel_setFileTotalCount_, value?.pointer ?? ffi.nullptr); + } + + /// fileCompletedCount + objc.NSNumber? get fileCompletedCount { + final _ret = _objc_msgSend_22(this.pointer, _sel_fileCompletedCount); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setFileCompletedCount: + set fileCompletedCount(objc.NSNumber? value) { + return _objc_msgSend_23(this.pointer, _sel_setFileCompletedCount_, + value?.pointer ?? ffi.nullptr); + } + + /// publish + void publish() { + _objc_msgSend_7(this.pointer, _sel_publish); + } + + /// unpublish + void unpublish() { + _objc_msgSend_7(this.pointer, _sel_unpublish); + } + + /// addSubscriberForFileURL:withPublishingHandler: + static objc.ObjCObjectBase addSubscriberForFileURL_withPublishingHandler_( + objc.NSURL url, ObjCBlock_ffiVoid_NSProgress publishingHandler) { + final _ret = _objc_msgSend_26( + _class_NSProgress, + _sel_addSubscriberForFileURL_withPublishingHandler_, + url.pointer, + publishingHandler.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// removeSubscriber: + static void removeSubscriber_(objc.ObjCObjectBase subscriber) { + _objc_msgSend_27( + _class_NSProgress, _sel_removeSubscriber_, subscriber.pointer); + } + + /// isOld + bool get old { + return _objc_msgSend_13(this.pointer, _sel_isOld); + } + + /// init + NSProgress init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSProgress new1() { + final _ret = _objc_msgSend_19(_class_NSProgress, _sel_new); + return NSProgress.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSProgress allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSProgress, _sel_allocWithZone_, zone); + return NSProgress.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSProgress alloc() { + final _ret = _objc_msgSend_19(_class_NSProgress, _sel_alloc); + return NSProgress.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSProgress, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSProgress, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSProgress, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSProgress, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSProgress, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSProgress, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSProgress, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSProgress, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSProgress, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSProgress = objc.getClass("classes.NSProgress"); +late final _sel_currentProgress = objc.registerName("currentProgress"); +final _objc_msgSend_1 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_progressWithTotalUnitCount_ = + objc.registerName("progressWithTotalUnitCount:"); +final _objc_msgSend_2 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Int64)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_discreteProgressWithTotalUnitCount_ = + objc.registerName("discreteProgressWithTotalUnitCount:"); +late final _sel_progressWithTotalUnitCount_parent_pendingUnitCount_ = + objc.registerName("progressWithTotalUnitCount:parent:pendingUnitCount:"); +final _objc_msgSend_3 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Int64, + ffi.Pointer, + ffi.Int64)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + int)>(); +typedef instancetype = ffi.Pointer; +typedef Dartinstancetype = objc.ObjCObjectBase; +late final _sel_initWithParent_userInfo_ = + objc.registerName("initWithParent:userInfo:"); +final _objc_msgSend_4 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_becomeCurrentWithPendingUnitCount_ = + objc.registerName("becomeCurrentWithPendingUnitCount:"); +final _objc_msgSend_5 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Int64)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +void _ObjCBlock_ffiVoid_fnPtrTrampoline( + ffi.Pointer block, +) => + block.ref.target + .cast>() + .asFunction()(); +void _ObjCBlock_ffiVoid_closureTrampoline( + ffi.Pointer block, +) => + (objc.getBlockClosure(block) as void Function())(); + +class ObjCBlock_ffiVoid extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid castFromPointer(ffi.Pointer pointer, + {bool retain = false, bool release = false}) { + return ObjCBlock_ffiVoid._(pointer, retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid.fromFunctionPointer( + ffi.Pointer> ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer)>( + _ObjCBlock_ffiVoid_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid.fromFunction(void Function() fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer)>( + _ObjCBlock_ffiVoid_closureTrampoline) + .cast(), + () => fn())); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid.listener(void Function() fn) + : this._((objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + () => fn()))); + static ffi.NativeCallable)>? + _dartFuncListenerTrampoline; + + void call() => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block)>>() + .asFunction)>()( + pointer, + ); +} + +late final _sel_performAsCurrentWithPendingUnitCount_usingBlock_ = + objc.registerName("performAsCurrentWithPendingUnitCount:usingBlock:"); +final _objc_msgSend_6 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Int64, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_resignCurrent = objc.registerName("resignCurrent"); +final _objc_msgSend_7 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_addChild_withPendingUnitCount_ = + objc.registerName("addChild:withPendingUnitCount:"); +final _objc_msgSend_8 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Int64)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_totalUnitCount = objc.registerName("totalUnitCount"); +final _objc_msgSend_9 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Int64 Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setTotalUnitCount_ = objc.registerName("setTotalUnitCount:"); +final _objc_msgSend_10 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Int64)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_completedUnitCount = objc.registerName("completedUnitCount"); +late final _sel_setCompletedUnitCount_ = + objc.registerName("setCompletedUnitCount:"); +late final _sel_localizedDescription = + objc.registerName("localizedDescription"); +final _objc_msgSend_11 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setLocalizedDescription_ = + objc.registerName("setLocalizedDescription:"); +final _objc_msgSend_12 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_localizedAdditionalDescription = + objc.registerName("localizedAdditionalDescription"); +late final _sel_setLocalizedAdditionalDescription_ = + objc.registerName("setLocalizedAdditionalDescription:"); +late final _sel_isCancellable = objc.registerName("isCancellable"); +final _objc_msgSend_13 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCancellable_ = objc.registerName("setCancellable:"); +final _objc_msgSend_14 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Bool)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, bool)>(); +late final _sel_isPausable = objc.registerName("isPausable"); +late final _sel_setPausable_ = objc.registerName("setPausable:"); +late final _sel_isCancelled = objc.registerName("isCancelled"); +late final _sel_isPaused = objc.registerName("isPaused"); +late final _sel_cancellationHandler = objc.registerName("cancellationHandler"); +final _objc_msgSend_15 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCancellationHandler_ = + objc.registerName("setCancellationHandler:"); +final _objc_msgSend_16 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_pausingHandler = objc.registerName("pausingHandler"); +late final _sel_setPausingHandler_ = objc.registerName("setPausingHandler:"); +late final _sel_resumingHandler = objc.registerName("resumingHandler"); +late final _sel_setResumingHandler_ = objc.registerName("setResumingHandler:"); +late final _sel_setUserInfoObject_forKey_ = + objc.registerName("setUserInfoObject:forKey:"); +final _objc_msgSend_17 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_isIndeterminate = objc.registerName("isIndeterminate"); +late final _sel_fractionCompleted = objc.registerName("fractionCompleted"); +final _objc_msgSend_18 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Double Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_18Fpret = objc.msgSendFpretPointer + .cast< + ffi.NativeFunction< + ffi.Double Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_isFinished = objc.registerName("isFinished"); +late final _sel_cancel = objc.registerName("cancel"); +late final _sel_pause = objc.registerName("pause"); +late final _sel_resume = objc.registerName("resume"); +late final _sel_userInfo = objc.registerName("userInfo"); +final _objc_msgSend_19 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_kind = objc.registerName("kind"); +final _objc_msgSend_20 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setKind_ = objc.registerName("setKind:"); +final _objc_msgSend_21 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_estimatedTimeRemaining = + objc.registerName("estimatedTimeRemaining"); +final _objc_msgSend_22 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setEstimatedTimeRemaining_ = + objc.registerName("setEstimatedTimeRemaining:"); +final _objc_msgSend_23 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_throughput = objc.registerName("throughput"); +late final _sel_setThroughput_ = objc.registerName("setThroughput:"); +late final _sel_fileOperationKind = objc.registerName("fileOperationKind"); +late final _sel_setFileOperationKind_ = + objc.registerName("setFileOperationKind:"); +late final _sel_fileURL = objc.registerName("fileURL"); +final _objc_msgSend_24 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setFileURL_ = objc.registerName("setFileURL:"); +final _objc_msgSend_25 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_fileTotalCount = objc.registerName("fileTotalCount"); +late final _sel_setFileTotalCount_ = objc.registerName("setFileTotalCount:"); +late final _sel_fileCompletedCount = objc.registerName("fileCompletedCount"); +late final _sel_setFileCompletedCount_ = + objc.registerName("setFileCompletedCount:"); +late final _sel_publish = objc.registerName("publish"); +late final _sel_unpublish = objc.registerName("unpublish"); +ffi.Pointer _ObjCBlock_ffiVoid_NSProgress_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer arg0)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer)>()(arg0); +ffi.Pointer _ObjCBlock_ffiVoid_NSProgress_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as ffi.Pointer Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSProgress extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSProgress._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSProgress castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSProgress._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSProgress.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSProgress_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSProgress.fromFunction( + ObjCBlock_ffiVoid? Function(NSProgress) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSProgress_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => + fn(NSProgress.castFromPointer(arg0, retain: true, release: true)) + ?.retainAndReturnPointer() ?? + ffi.nullptr)); + static ffi.Pointer? _dartFuncTrampoline; + + ObjCBlock_ffiVoid? call(NSProgress arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction Function(ffi.Pointer, ffi.Pointer)>() + (pointer, arg0.pointer) + .address == + 0 + ? null + : ObjCBlock_ffiVoid.castFromPointer( + pointer.ref.invoke.cast Function(ffi.Pointer block, ffi.Pointer arg0)>>().asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>()(pointer, arg0.pointer), + retain: false, + release: true); +} + +late final _sel_addSubscriberForFileURL_withPublishingHandler_ = + objc.registerName("addSubscriberForFileURL:withPublishingHandler:"); +final _objc_msgSend_26 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeSubscriber_ = objc.registerName("removeSubscriber:"); +final _objc_msgSend_27 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_isOld = objc.registerName("isOld"); +late final _sel_init = objc.registerName("init"); +late final _sel_new = objc.registerName("new"); + +final class _NSZone extends ffi.Opaque {} + +late final _sel_allocWithZone_ = objc.registerName("allocWithZone:"); +final _objc_msgSend_28 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<_NSZone>)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<_NSZone>)>(); +late final _sel_alloc = objc.registerName("alloc"); +late final _sel_cancelPreviousPerformRequestsWithTarget_selector_object_ = objc + .registerName("cancelPreviousPerformRequestsWithTarget:selector:object:"); +final _objc_msgSend_29 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_cancelPreviousPerformRequestsWithTarget_ = + objc.registerName("cancelPreviousPerformRequestsWithTarget:"); +late final _sel_accessInstanceVariablesDirectly = + objc.registerName("accessInstanceVariablesDirectly"); +late final _sel_useStoredAccessor = objc.registerName("useStoredAccessor"); +late final _sel_keyPathsForValuesAffectingValueForKey_ = + objc.registerName("keyPathsForValuesAffectingValueForKey:"); +final _objc_msgSend_30 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_automaticallyNotifiesObserversForKey_ = + objc.registerName("automaticallyNotifiesObserversForKey:"); +final _objc_msgSend_31 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setKeys_triggerChangeNotificationsForDependentKey_ = + objc.registerName("setKeys:triggerChangeNotificationsForDependentKey:"); +final _objc_msgSend_32 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_classFallbacksForKeyedArchiver = + objc.registerName("classFallbacksForKeyedArchiver"); +final _objc_msgSend_33 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_classForKeyedUnarchiver = + objc.registerName("classForKeyedUnarchiver"); +final _objc_msgSend_0 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_isKindOfClass_ = objc.registerName("isKindOfClass:"); + +/// NSBundle +class NSBundle extends objc.NSObject { + NSBundle._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSBundle] that points to the same underlying object as [other]. + NSBundle.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSBundle] that wraps the given raw object pointer. + NSBundle.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSBundle]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSBundle); + } + + /// mainBundle + static NSBundle getMainBundle() { + final _ret = _objc_msgSend_34(_class_NSBundle, _sel_mainBundle); + return NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// bundleWithPath: + static NSBundle? bundleWithPath_(objc.NSString path) { + final _ret = + _objc_msgSend_35(_class_NSBundle, _sel_bundleWithPath_, path.pointer); + return _ret.address == 0 + ? null + : NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithPath: + NSBundle? initWithPath_(objc.NSString path) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_initWithPath_, path.pointer); + return _ret.address == 0 + ? null + : NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// bundleWithURL: + static NSBundle? bundleWithURL_(objc.NSURL url) { + final _ret = + _objc_msgSend_36(_class_NSBundle, _sel_bundleWithURL_, url.pointer); + return _ret.address == 0 + ? null + : NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithURL: + NSBundle? initWithURL_(objc.NSURL url) { + final _ret = _objc_msgSend_36(this.pointer, _sel_initWithURL_, url.pointer); + return _ret.address == 0 + ? null + : NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// bundleForClass: + static NSBundle bundleForClass_(objc.ObjCObjectBase aClass) { + final _ret = + _objc_msgSend_37(_class_NSBundle, _sel_bundleForClass_, aClass.pointer); + return NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// bundleWithIdentifier: + static NSBundle? bundleWithIdentifier_(objc.NSString identifier) { + final _ret = _objc_msgSend_38( + _class_NSBundle, _sel_bundleWithIdentifier_, identifier.pointer); + return _ret.address == 0 + ? null + : NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// allBundles + static objc.NSArray getAllBundles() { + final _ret = _objc_msgSend_33(_class_NSBundle, _sel_allBundles); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// allFrameworks + static objc.NSArray getAllFrameworks() { + final _ret = _objc_msgSend_33(_class_NSBundle, _sel_allFrameworks); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// load + bool load() { + return _objc_msgSend_13(this.pointer, _sel_load); + } + + /// isLoaded + bool get loaded { + return _objc_msgSend_13(this.pointer, _sel_isLoaded); + } + + /// unload + bool unload() { + return _objc_msgSend_13(this.pointer, _sel_unload); + } + + /// preflightAndReturnError: + bool preflightAndReturnError_( + ffi.Pointer> error) { + return _objc_msgSend_39(this.pointer, _sel_preflightAndReturnError_, error); + } + + /// loadAndReturnError: + bool loadAndReturnError_(ffi.Pointer> error) { + return _objc_msgSend_39(this.pointer, _sel_loadAndReturnError_, error); + } + + /// bundleURL + objc.NSURL get bundleURL { + final _ret = _objc_msgSend_40(this.pointer, _sel_bundleURL); + return objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// resourceURL + objc.NSURL? get resourceURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_resourceURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// executableURL + objc.NSURL? get executableURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_executableURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// URLForAuxiliaryExecutable: + objc.NSURL? URLForAuxiliaryExecutable_(objc.NSString executableName) { + final _ret = _objc_msgSend_41( + this.pointer, _sel_URLForAuxiliaryExecutable_, executableName.pointer); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// privateFrameworksURL + objc.NSURL? get privateFrameworksURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_privateFrameworksURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// sharedFrameworksURL + objc.NSURL? get sharedFrameworksURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_sharedFrameworksURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// sharedSupportURL + objc.NSURL? get sharedSupportURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_sharedSupportURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// builtInPlugInsURL + objc.NSURL? get builtInPlugInsURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_builtInPlugInsURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// appStoreReceiptURL + objc.NSURL? get appStoreReceiptURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_appStoreReceiptURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// bundlePath + objc.NSString get bundlePath { + final _ret = _objc_msgSend_11(this.pointer, _sel_bundlePath); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// resourcePath + objc.NSString? get resourcePath { + final _ret = _objc_msgSend_20(this.pointer, _sel_resourcePath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// executablePath + objc.NSString? get executablePath { + final _ret = _objc_msgSend_20(this.pointer, _sel_executablePath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// pathForAuxiliaryExecutable: + objc.NSString? pathForAuxiliaryExecutable_(objc.NSString executableName) { + final _ret = _objc_msgSend_42( + this.pointer, _sel_pathForAuxiliaryExecutable_, executableName.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// privateFrameworksPath + objc.NSString? get privateFrameworksPath { + final _ret = _objc_msgSend_20(this.pointer, _sel_privateFrameworksPath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// sharedFrameworksPath + objc.NSString? get sharedFrameworksPath { + final _ret = _objc_msgSend_20(this.pointer, _sel_sharedFrameworksPath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// sharedSupportPath + objc.NSString? get sharedSupportPath { + final _ret = _objc_msgSend_20(this.pointer, _sel_sharedSupportPath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// builtInPlugInsPath + objc.NSString? get builtInPlugInsPath { + final _ret = _objc_msgSend_20(this.pointer, _sel_builtInPlugInsPath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// URLForResource:withExtension:subdirectory:inBundleWithURL: + static objc.NSURL? URLForResource_withExtension_subdirectory_inBundleWithURL_( + objc.NSString? name, + objc.NSString? ext, + objc.NSString? subpath, + objc.NSURL bundleURL) { + final _ret = _objc_msgSend_43( + _class_NSBundle, + _sel_URLForResource_withExtension_subdirectory_inBundleWithURL_, + name?.pointer ?? ffi.nullptr, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr, + bundleURL.pointer); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// URLsForResourcesWithExtension:subdirectory:inBundleWithURL: + static objc.NSArray? + URLsForResourcesWithExtension_subdirectory_inBundleWithURL_( + objc.NSString? ext, objc.NSString? subpath, objc.NSURL bundleURL) { + final _ret = _objc_msgSend_44( + _class_NSBundle, + _sel_URLsForResourcesWithExtension_subdirectory_inBundleWithURL_, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr, + bundleURL.pointer); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// URLForResource:withExtension: + objc.NSURL? URLForResource_withExtension_( + objc.NSString? name, objc.NSString? ext) { + final _ret = _objc_msgSend_45( + this.pointer, + _sel_URLForResource_withExtension_, + name?.pointer ?? ffi.nullptr, + ext?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// URLForResource:withExtension:subdirectory: + objc.NSURL? URLForResource_withExtension_subdirectory_( + objc.NSString? name, objc.NSString? ext, objc.NSString? subpath) { + final _ret = _objc_msgSend_46( + this.pointer, + _sel_URLForResource_withExtension_subdirectory_, + name?.pointer ?? ffi.nullptr, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// URLForResource:withExtension:subdirectory:localization: + objc.NSURL? URLForResource_withExtension_subdirectory_localization_( + objc.NSString? name, + objc.NSString? ext, + objc.NSString? subpath, + objc.NSString? localizationName) { + final _ret = _objc_msgSend_47( + this.pointer, + _sel_URLForResource_withExtension_subdirectory_localization_, + name?.pointer ?? ffi.nullptr, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr, + localizationName?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// URLsForResourcesWithExtension:subdirectory: + objc.NSArray? URLsForResourcesWithExtension_subdirectory_( + objc.NSString? ext, objc.NSString? subpath) { + final _ret = _objc_msgSend_48( + this.pointer, + _sel_URLsForResourcesWithExtension_subdirectory_, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// URLsForResourcesWithExtension:subdirectory:localization: + objc.NSArray? URLsForResourcesWithExtension_subdirectory_localization_( + objc.NSString? ext, + objc.NSString? subpath, + objc.NSString? localizationName) { + final _ret = _objc_msgSend_49( + this.pointer, + _sel_URLsForResourcesWithExtension_subdirectory_localization_, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr, + localizationName?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// pathForResource:ofType:inDirectory: + objc.NSString? pathForResource_ofType_inDirectory_( + objc.NSString? name, objc.NSString? ext, objc.NSString? subpath) { + final _ret = _objc_msgSend_50( + this.pointer, + _sel_pathForResource_ofType_inDirectory_, + name?.pointer ?? ffi.nullptr, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// pathsForResourcesOfType:inDirectory: + objc.NSArray pathsForResourcesOfType_inDirectory_( + objc.NSString? ext, objc.NSString? subpath) { + final _ret = _objc_msgSend_51( + this.pointer, + _sel_pathsForResourcesOfType_inDirectory_, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// pathForResource:ofType: + objc.NSString? pathForResource_ofType_( + objc.NSString? name, objc.NSString? ext) { + final _ret = _objc_msgSend_52(this.pointer, _sel_pathForResource_ofType_, + name?.pointer ?? ffi.nullptr, ext?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// pathForResource:ofType:inDirectory:forLocalization: + objc.NSString? pathForResource_ofType_inDirectory_forLocalization_( + objc.NSString? name, + objc.NSString? ext, + objc.NSString? subpath, + objc.NSString? localizationName) { + final _ret = _objc_msgSend_53( + this.pointer, + _sel_pathForResource_ofType_inDirectory_forLocalization_, + name?.pointer ?? ffi.nullptr, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr, + localizationName?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// pathsForResourcesOfType:inDirectory:forLocalization: + objc.NSArray pathsForResourcesOfType_inDirectory_forLocalization_( + objc.NSString? ext, + objc.NSString? subpath, + objc.NSString? localizationName) { + final _ret = _objc_msgSend_54( + this.pointer, + _sel_pathsForResourcesOfType_inDirectory_forLocalization_, + ext?.pointer ?? ffi.nullptr, + subpath?.pointer ?? ffi.nullptr, + localizationName?.pointer ?? ffi.nullptr); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// localizedStringForKey:value:table: + objc.NSString localizedStringForKey_value_table_( + objc.NSString key, objc.NSString? value, objc.NSString? tableName) { + final _ret = _objc_msgSend_55( + this.pointer, + _sel_localizedStringForKey_value_table_, + key.pointer, + value?.pointer ?? ffi.nullptr, + tableName?.pointer ?? ffi.nullptr); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// localizedAttributedStringForKey:value:table: + NSAttributedString localizedAttributedStringForKey_value_table_( + objc.NSString key, objc.NSString? value, objc.NSString? tableName) { + final _ret = _objc_msgSend_81( + this.pointer, + _sel_localizedAttributedStringForKey_value_table_, + key.pointer, + value?.pointer ?? ffi.nullptr, + tableName?.pointer ?? ffi.nullptr); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// bundleIdentifier + objc.NSString? get bundleIdentifier { + final _ret = _objc_msgSend_20(this.pointer, _sel_bundleIdentifier); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// infoDictionary + objc.NSDictionary? get infoDictionary { + final _ret = _objc_msgSend_82(this.pointer, _sel_infoDictionary); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// localizedInfoDictionary + objc.NSDictionary? get localizedInfoDictionary { + final _ret = _objc_msgSend_82(this.pointer, _sel_localizedInfoDictionary); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// objectForInfoDictionaryKey: + objc.ObjCObjectBase? objectForInfoDictionaryKey_(objc.NSString key) { + final _ret = _objc_msgSend_35( + this.pointer, _sel_objectForInfoDictionaryKey_, key.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// classNamed: + objc.ObjCObjectBase? classNamed_(objc.NSString className) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_classNamed_, className.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// principalClass + objc.ObjCObjectBase? get principalClass { + final _ret = _objc_msgSend_83(this.pointer, _sel_principalClass); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// preferredLocalizations + objc.NSArray get preferredLocalizations { + final _ret = _objc_msgSend_33(this.pointer, _sel_preferredLocalizations); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// localizations + objc.NSArray get localizations { + final _ret = _objc_msgSend_33(this.pointer, _sel_localizations); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// developmentLocalization + objc.NSString? get developmentLocalization { + final _ret = _objc_msgSend_20(this.pointer, _sel_developmentLocalization); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// preferredLocalizationsFromArray: + static objc.NSArray preferredLocalizationsFromArray_( + objc.NSArray localizationsArray) { + final _ret = _objc_msgSend_84(_class_NSBundle, + _sel_preferredLocalizationsFromArray_, localizationsArray.pointer); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// preferredLocalizationsFromArray:forPreferences: + static objc.NSArray preferredLocalizationsFromArray_forPreferences_( + objc.NSArray localizationsArray, objc.NSArray? preferencesArray) { + final _ret = _objc_msgSend_85( + _class_NSBundle, + _sel_preferredLocalizationsFromArray_forPreferences_, + localizationsArray.pointer, + preferencesArray?.pointer ?? ffi.nullptr); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// executableArchitectures + objc.NSArray? get executableArchitectures { + final _ret = _objc_msgSend_86(this.pointer, _sel_executableArchitectures); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setPreservationPriority:forTags: + void setPreservationPriority_forTags_(double priority, objc.NSSet tags) { + _objc_msgSend_87(this.pointer, _sel_setPreservationPriority_forTags_, + priority, tags.pointer); + } + + /// preservationPriorityForTag: + double preservationPriorityForTag_(objc.NSString tag) { + return objc.useMsgSendVariants + ? _objc_msgSend_88Fpret( + this.pointer, _sel_preservationPriorityForTag_, tag.pointer) + : _objc_msgSend_88( + this.pointer, _sel_preservationPriorityForTag_, tag.pointer); + } + + /// init + NSBundle init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSBundle.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSBundle new1() { + final _ret = _objc_msgSend_19(_class_NSBundle, _sel_new); + return NSBundle.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSBundle allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSBundle, _sel_allocWithZone_, zone); + return NSBundle.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSBundle alloc() { + final _ret = _objc_msgSend_19(_class_NSBundle, _sel_alloc); + return NSBundle.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSBundle, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSBundle, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSBundle, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSBundle, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSBundle, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSBundle, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSBundle, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSBundle, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSBundle, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSBundle = objc.getClass("classes.NSBundle"); +late final _sel_mainBundle = objc.registerName("mainBundle"); +final _objc_msgSend_34 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_bundleWithPath_ = objc.registerName("bundleWithPath:"); +final _objc_msgSend_35 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithPath_ = objc.registerName("initWithPath:"); +late final _sel_bundleWithURL_ = objc.registerName("bundleWithURL:"); +final _objc_msgSend_36 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithURL_ = objc.registerName("initWithURL:"); +late final _sel_bundleForClass_ = objc.registerName("bundleForClass:"); +final _objc_msgSend_37 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_bundleWithIdentifier_ = + objc.registerName("bundleWithIdentifier:"); +final _objc_msgSend_38 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_allBundles = objc.registerName("allBundles"); +late final _sel_allFrameworks = objc.registerName("allFrameworks"); +late final _sel_load = objc.registerName("load"); +late final _sel_isLoaded = objc.registerName("isLoaded"); +late final _sel_unload = objc.registerName("unload"); +late final _sel_preflightAndReturnError_ = + objc.registerName("preflightAndReturnError:"); +final _objc_msgSend_39 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_loadAndReturnError_ = objc.registerName("loadAndReturnError:"); +late final _sel_bundleURL = objc.registerName("bundleURL"); +final _objc_msgSend_40 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_resourceURL = objc.registerName("resourceURL"); +late final _sel_executableURL = objc.registerName("executableURL"); +late final _sel_URLForAuxiliaryExecutable_ = + objc.registerName("URLForAuxiliaryExecutable:"); +final _objc_msgSend_41 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_privateFrameworksURL = + objc.registerName("privateFrameworksURL"); +late final _sel_sharedFrameworksURL = objc.registerName("sharedFrameworksURL"); +late final _sel_sharedSupportURL = objc.registerName("sharedSupportURL"); +late final _sel_builtInPlugInsURL = objc.registerName("builtInPlugInsURL"); +late final _sel_appStoreReceiptURL = objc.registerName("appStoreReceiptURL"); +late final _sel_bundlePath = objc.registerName("bundlePath"); +late final _sel_resourcePath = objc.registerName("resourcePath"); +late final _sel_executablePath = objc.registerName("executablePath"); +late final _sel_pathForAuxiliaryExecutable_ = + objc.registerName("pathForAuxiliaryExecutable:"); +final _objc_msgSend_42 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_privateFrameworksPath = + objc.registerName("privateFrameworksPath"); +late final _sel_sharedFrameworksPath = + objc.registerName("sharedFrameworksPath"); +late final _sel_sharedSupportPath = objc.registerName("sharedSupportPath"); +late final _sel_builtInPlugInsPath = objc.registerName("builtInPlugInsPath"); +late final _sel_URLForResource_withExtension_subdirectory_inBundleWithURL_ = + objc.registerName( + "URLForResource:withExtension:subdirectory:inBundleWithURL:"); +final _objc_msgSend_43 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_URLsForResourcesWithExtension_subdirectory_inBundleWithURL_ = + objc.registerName( + "URLsForResourcesWithExtension:subdirectory:inBundleWithURL:"); +final _objc_msgSend_44 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_URLForResource_withExtension_ = + objc.registerName("URLForResource:withExtension:"); +final _objc_msgSend_45 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_URLForResource_withExtension_subdirectory_ = + objc.registerName("URLForResource:withExtension:subdirectory:"); +final _objc_msgSend_46 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_URLForResource_withExtension_subdirectory_localization_ = objc + .registerName("URLForResource:withExtension:subdirectory:localization:"); +final _objc_msgSend_47 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_URLsForResourcesWithExtension_subdirectory_ = + objc.registerName("URLsForResourcesWithExtension:subdirectory:"); +final _objc_msgSend_48 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_URLsForResourcesWithExtension_subdirectory_localization_ = objc + .registerName("URLsForResourcesWithExtension:subdirectory:localization:"); +final _objc_msgSend_49 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_pathForResource_ofType_inDirectory_ = + objc.registerName("pathForResource:ofType:inDirectory:"); +final _objc_msgSend_50 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_pathsForResourcesOfType_inDirectory_ = + objc.registerName("pathsForResourcesOfType:inDirectory:"); +final _objc_msgSend_51 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_pathForResource_ofType_ = + objc.registerName("pathForResource:ofType:"); +final _objc_msgSend_52 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_pathForResource_ofType_inDirectory_forLocalization_ = + objc.registerName("pathForResource:ofType:inDirectory:forLocalization:"); +final _objc_msgSend_53 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_pathsForResourcesOfType_inDirectory_forLocalization_ = + objc.registerName("pathsForResourcesOfType:inDirectory:forLocalization:"); +final _objc_msgSend_54 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_localizedStringForKey_value_table_ = + objc.registerName("localizedStringForKey:value:table:"); +final _objc_msgSend_55 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSAttributedString +class NSAttributedString extends objc.NSObject { + NSAttributedString._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSAttributedString] that points to the same underlying object as [other]. + NSAttributedString.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSAttributedString] that wraps the given raw object pointer. + NSAttributedString.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSAttributedString]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSAttributedString); + } + + /// string + objc.NSString get string { + final _ret = _objc_msgSend_11(this.pointer, _sel_string); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// attributesAtIndex:effectiveRange: + objc.NSDictionary attributesAtIndex_effectiveRange_( + int location, ffi.Pointer<_NSRange> range) { + final _ret = _objc_msgSend_56( + this.pointer, _sel_attributesAtIndex_effectiveRange_, location, range); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// length + int get length { + return _objc_msgSend_57(this.pointer, _sel_length); + } + + /// attribute:atIndex:effectiveRange: + objc.ObjCObjectBase? attribute_atIndex_effectiveRange_( + objc.NSString attrName, int location, ffi.Pointer<_NSRange> range) { + final _ret = _objc_msgSend_58( + this.pointer, + _sel_attribute_atIndex_effectiveRange_, + attrName.pointer, + location, + range); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributedSubstringFromRange: + NSAttributedString attributedSubstringFromRange_(_NSRange range) { + final _ret = _objc_msgSend_59( + this.pointer, _sel_attributedSubstringFromRange_, range); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// attributesAtIndex:longestEffectiveRange:inRange: + objc.NSDictionary attributesAtIndex_longestEffectiveRange_inRange_( + int location, ffi.Pointer<_NSRange> range, _NSRange rangeLimit) { + final _ret = _objc_msgSend_60( + this.pointer, + _sel_attributesAtIndex_longestEffectiveRange_inRange_, + location, + range, + rangeLimit); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// attribute:atIndex:longestEffectiveRange:inRange: + objc.ObjCObjectBase? attribute_atIndex_longestEffectiveRange_inRange_( + objc.NSString attrName, + int location, + ffi.Pointer<_NSRange> range, + _NSRange rangeLimit) { + final _ret = _objc_msgSend_61( + this.pointer, + _sel_attribute_atIndex_longestEffectiveRange_inRange_, + attrName.pointer, + location, + range, + rangeLimit); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// isEqualToAttributedString: + bool isEqualToAttributedString_(NSAttributedString other) { + return _objc_msgSend_62( + this.pointer, _sel_isEqualToAttributedString_, other.pointer); + } + + /// initWithString: + NSAttributedString initWithString_(objc.NSString str) { + final _ret = + _objc_msgSend_63(this.pointer, _sel_initWithString_, str.pointer); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithString:attributes: + NSAttributedString initWithString_attributes_( + objc.NSString str, objc.NSDictionary? attrs) { + final _ret = _objc_msgSend_64(this.pointer, _sel_initWithString_attributes_, + str.pointer, attrs?.pointer ?? ffi.nullptr); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithAttributedString: + NSAttributedString initWithAttributedString_(NSAttributedString attrStr) { + final _ret = _objc_msgSend_65( + this.pointer, _sel_initWithAttributedString_, attrStr.pointer); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// enumerateAttributesInRange:options:usingBlock: + void enumerateAttributesInRange_options_usingBlock_( + _NSRange enumerationRange, + NSAttributedStringEnumerationOptions opts, + ObjCBlock_ffiVoid_NSDictionary_NSRange_bool block) { + _objc_msgSend_66( + this.pointer, + _sel_enumerateAttributesInRange_options_usingBlock_, + enumerationRange, + opts.value, + block.pointer); + } + + /// enumerateAttribute:inRange:options:usingBlock: + void enumerateAttribute_inRange_options_usingBlock_( + objc.NSString attrName, + _NSRange enumerationRange, + NSAttributedStringEnumerationOptions opts, + ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool block) { + _objc_msgSend_67( + this.pointer, + _sel_enumerateAttribute_inRange_options_usingBlock_, + attrName.pointer, + enumerationRange, + opts.value, + block.pointer); + } + + /// initWithContentsOfMarkdownFileAtURL:options:baseURL:error: + NSAttributedString? + initWithContentsOfMarkdownFileAtURL_options_baseURL_error_( + objc.NSURL markdownFile, + NSAttributedStringMarkdownParsingOptions? options, + objc.NSURL? baseURL, + ffi.Pointer> error) { + final _ret = _objc_msgSend_72( + this.pointer, + _sel_initWithContentsOfMarkdownFileAtURL_options_baseURL_error_, + markdownFile.pointer, + options?.pointer ?? ffi.nullptr, + baseURL?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : NSAttributedString.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithMarkdown:options:baseURL:error: + NSAttributedString? initWithMarkdown_options_baseURL_error_( + objc.NSData markdown, + NSAttributedStringMarkdownParsingOptions? options, + objc.NSURL? baseURL, + ffi.Pointer> error) { + final _ret = _objc_msgSend_73( + this.pointer, + _sel_initWithMarkdown_options_baseURL_error_, + markdown.pointer, + options?.pointer ?? ffi.nullptr, + baseURL?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : NSAttributedString.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithMarkdownString:options:baseURL:error: + NSAttributedString? initWithMarkdownString_options_baseURL_error_( + objc.NSString markdownString, + NSAttributedStringMarkdownParsingOptions? options, + objc.NSURL? baseURL, + ffi.Pointer> error) { + final _ret = _objc_msgSend_74( + this.pointer, + _sel_initWithMarkdownString_options_baseURL_error_, + markdownString.pointer, + options?.pointer ?? ffi.nullptr, + baseURL?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : NSAttributedString.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithFormat:options:locale: + NSAttributedString initWithFormat_options_locale_(NSAttributedString format, + NSAttributedStringFormattingOptions options, objc.NSLocale? locale) { + final _ret = _objc_msgSend_75( + this.pointer, + _sel_initWithFormat_options_locale_, + format.pointer, + options.value, + locale?.pointer ?? ffi.nullptr); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat: + static NSAttributedString localizedAttributedStringWithFormat_( + NSAttributedString format) { + final _ret = _objc_msgSend_65(_class_NSAttributedString, + _sel_localizedAttributedStringWithFormat_, format.pointer); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat:options: + static NSAttributedString localizedAttributedStringWithFormat_options_( + NSAttributedString format, NSAttributedStringFormattingOptions options) { + final _ret = _objc_msgSend_76( + _class_NSAttributedString, + _sel_localizedAttributedStringWithFormat_options_, + format.pointer, + options.value); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithFormat:options:locale:context: + NSAttributedString initWithFormat_options_locale_context_( + NSAttributedString format, + NSAttributedStringFormattingOptions options, + objc.NSLocale? locale, + objc.NSDictionary context) { + final _ret = _objc_msgSend_77( + this.pointer, + _sel_initWithFormat_options_locale_context_, + format.pointer, + options.value, + locale?.pointer ?? ffi.nullptr, + context.pointer); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat:context: + static NSAttributedString localizedAttributedStringWithFormat_context_( + NSAttributedString format, objc.NSDictionary context) { + final _ret = _objc_msgSend_78( + _class_NSAttributedString, + _sel_localizedAttributedStringWithFormat_context_, + format.pointer, + context.pointer); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat:options:context: + static NSAttributedString + localizedAttributedStringWithFormat_options_context_( + NSAttributedString format, + NSAttributedStringFormattingOptions options, + objc.NSDictionary context) { + final _ret = _objc_msgSend_79( + _class_NSAttributedString, + _sel_localizedAttributedStringWithFormat_options_context_, + format.pointer, + options.value, + context.pointer); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// attributedStringByInflectingString + NSAttributedString attributedStringByInflectingString() { + final _ret = + _objc_msgSend_80(this.pointer, _sel_attributedStringByInflectingString); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSAttributedString init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSAttributedString new1() { + final _ret = _objc_msgSend_19(_class_NSAttributedString, _sel_new); + return NSAttributedString.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSAttributedString allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSAttributedString, _sel_allocWithZone_, zone); + return NSAttributedString.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSAttributedString alloc() { + final _ret = _objc_msgSend_19(_class_NSAttributedString, _sel_alloc); + return NSAttributedString.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSAttributedString, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSAttributedString, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSAttributedString, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSAttributedString, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSAttributedString, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSAttributedString, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSAttributedString, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSAttributedString, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSAttributedString, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSAttributedString = + objc.getClass("classes.NSAttributedString"); +late final _sel_string = objc.registerName("string"); + +final class _NSRange extends ffi.Struct { + @ffi.UnsignedLong() + external int location; + + @ffi.UnsignedLong() + external int length; +} + +late final _sel_attributesAtIndex_effectiveRange_ = + objc.registerName("attributesAtIndex:effectiveRange:"); +final _objc_msgSend_56 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer<_NSRange>)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int, ffi.Pointer<_NSRange>)>(); +late final _sel_length = objc.registerName("length"); +final _objc_msgSend_57 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_attribute_atIndex_effectiveRange_ = + objc.registerName("attribute:atIndex:effectiveRange:"); +final _objc_msgSend_58 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer<_NSRange>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer<_NSRange>)>(); +late final _sel_attributedSubstringFromRange_ = + objc.registerName("attributedSubstringFromRange:"); +final _objc_msgSend_59 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, _NSRange)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, _NSRange)>(); +late final _sel_attributesAtIndex_longestEffectiveRange_inRange_ = + objc.registerName("attributesAtIndex:longestEffectiveRange:inRange:"); +final _objc_msgSend_60 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer<_NSRange>, + _NSRange)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer<_NSRange>, + _NSRange)>(); +late final _sel_attribute_atIndex_longestEffectiveRange_inRange_ = + objc.registerName("attribute:atIndex:longestEffectiveRange:inRange:"); +final _objc_msgSend_61 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer<_NSRange>, + _NSRange)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer<_NSRange>, + _NSRange)>(); +late final _sel_isEqualToAttributedString_ = + objc.registerName("isEqualToAttributedString:"); +final _objc_msgSend_62 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithString_ = objc.registerName("initWithString:"); +final _objc_msgSend_63 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithString_attributes_ = + objc.registerName("initWithString:attributes:"); +final _objc_msgSend_64 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithAttributedString_ = + objc.registerName("initWithAttributedString:"); +final _objc_msgSend_65 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +enum NSAttributedStringEnumerationOptions { + NSAttributedStringEnumerationReverse(2), + NSAttributedStringEnumerationLongestEffectiveRangeNotRequired(1048576); + + final int value; + const NSAttributedStringEnumerationOptions(this.value); + + static NSAttributedStringEnumerationOptions fromValue(int value) => + switch (value) { + 2 => NSAttributedStringEnumerationReverse, + 1048576 => + NSAttributedStringEnumerationLongestEffectiveRangeNotRequired, + _ => throw ArgumentError( + "Unknown value for NSAttributedStringEnumerationOptions: $value"), + }; +} + +void _ObjCBlock_ffiVoid_NSDictionary_NSRange_bool_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + _NSRange arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + _NSRange arg1, ffi.Pointer arg2)>>() + .asFunction< + void Function(ffi.Pointer, _NSRange, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_NSDictionary_NSRange_bool_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + _NSRange arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function(ffi.Pointer, + _NSRange, ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSDictionary_NSRange_bool extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSDictionary_NSRange_bool._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSDictionary_NSRange_bool castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSDictionary_NSRange_bool._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDictionary_NSRange_bool.fromFunctionPointer( + ffi.Pointer< + ffi + .NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + _NSRange arg1, ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDictionary_NSRange_bool_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDictionary_NSRange_bool.fromFunction( + void Function(objc.NSDictionary, _NSRange, ffi.Pointer) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDictionary_NSRange_bool_closureTrampoline) + .cast(), + (ffi.Pointer arg0, _NSRange arg1, ffi.Pointer arg2) => + fn(objc.NSDictionary.castFromPointer(arg0, retain: true, release: true), + arg1, arg2))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSDictionary_NSRange_bool.listener( + void Function(objc.NSDictionary, _NSRange, ffi.Pointer) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSDictionary_NSRange_bool( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSDictionary_NSRange_bool_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, _NSRange arg1, + ffi.Pointer arg2) => + fn(objc.NSDictionary.castFromPointer(arg0, retain: false, release: true), arg1, arg2)))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call( + objc.NSDictionary arg0, _NSRange arg1, ffi.Pointer arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + _NSRange arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>()(pointer, arg0.pointer, arg1, arg2); +} + +late final _sel_enumerateAttributesInRange_options_usingBlock_ = + objc.registerName("enumerateAttributesInRange:options:usingBlock:"); +final _objc_msgSend_66 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + int, + ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + _NSRange arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + _NSRange arg1, ffi.Pointer arg2)>>() + .asFunction< + void Function(ffi.Pointer, _NSRange, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + _NSRange arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function(ffi.Pointer, + _NSRange, ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + _NSRange arg1, ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool.fromFunction( + void Function(objc.ObjCObjectBase?, _NSRange, ffi.Pointer) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool_closureTrampoline) + .cast(), + (ffi.Pointer arg0, _NSRange arg1, ffi.Pointer arg2) => + fn(arg0.address == 0 ? null : objc.ObjCObjectBase(arg0, retain: true, release: true), + arg1, arg2))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool.listener( + void Function(objc.ObjCObjectBase?, _NSRange, ffi.Pointer) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_objcObjCObject_NSRange_bool_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, _NSRange arg1, + ffi.Pointer arg2) => + fn(arg0.address == 0 ? null : objc.ObjCObjectBase(arg0, retain: false, release: true), arg1, arg2)))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(objc.ObjCObjectBase? arg0, _NSRange arg1, + ffi.Pointer arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + _NSRange arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr, arg1, arg2); +} + +late final _sel_enumerateAttribute_inRange_options_usingBlock_ = + objc.registerName("enumerateAttribute:inRange:options:usingBlock:"); +final _objc_msgSend_67 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange, + int, + ffi.Pointer)>(); + +/// NSAttributedStringMarkdownParsingOptions +class NSAttributedStringMarkdownParsingOptions extends objc.NSObject { + NSAttributedStringMarkdownParsingOptions._( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSAttributedStringMarkdownParsingOptions] that points to the same underlying object as [other]. + NSAttributedStringMarkdownParsingOptions.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSAttributedStringMarkdownParsingOptions] that wraps the given raw object pointer. + NSAttributedStringMarkdownParsingOptions.castFromPointer( + ffi.Pointer other, + {bool retain = false, + bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSAttributedStringMarkdownParsingOptions]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, + _class_NSAttributedStringMarkdownParsingOptions); + } + + /// init + NSAttributedStringMarkdownParsingOptions init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSAttributedStringMarkdownParsingOptions.castFromPointer(_ret, + retain: true, release: true); + } + + /// allowsExtendedAttributes + bool get allowsExtendedAttributes { + return _objc_msgSend_13(this.pointer, _sel_allowsExtendedAttributes); + } + + /// setAllowsExtendedAttributes: + set allowsExtendedAttributes(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAllowsExtendedAttributes_, value); + } + + /// interpretedSyntax + NSAttributedStringMarkdownInterpretedSyntax get interpretedSyntax { + final _ret = _objc_msgSend_68(this.pointer, _sel_interpretedSyntax); + return NSAttributedStringMarkdownInterpretedSyntax.fromValue(_ret); + } + + /// setInterpretedSyntax: + set interpretedSyntax(NSAttributedStringMarkdownInterpretedSyntax value) { + return _objc_msgSend_69( + this.pointer, _sel_setInterpretedSyntax_, value.value); + } + + /// failurePolicy + NSAttributedStringMarkdownParsingFailurePolicy get failurePolicy { + final _ret = _objc_msgSend_70(this.pointer, _sel_failurePolicy); + return NSAttributedStringMarkdownParsingFailurePolicy.fromValue(_ret); + } + + /// setFailurePolicy: + set failurePolicy(NSAttributedStringMarkdownParsingFailurePolicy value) { + return _objc_msgSend_71(this.pointer, _sel_setFailurePolicy_, value.value); + } + + /// languageCode + objc.NSString? get languageCode { + final _ret = _objc_msgSend_20(this.pointer, _sel_languageCode); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setLanguageCode: + set languageCode(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setLanguageCode_, value?.pointer ?? ffi.nullptr); + } + + /// appliesSourcePositionAttributes + bool get appliesSourcePositionAttributes { + return _objc_msgSend_13(this.pointer, _sel_appliesSourcePositionAttributes); + } + + /// setAppliesSourcePositionAttributes: + set appliesSourcePositionAttributes(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAppliesSourcePositionAttributes_, value); + } + + /// new + static NSAttributedStringMarkdownParsingOptions new1() { + final _ret = _objc_msgSend_19( + _class_NSAttributedStringMarkdownParsingOptions, _sel_new); + return NSAttributedStringMarkdownParsingOptions.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSAttributedStringMarkdownParsingOptions allocWithZone_( + ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSAttributedStringMarkdownParsingOptions, + _sel_allocWithZone_, + zone); + return NSAttributedStringMarkdownParsingOptions.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSAttributedStringMarkdownParsingOptions alloc() { + final _ret = _objc_msgSend_19( + _class_NSAttributedStringMarkdownParsingOptions, _sel_alloc); + return NSAttributedStringMarkdownParsingOptions.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSAttributedStringMarkdownParsingOptions, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSAttributedStringMarkdownParsingOptions, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13(_class_NSAttributedStringMarkdownParsingOptions, + _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSAttributedStringMarkdownParsingOptions, + _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30( + _class_NSAttributedStringMarkdownParsingOptions, + _sel_keyPathsForValuesAffectingValueForKey_, + key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSAttributedStringMarkdownParsingOptions, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSAttributedStringMarkdownParsingOptions, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSAttributedStringMarkdownParsingOptions, + _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSAttributedStringMarkdownParsingOptions, + _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSAttributedStringMarkdownParsingOptions = + objc.getClass("classes.NSAttributedStringMarkdownParsingOptions"); +late final _sel_allowsExtendedAttributes = + objc.registerName("allowsExtendedAttributes"); +late final _sel_setAllowsExtendedAttributes_ = + objc.registerName("setAllowsExtendedAttributes:"); + +enum NSAttributedStringMarkdownInterpretedSyntax { + NSAttributedStringMarkdownInterpretedSyntaxFull(0), + NSAttributedStringMarkdownInterpretedSyntaxInlineOnly(1), + NSAttributedStringMarkdownInterpretedSyntaxInlineOnlyPreservingWhitespace(2); + + final int value; + const NSAttributedStringMarkdownInterpretedSyntax(this.value); + + static NSAttributedStringMarkdownInterpretedSyntax fromValue(int value) => + switch (value) { + 0 => NSAttributedStringMarkdownInterpretedSyntaxFull, + 1 => NSAttributedStringMarkdownInterpretedSyntaxInlineOnly, + 2 => + NSAttributedStringMarkdownInterpretedSyntaxInlineOnlyPreservingWhitespace, + _ => throw ArgumentError( + "Unknown value for NSAttributedStringMarkdownInterpretedSyntax: $value"), + }; +} + +late final _sel_interpretedSyntax = objc.registerName("interpretedSyntax"); +final _objc_msgSend_68 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setInterpretedSyntax_ = + objc.registerName("setInterpretedSyntax:"); +final _objc_msgSend_69 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSAttributedStringMarkdownParsingFailurePolicy { + NSAttributedStringMarkdownParsingFailureReturnError(0), + NSAttributedStringMarkdownParsingFailureReturnPartiallyParsedIfPossible(1); + + final int value; + const NSAttributedStringMarkdownParsingFailurePolicy(this.value); + + static NSAttributedStringMarkdownParsingFailurePolicy fromValue(int value) => + switch (value) { + 0 => NSAttributedStringMarkdownParsingFailureReturnError, + 1 => + NSAttributedStringMarkdownParsingFailureReturnPartiallyParsedIfPossible, + _ => throw ArgumentError( + "Unknown value for NSAttributedStringMarkdownParsingFailurePolicy: $value"), + }; +} + +late final _sel_failurePolicy = objc.registerName("failurePolicy"); +final _objc_msgSend_70 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setFailurePolicy_ = objc.registerName("setFailurePolicy:"); +final _objc_msgSend_71 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_languageCode = objc.registerName("languageCode"); +late final _sel_setLanguageCode_ = objc.registerName("setLanguageCode:"); +late final _sel_appliesSourcePositionAttributes = + objc.registerName("appliesSourcePositionAttributes"); +late final _sel_setAppliesSourcePositionAttributes_ = + objc.registerName("setAppliesSourcePositionAttributes:"); +late final _sel_initWithContentsOfMarkdownFileAtURL_options_baseURL_error_ = + objc.registerName( + "initWithContentsOfMarkdownFileAtURL:options:baseURL:error:"); +final _objc_msgSend_72 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_initWithMarkdown_options_baseURL_error_ = + objc.registerName("initWithMarkdown:options:baseURL:error:"); +final _objc_msgSend_73 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_initWithMarkdownString_options_baseURL_error_ = + objc.registerName("initWithMarkdownString:options:baseURL:error:"); +final _objc_msgSend_74 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); + +enum NSAttributedStringFormattingOptions { + NSAttributedStringFormattingInsertArgumentAttributesWithoutMerging(1), + NSAttributedStringFormattingApplyReplacementIndexAttribute(2); + + final int value; + const NSAttributedStringFormattingOptions(this.value); + + static NSAttributedStringFormattingOptions fromValue(int value) => + switch (value) { + 1 => NSAttributedStringFormattingInsertArgumentAttributesWithoutMerging, + 2 => NSAttributedStringFormattingApplyReplacementIndexAttribute, + _ => throw ArgumentError( + "Unknown value for NSAttributedStringFormattingOptions: $value"), + }; +} + +late final _sel_initWithFormat_options_locale_ = + objc.registerName("initWithFormat:options:locale:"); +final _objc_msgSend_75 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_localizedAttributedStringWithFormat_ = + objc.registerName("localizedAttributedStringWithFormat:"); +late final _sel_localizedAttributedStringWithFormat_options_ = + objc.registerName("localizedAttributedStringWithFormat:options:"); +final _objc_msgSend_76 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_initWithFormat_options_locale_context_ = + objc.registerName("initWithFormat:options:locale:context:"); +final _objc_msgSend_77 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_localizedAttributedStringWithFormat_context_ = + objc.registerName("localizedAttributedStringWithFormat:context:"); +final _objc_msgSend_78 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_localizedAttributedStringWithFormat_options_context_ = + objc.registerName("localizedAttributedStringWithFormat:options:context:"); +final _objc_msgSend_79 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_attributedStringByInflectingString = + objc.registerName("attributedStringByInflectingString"); +final _objc_msgSend_80 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_localizedAttributedStringForKey_value_table_ = + objc.registerName("localizedAttributedStringForKey:value:table:"); +final _objc_msgSend_81 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_bundleIdentifier = objc.registerName("bundleIdentifier"); +late final _sel_infoDictionary = objc.registerName("infoDictionary"); +final _objc_msgSend_82 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_localizedInfoDictionary = + objc.registerName("localizedInfoDictionary"); +late final _sel_objectForInfoDictionaryKey_ = + objc.registerName("objectForInfoDictionaryKey:"); +late final _sel_classNamed_ = objc.registerName("classNamed:"); +late final _sel_principalClass = objc.registerName("principalClass"); +final _objc_msgSend_83 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_preferredLocalizations = + objc.registerName("preferredLocalizations"); +late final _sel_localizations = objc.registerName("localizations"); +late final _sel_developmentLocalization = + objc.registerName("developmentLocalization"); +late final _sel_preferredLocalizationsFromArray_ = + objc.registerName("preferredLocalizationsFromArray:"); +final _objc_msgSend_84 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_preferredLocalizationsFromArray_forPreferences_ = + objc.registerName("preferredLocalizationsFromArray:forPreferences:"); +final _objc_msgSend_85 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_executableArchitectures = + objc.registerName("executableArchitectures"); +final _objc_msgSend_86 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setPreservationPriority_forTags_ = + objc.registerName("setPreservationPriority:forTags:"); +final _objc_msgSend_87 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Double, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + double, + ffi.Pointer)>(); +late final _sel_preservationPriorityForTag_ = + objc.registerName("preservationPriorityForTag:"); +final _objc_msgSend_88 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Double Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_88Fpret = objc.msgSendFpretPointer + .cast< + ffi.NativeFunction< + ffi.Double Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSMutableAttributedString +class NSMutableAttributedString extends NSAttributedString { + NSMutableAttributedString._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSMutableAttributedString] that points to the same underlying object as [other]. + NSMutableAttributedString.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSMutableAttributedString] that wraps the given raw object pointer. + NSMutableAttributedString.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSMutableAttributedString]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSMutableAttributedString); + } + + /// replaceCharactersInRange:withString: + void replaceCharactersInRange_withString_(_NSRange range, objc.NSString str) { + _objc_msgSend_89(this.pointer, _sel_replaceCharactersInRange_withString_, + range, str.pointer); + } + + /// setAttributes:range: + void setAttributes_range_(objc.NSDictionary? attrs, _NSRange range) { + _objc_msgSend_90(this.pointer, _sel_setAttributes_range_, + attrs?.pointer ?? ffi.nullptr, range); + } + + /// mutableString + objc.NSMutableString get mutableString { + final _ret = _objc_msgSend_91(this.pointer, _sel_mutableString); + return objc.NSMutableString.castFromPointer(_ret, + retain: true, release: true); + } + + /// addAttribute:value:range: + void addAttribute_value_range_( + objc.NSString name, objc.ObjCObjectBase value, _NSRange range) { + _objc_msgSend_92(this.pointer, _sel_addAttribute_value_range_, name.pointer, + value.pointer, range); + } + + /// addAttributes:range: + void addAttributes_range_(objc.NSDictionary attrs, _NSRange range) { + _objc_msgSend_93( + this.pointer, _sel_addAttributes_range_, attrs.pointer, range); + } + + /// removeAttribute:range: + void removeAttribute_range_(objc.NSString name, _NSRange range) { + _objc_msgSend_94( + this.pointer, _sel_removeAttribute_range_, name.pointer, range); + } + + /// replaceCharactersInRange:withAttributedString: + void replaceCharactersInRange_withAttributedString_( + _NSRange range, NSAttributedString attrString) { + _objc_msgSend_95( + this.pointer, + _sel_replaceCharactersInRange_withAttributedString_, + range, + attrString.pointer); + } + + /// insertAttributedString:atIndex: + void insertAttributedString_atIndex_(NSAttributedString attrString, int loc) { + _objc_msgSend_96(this.pointer, _sel_insertAttributedString_atIndex_, + attrString.pointer, loc); + } + + /// appendAttributedString: + void appendAttributedString_(NSAttributedString attrString) { + _objc_msgSend_97( + this.pointer, _sel_appendAttributedString_, attrString.pointer); + } + + /// deleteCharactersInRange: + void deleteCharactersInRange_(_NSRange range) { + _objc_msgSend_98(this.pointer, _sel_deleteCharactersInRange_, range); + } + + /// setAttributedString: + void setAttributedString_(NSAttributedString attrString) { + _objc_msgSend_97( + this.pointer, _sel_setAttributedString_, attrString.pointer); + } + + /// beginEditing + void beginEditing() { + _objc_msgSend_7(this.pointer, _sel_beginEditing); + } + + /// endEditing + void endEditing() { + _objc_msgSend_7(this.pointer, _sel_endEditing); + } + + /// appendLocalizedFormat: + void appendLocalizedFormat_(NSAttributedString format) { + _objc_msgSend_97(this.pointer, _sel_appendLocalizedFormat_, format.pointer); + } + + /// initWithString: + NSMutableAttributedString initWithString_(objc.NSString str) { + final _ret = + _objc_msgSend_63(this.pointer, _sel_initWithString_, str.pointer); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithString:attributes: + NSMutableAttributedString initWithString_attributes_( + objc.NSString str, objc.NSDictionary? attrs) { + final _ret = _objc_msgSend_64(this.pointer, _sel_initWithString_attributes_, + str.pointer, attrs?.pointer ?? ffi.nullptr); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithAttributedString: + NSMutableAttributedString initWithAttributedString_( + NSAttributedString attrStr) { + final _ret = _objc_msgSend_65( + this.pointer, _sel_initWithAttributedString_, attrStr.pointer); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithContentsOfMarkdownFileAtURL:options:baseURL:error: + NSMutableAttributedString? + initWithContentsOfMarkdownFileAtURL_options_baseURL_error_( + objc.NSURL markdownFile, + NSAttributedStringMarkdownParsingOptions? options, + objc.NSURL? baseURL, + ffi.Pointer> error) { + final _ret = _objc_msgSend_72( + this.pointer, + _sel_initWithContentsOfMarkdownFileAtURL_options_baseURL_error_, + markdownFile.pointer, + options?.pointer ?? ffi.nullptr, + baseURL?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithMarkdown:options:baseURL:error: + NSMutableAttributedString? initWithMarkdown_options_baseURL_error_( + objc.NSData markdown, + NSAttributedStringMarkdownParsingOptions? options, + objc.NSURL? baseURL, + ffi.Pointer> error) { + final _ret = _objc_msgSend_73( + this.pointer, + _sel_initWithMarkdown_options_baseURL_error_, + markdown.pointer, + options?.pointer ?? ffi.nullptr, + baseURL?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithMarkdownString:options:baseURL:error: + NSMutableAttributedString? initWithMarkdownString_options_baseURL_error_( + objc.NSString markdownString, + NSAttributedStringMarkdownParsingOptions? options, + objc.NSURL? baseURL, + ffi.Pointer> error) { + final _ret = _objc_msgSend_74( + this.pointer, + _sel_initWithMarkdownString_options_baseURL_error_, + markdownString.pointer, + options?.pointer ?? ffi.nullptr, + baseURL?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithFormat:options:locale: + NSMutableAttributedString initWithFormat_options_locale_( + NSAttributedString format, + NSAttributedStringFormattingOptions options, + objc.NSLocale? locale) { + final _ret = _objc_msgSend_75( + this.pointer, + _sel_initWithFormat_options_locale_, + format.pointer, + options.value, + locale?.pointer ?? ffi.nullptr); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat: + static NSMutableAttributedString localizedAttributedStringWithFormat_( + NSAttributedString format) { + final _ret = _objc_msgSend_65(_class_NSMutableAttributedString, + _sel_localizedAttributedStringWithFormat_, format.pointer); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat:options: + static NSMutableAttributedString localizedAttributedStringWithFormat_options_( + NSAttributedString format, NSAttributedStringFormattingOptions options) { + final _ret = _objc_msgSend_76( + _class_NSMutableAttributedString, + _sel_localizedAttributedStringWithFormat_options_, + format.pointer, + options.value); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithFormat:options:locale:context: + NSMutableAttributedString initWithFormat_options_locale_context_( + NSAttributedString format, + NSAttributedStringFormattingOptions options, + objc.NSLocale? locale, + objc.NSDictionary context) { + final _ret = _objc_msgSend_77( + this.pointer, + _sel_initWithFormat_options_locale_context_, + format.pointer, + options.value, + locale?.pointer ?? ffi.nullptr, + context.pointer); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat:context: + static NSMutableAttributedString localizedAttributedStringWithFormat_context_( + NSAttributedString format, objc.NSDictionary context) { + final _ret = _objc_msgSend_78( + _class_NSMutableAttributedString, + _sel_localizedAttributedStringWithFormat_context_, + format.pointer, + context.pointer); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// localizedAttributedStringWithFormat:options:context: + static NSMutableAttributedString + localizedAttributedStringWithFormat_options_context_( + NSAttributedString format, + NSAttributedStringFormattingOptions options, + objc.NSDictionary context) { + final _ret = _objc_msgSend_79( + _class_NSMutableAttributedString, + _sel_localizedAttributedStringWithFormat_options_context_, + format.pointer, + options.value, + context.pointer); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSMutableAttributedString init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSMutableAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSMutableAttributedString new1() { + final _ret = _objc_msgSend_19(_class_NSMutableAttributedString, _sel_new); + return NSMutableAttributedString.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSMutableAttributedString allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSMutableAttributedString, _sel_allocWithZone_, zone); + return NSMutableAttributedString.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSMutableAttributedString alloc() { + final _ret = _objc_msgSend_19(_class_NSMutableAttributedString, _sel_alloc); + return NSMutableAttributedString.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSMutableAttributedString, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSMutableAttributedString, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSMutableAttributedString, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSMutableAttributedString, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSMutableAttributedString, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSMutableAttributedString, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSMutableAttributedString, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSMutableAttributedString, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSMutableAttributedString, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSMutableAttributedString = + objc.getClass("classes.NSMutableAttributedString"); +late final _sel_replaceCharactersInRange_withString_ = + objc.registerName("replaceCharactersInRange:withString:"); +final _objc_msgSend_89 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_setAttributes_range_ = + objc.registerName("setAttributes:range:"); +final _objc_msgSend_90 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>(); +late final _sel_mutableString = objc.registerName("mutableString"); +final _objc_msgSend_91 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_addAttribute_value_range_ = + objc.registerName("addAttribute:value:range:"); +final _objc_msgSend_92 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>(); +late final _sel_addAttributes_range_ = + objc.registerName("addAttributes:range:"); +final _objc_msgSend_93 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>(); +late final _sel_removeAttribute_range_ = + objc.registerName("removeAttribute:range:"); +final _objc_msgSend_94 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>(); +late final _sel_replaceCharactersInRange_withAttributedString_ = + objc.registerName("replaceCharactersInRange:withAttributedString:"); +final _objc_msgSend_95 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_insertAttributedString_atIndex_ = + objc.registerName("insertAttributedString:atIndex:"); +final _objc_msgSend_96 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_appendAttributedString_ = + objc.registerName("appendAttributedString:"); +final _objc_msgSend_97 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_deleteCharactersInRange_ = + objc.registerName("deleteCharactersInRange:"); +final _objc_msgSend_98 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, _NSRange)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, _NSRange)>(); +late final _sel_setAttributedString_ = + objc.registerName("setAttributedString:"); +late final _sel_beginEditing = objc.registerName("beginEditing"); +late final _sel_endEditing = objc.registerName("endEditing"); +late final _sel_appendLocalizedFormat_ = + objc.registerName("appendLocalizedFormat:"); + +/// NSDateFormatter +class NSDateFormatter extends NSFormatter { + NSDateFormatter._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSDateFormatter] that points to the same underlying object as [other]. + NSDateFormatter.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSDateFormatter] that wraps the given raw object pointer. + NSDateFormatter.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSDateFormatter]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSDateFormatter); + } + + /// formattingContext + NSFormattingContext get formattingContext { + final _ret = _objc_msgSend_99(this.pointer, _sel_formattingContext); + return NSFormattingContext.fromValue(_ret); + } + + /// setFormattingContext: + set formattingContext(NSFormattingContext value) { + return _objc_msgSend_100( + this.pointer, _sel_setFormattingContext_, value.value); + } + + /// getObjectValue:forString:range:error: + bool getObjectValue_forString_range_error_( + ffi.Pointer> obj, + objc.NSString string, + ffi.Pointer<_NSRange> rangep, + ffi.Pointer> error) { + return _objc_msgSend_101( + this.pointer, + _sel_getObjectValue_forString_range_error_, + obj, + string.pointer, + rangep, + error); + } + + /// stringFromDate: + objc.NSString stringFromDate_(objc.NSDate date) { + final _ret = + _objc_msgSend_102(this.pointer, _sel_stringFromDate_, date.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// dateFromString: + objc.NSDate? dateFromString_(objc.NSString string) { + final _ret = + _objc_msgSend_103(this.pointer, _sel_dateFromString_, string.pointer); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// localizedStringFromDate:dateStyle:timeStyle: + static objc.NSString localizedStringFromDate_dateStyle_timeStyle_( + objc.NSDate date, + NSDateFormatterStyle dstyle, + NSDateFormatterStyle tstyle) { + final _ret = _objc_msgSend_104( + _class_NSDateFormatter, + _sel_localizedStringFromDate_dateStyle_timeStyle_, + date.pointer, + dstyle.value, + tstyle.value); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// dateFormatFromTemplate:options:locale: + static objc.NSString? dateFormatFromTemplate_options_locale_( + objc.NSString tmplate, int opts, objc.NSLocale? locale) { + final _ret = _objc_msgSend_105( + _class_NSDateFormatter, + _sel_dateFormatFromTemplate_options_locale_, + tmplate.pointer, + opts, + locale?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// defaultFormatterBehavior + static NSDateFormatterBehavior getDefaultFormatterBehavior() { + final _ret = _objc_msgSend_106( + _class_NSDateFormatter, _sel_defaultFormatterBehavior); + return NSDateFormatterBehavior.fromValue(_ret); + } + + /// setDefaultFormatterBehavior: + static void setDefaultFormatterBehavior(NSDateFormatterBehavior value) { + return _objc_msgSend_107( + _class_NSDateFormatter, _sel_setDefaultFormatterBehavior_, value.value); + } + + /// setLocalizedDateFormatFromTemplate: + void setLocalizedDateFormatFromTemplate_(objc.NSString dateFormatTemplate) { + _objc_msgSend_108(this.pointer, _sel_setLocalizedDateFormatFromTemplate_, + dateFormatTemplate.pointer); + } + + /// dateFormat + objc.NSString get dateFormat { + final _ret = _objc_msgSend_11(this.pointer, _sel_dateFormat); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setDateFormat: + set dateFormat(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setDateFormat_, value.pointer); + } + + /// dateStyle + NSDateFormatterStyle get dateStyle { + final _ret = _objc_msgSend_109(this.pointer, _sel_dateStyle); + return NSDateFormatterStyle.fromValue(_ret); + } + + /// setDateStyle: + set dateStyle(NSDateFormatterStyle value) { + return _objc_msgSend_110(this.pointer, _sel_setDateStyle_, value.value); + } + + /// timeStyle + NSDateFormatterStyle get timeStyle { + final _ret = _objc_msgSend_109(this.pointer, _sel_timeStyle); + return NSDateFormatterStyle.fromValue(_ret); + } + + /// setTimeStyle: + set timeStyle(NSDateFormatterStyle value) { + return _objc_msgSend_110(this.pointer, _sel_setTimeStyle_, value.value); + } + + /// locale + objc.NSLocale get locale { + final _ret = _objc_msgSend_111(this.pointer, _sel_locale); + return objc.NSLocale.castFromPointer(_ret, retain: true, release: true); + } + + /// setLocale: + set locale(objc.NSLocale value) { + return _objc_msgSend_112(this.pointer, _sel_setLocale_, value.pointer); + } + + /// generatesCalendarDates + bool get generatesCalendarDates { + return _objc_msgSend_13(this.pointer, _sel_generatesCalendarDates); + } + + /// setGeneratesCalendarDates: + set generatesCalendarDates(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setGeneratesCalendarDates_, value); + } + + /// formatterBehavior + NSDateFormatterBehavior get formatterBehavior { + final _ret = _objc_msgSend_106(this.pointer, _sel_formatterBehavior); + return NSDateFormatterBehavior.fromValue(_ret); + } + + /// setFormatterBehavior: + set formatterBehavior(NSDateFormatterBehavior value) { + return _objc_msgSend_107( + this.pointer, _sel_setFormatterBehavior_, value.value); + } + + /// timeZone + NSTimeZone get timeZone { + final _ret = _objc_msgSend_119(this.pointer, _sel_timeZone); + return NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// setTimeZone: + set timeZone(NSTimeZone value) { + return _objc_msgSend_120(this.pointer, _sel_setTimeZone_, value.pointer); + } + + /// calendar + NSCalendar get calendar { + final _ret = _objc_msgSend_129(this.pointer, _sel_calendar); + return NSCalendar.castFromPointer(_ret, retain: true, release: true); + } + + /// setCalendar: + set calendar(NSCalendar value) { + return _objc_msgSend_169(this.pointer, _sel_setCalendar_, value.pointer); + } + + /// isLenient + bool get lenient { + return _objc_msgSend_13(this.pointer, _sel_isLenient); + } + + /// setLenient: + set lenient(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setLenient_, value); + } + + /// twoDigitStartDate + objc.NSDate? get twoDigitStartDate { + final _ret = _objc_msgSend_124(this.pointer, _sel_twoDigitStartDate); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// setTwoDigitStartDate: + set twoDigitStartDate(objc.NSDate? value) { + return _objc_msgSend_170(this.pointer, _sel_setTwoDigitStartDate_, + value?.pointer ?? ffi.nullptr); + } + + /// defaultDate + objc.NSDate? get defaultDate { + final _ret = _objc_msgSend_124(this.pointer, _sel_defaultDate); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// setDefaultDate: + set defaultDate(objc.NSDate? value) { + return _objc_msgSend_170( + this.pointer, _sel_setDefaultDate_, value?.pointer ?? ffi.nullptr); + } + + /// eraSymbols + objc.NSArray get eraSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_eraSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setEraSymbols: + set eraSymbols(objc.NSArray value) { + return _objc_msgSend_171(this.pointer, _sel_setEraSymbols_, value.pointer); + } + + /// monthSymbols + objc.NSArray get monthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_monthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setMonthSymbols: + set monthSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setMonthSymbols_, value.pointer); + } + + /// shortMonthSymbols + objc.NSArray get shortMonthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_shortMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setShortMonthSymbols: + set shortMonthSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setShortMonthSymbols_, value.pointer); + } + + /// weekdaySymbols + objc.NSArray get weekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_weekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setWeekdaySymbols: + set weekdaySymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setWeekdaySymbols_, value.pointer); + } + + /// shortWeekdaySymbols + objc.NSArray get shortWeekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_shortWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setShortWeekdaySymbols: + set shortWeekdaySymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setShortWeekdaySymbols_, value.pointer); + } + + /// AMSymbol + objc.NSString get AMSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_AMSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setAMSymbol: + set AMSymbol(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setAMSymbol_, value.pointer); + } + + /// PMSymbol + objc.NSString get PMSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_PMSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPMSymbol: + set PMSymbol(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setPMSymbol_, value.pointer); + } + + /// longEraSymbols + objc.NSArray get longEraSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_longEraSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setLongEraSymbols: + set longEraSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setLongEraSymbols_, value.pointer); + } + + /// veryShortMonthSymbols + objc.NSArray get veryShortMonthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_veryShortMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setVeryShortMonthSymbols: + set veryShortMonthSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setVeryShortMonthSymbols_, value.pointer); + } + + /// standaloneMonthSymbols + objc.NSArray get standaloneMonthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_standaloneMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setStandaloneMonthSymbols: + set standaloneMonthSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setStandaloneMonthSymbols_, value.pointer); + } + + /// shortStandaloneMonthSymbols + objc.NSArray get shortStandaloneMonthSymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_shortStandaloneMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setShortStandaloneMonthSymbols: + set shortStandaloneMonthSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setShortStandaloneMonthSymbols_, value.pointer); + } + + /// veryShortStandaloneMonthSymbols + objc.NSArray get veryShortStandaloneMonthSymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_veryShortStandaloneMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setVeryShortStandaloneMonthSymbols: + set veryShortStandaloneMonthSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setVeryShortStandaloneMonthSymbols_, value.pointer); + } + + /// veryShortWeekdaySymbols + objc.NSArray get veryShortWeekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_veryShortWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setVeryShortWeekdaySymbols: + set veryShortWeekdaySymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setVeryShortWeekdaySymbols_, value.pointer); + } + + /// standaloneWeekdaySymbols + objc.NSArray get standaloneWeekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_standaloneWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setStandaloneWeekdaySymbols: + set standaloneWeekdaySymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setStandaloneWeekdaySymbols_, value.pointer); + } + + /// shortStandaloneWeekdaySymbols + objc.NSArray get shortStandaloneWeekdaySymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_shortStandaloneWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setShortStandaloneWeekdaySymbols: + set shortStandaloneWeekdaySymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setShortStandaloneWeekdaySymbols_, value.pointer); + } + + /// veryShortStandaloneWeekdaySymbols + objc.NSArray get veryShortStandaloneWeekdaySymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_veryShortStandaloneWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setVeryShortStandaloneWeekdaySymbols: + set veryShortStandaloneWeekdaySymbols(objc.NSArray value) { + return _objc_msgSend_171(this.pointer, + _sel_setVeryShortStandaloneWeekdaySymbols_, value.pointer); + } + + /// quarterSymbols + objc.NSArray get quarterSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_quarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setQuarterSymbols: + set quarterSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setQuarterSymbols_, value.pointer); + } + + /// shortQuarterSymbols + objc.NSArray get shortQuarterSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_shortQuarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setShortQuarterSymbols: + set shortQuarterSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setShortQuarterSymbols_, value.pointer); + } + + /// standaloneQuarterSymbols + objc.NSArray get standaloneQuarterSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_standaloneQuarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setStandaloneQuarterSymbols: + set standaloneQuarterSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setStandaloneQuarterSymbols_, value.pointer); + } + + /// shortStandaloneQuarterSymbols + objc.NSArray get shortStandaloneQuarterSymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_shortStandaloneQuarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setShortStandaloneQuarterSymbols: + set shortStandaloneQuarterSymbols(objc.NSArray value) { + return _objc_msgSend_171( + this.pointer, _sel_setShortStandaloneQuarterSymbols_, value.pointer); + } + + /// gregorianStartDate + objc.NSDate? get gregorianStartDate { + final _ret = _objc_msgSend_124(this.pointer, _sel_gregorianStartDate); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// setGregorianStartDate: + set gregorianStartDate(objc.NSDate? value) { + return _objc_msgSend_170(this.pointer, _sel_setGregorianStartDate_, + value?.pointer ?? ffi.nullptr); + } + + /// doesRelativeDateFormatting + bool get doesRelativeDateFormatting { + return _objc_msgSend_13(this.pointer, _sel_doesRelativeDateFormatting); + } + + /// setDoesRelativeDateFormatting: + set doesRelativeDateFormatting(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setDoesRelativeDateFormatting_, value); + } + + /// initWithDateFormat:allowNaturalLanguage: + objc.ObjCObjectBase initWithDateFormat_allowNaturalLanguage_( + objc.NSString format, bool flag) { + final _ret = _objc_msgSend_172(this.pointer, + _sel_initWithDateFormat_allowNaturalLanguage_, format.pointer, flag); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// allowsNaturalLanguage + bool allowsNaturalLanguage() { + return _objc_msgSend_13(this.pointer, _sel_allowsNaturalLanguage); + } + + /// init + NSDateFormatter init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSDateFormatter.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSDateFormatter new1() { + final _ret = _objc_msgSend_19(_class_NSDateFormatter, _sel_new); + return NSDateFormatter.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSDateFormatter allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSDateFormatter, _sel_allocWithZone_, zone); + return NSDateFormatter.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSDateFormatter alloc() { + final _ret = _objc_msgSend_19(_class_NSDateFormatter, _sel_alloc); + return NSDateFormatter.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSDateFormatter, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSDateFormatter, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSDateFormatter, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSDateFormatter, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSDateFormatter, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSDateFormatter, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSDateFormatter, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSDateFormatter, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSDateFormatter, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSDateFormatter = objc.getClass("classes.NSDateFormatter"); + +enum NSFormattingContext { + NSFormattingContextUnknown(0), + NSFormattingContextDynamic(1), + NSFormattingContextStandalone(2), + NSFormattingContextListItem(3), + NSFormattingContextBeginningOfSentence(4), + NSFormattingContextMiddleOfSentence(5); + + final int value; + const NSFormattingContext(this.value); + + static NSFormattingContext fromValue(int value) => switch (value) { + 0 => NSFormattingContextUnknown, + 1 => NSFormattingContextDynamic, + 2 => NSFormattingContextStandalone, + 3 => NSFormattingContextListItem, + 4 => NSFormattingContextBeginningOfSentence, + 5 => NSFormattingContextMiddleOfSentence, + _ => + throw ArgumentError("Unknown value for NSFormattingContext: $value"), + }; +} + +late final _sel_formattingContext = objc.registerName("formattingContext"); +final _objc_msgSend_99 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setFormattingContext_ = + objc.registerName("setFormattingContext:"); +final _objc_msgSend_100 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_getObjectValue_forString_range_error_ = + objc.registerName("getObjectValue:forString:range:error:"); +final _objc_msgSend_101 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer<_NSRange>, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer<_NSRange>, + ffi.Pointer>)>(); +late final _sel_stringFromDate_ = objc.registerName("stringFromDate:"); +final _objc_msgSend_102 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_dateFromString_ = objc.registerName("dateFromString:"); +final _objc_msgSend_103 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +enum NSDateFormatterStyle { + NSDateFormatterNoStyle(0), + NSDateFormatterShortStyle(1), + NSDateFormatterMediumStyle(2), + NSDateFormatterLongStyle(3), + NSDateFormatterFullStyle(4); + + final int value; + const NSDateFormatterStyle(this.value); + + static NSDateFormatterStyle fromValue(int value) => switch (value) { + 0 => NSDateFormatterNoStyle, + 1 => NSDateFormatterShortStyle, + 2 => NSDateFormatterMediumStyle, + 3 => NSDateFormatterLongStyle, + 4 => NSDateFormatterFullStyle, + _ => + throw ArgumentError("Unknown value for NSDateFormatterStyle: $value"), + }; +} + +late final _sel_localizedStringFromDate_dateStyle_timeStyle_ = + objc.registerName("localizedStringFromDate:dateStyle:timeStyle:"); +final _objc_msgSend_104 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + int)>(); +late final _sel_dateFormatFromTemplate_options_locale_ = + objc.registerName("dateFormatFromTemplate:options:locale:"); +final _objc_msgSend_105 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); + +enum NSDateFormatterBehavior { + NSDateFormatterBehaviorDefault(0), + NSDateFormatterBehavior10_0(1000), + NSDateFormatterBehavior10_4(1040); + + final int value; + const NSDateFormatterBehavior(this.value); + + static NSDateFormatterBehavior fromValue(int value) => switch (value) { + 0 => NSDateFormatterBehaviorDefault, + 1000 => NSDateFormatterBehavior10_0, + 1040 => NSDateFormatterBehavior10_4, + _ => throw ArgumentError( + "Unknown value for NSDateFormatterBehavior: $value"), + }; +} + +late final _sel_defaultFormatterBehavior = + objc.registerName("defaultFormatterBehavior"); +final _objc_msgSend_106 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDefaultFormatterBehavior_ = + objc.registerName("setDefaultFormatterBehavior:"); +final _objc_msgSend_107 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setLocalizedDateFormatFromTemplate_ = + objc.registerName("setLocalizedDateFormatFromTemplate:"); +final _objc_msgSend_108 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_dateFormat = objc.registerName("dateFormat"); +late final _sel_setDateFormat_ = objc.registerName("setDateFormat:"); +late final _sel_dateStyle = objc.registerName("dateStyle"); +final _objc_msgSend_109 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDateStyle_ = objc.registerName("setDateStyle:"); +final _objc_msgSend_110 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_timeStyle = objc.registerName("timeStyle"); +late final _sel_setTimeStyle_ = objc.registerName("setTimeStyle:"); +late final _sel_locale = objc.registerName("locale"); +final _objc_msgSend_111 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setLocale_ = objc.registerName("setLocale:"); +final _objc_msgSend_112 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_generatesCalendarDates = + objc.registerName("generatesCalendarDates"); +late final _sel_setGeneratesCalendarDates_ = + objc.registerName("setGeneratesCalendarDates:"); +late final _sel_formatterBehavior = objc.registerName("formatterBehavior"); +late final _sel_setFormatterBehavior_ = + objc.registerName("setFormatterBehavior:"); + +/// NSTimeZone +class NSTimeZone extends objc.NSObject { + NSTimeZone._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSTimeZone] that points to the same underlying object as [other]. + NSTimeZone.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSTimeZone] that wraps the given raw object pointer. + NSTimeZone.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSTimeZone]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSTimeZone); + } + + /// name + objc.NSString get name { + final _ret = _objc_msgSend_11(this.pointer, _sel_name); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// data + objc.NSData get data { + final _ret = _objc_msgSend_113(this.pointer, _sel_data); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// secondsFromGMTForDate: + int secondsFromGMTForDate_(objc.NSDate aDate) { + return _objc_msgSend_114( + this.pointer, _sel_secondsFromGMTForDate_, aDate.pointer); + } + + /// abbreviationForDate: + objc.NSString? abbreviationForDate_(objc.NSDate aDate) { + final _ret = _objc_msgSend_115( + this.pointer, _sel_abbreviationForDate_, aDate.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// isDaylightSavingTimeForDate: + bool isDaylightSavingTimeForDate_(objc.NSDate aDate) { + return _objc_msgSend_116( + this.pointer, _sel_isDaylightSavingTimeForDate_, aDate.pointer); + } + + /// daylightSavingTimeOffsetForDate: + double daylightSavingTimeOffsetForDate_(objc.NSDate aDate) { + return objc.useMsgSendVariants + ? _objc_msgSend_117Fpret( + this.pointer, _sel_daylightSavingTimeOffsetForDate_, aDate.pointer) + : _objc_msgSend_117( + this.pointer, _sel_daylightSavingTimeOffsetForDate_, aDate.pointer); + } + + /// nextDaylightSavingTimeTransitionAfterDate: + objc.NSDate? nextDaylightSavingTimeTransitionAfterDate_(objc.NSDate aDate) { + final _ret = _objc_msgSend_118(this.pointer, + _sel_nextDaylightSavingTimeTransitionAfterDate_, aDate.pointer); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// systemTimeZone + static NSTimeZone getSystemTimeZone() { + final _ret = _objc_msgSend_119(_class_NSTimeZone, _sel_systemTimeZone); + return NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// resetSystemTimeZone + static void resetSystemTimeZone() { + _objc_msgSend_7(_class_NSTimeZone, _sel_resetSystemTimeZone); + } + + /// defaultTimeZone + static NSTimeZone getDefaultTimeZone() { + final _ret = _objc_msgSend_119(_class_NSTimeZone, _sel_defaultTimeZone); + return NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// setDefaultTimeZone: + static void setDefaultTimeZone(NSTimeZone value) { + return _objc_msgSend_120( + _class_NSTimeZone, _sel_setDefaultTimeZone_, value.pointer); + } + + /// localTimeZone + static NSTimeZone getLocalTimeZone() { + final _ret = _objc_msgSend_119(_class_NSTimeZone, _sel_localTimeZone); + return NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// knownTimeZoneNames + static objc.NSArray getKnownTimeZoneNames() { + final _ret = _objc_msgSend_33(_class_NSTimeZone, _sel_knownTimeZoneNames); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// abbreviationDictionary + static objc.NSDictionary getAbbreviationDictionary() { + final _ret = + _objc_msgSend_121(_class_NSTimeZone, _sel_abbreviationDictionary); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setAbbreviationDictionary: + static void setAbbreviationDictionary(objc.NSDictionary value) { + return _objc_msgSend_122( + _class_NSTimeZone, _sel_setAbbreviationDictionary_, value.pointer); + } + + /// timeZoneDataVersion + static objc.NSString getTimeZoneDataVersion() { + final _ret = _objc_msgSend_11(_class_NSTimeZone, _sel_timeZoneDataVersion); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// secondsFromGMT + int get secondsFromGMT { + return _objc_msgSend_123(this.pointer, _sel_secondsFromGMT); + } + + /// abbreviation + objc.NSString? get abbreviation { + final _ret = _objc_msgSend_20(this.pointer, _sel_abbreviation); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// isDaylightSavingTime + bool get daylightSavingTime { + return _objc_msgSend_13(this.pointer, _sel_isDaylightSavingTime); + } + + /// daylightSavingTimeOffset + double get daylightSavingTimeOffset { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_daylightSavingTimeOffset) + : _objc_msgSend_18(this.pointer, _sel_daylightSavingTimeOffset); + } + + /// nextDaylightSavingTimeTransition + objc.NSDate? get nextDaylightSavingTimeTransition { + final _ret = + _objc_msgSend_124(this.pointer, _sel_nextDaylightSavingTimeTransition); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// description + objc.NSString get description { + final _ret = _objc_msgSend_11(this.pointer, _sel_description); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// isEqualToTimeZone: + bool isEqualToTimeZone_(NSTimeZone aTimeZone) { + return _objc_msgSend_125( + this.pointer, _sel_isEqualToTimeZone_, aTimeZone.pointer); + } + + /// localizedName:locale: + objc.NSString? localizedName_locale_( + NSTimeZoneNameStyle style, objc.NSLocale? locale) { + final _ret = _objc_msgSend_126(this.pointer, _sel_localizedName_locale_, + style.value, locale?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// timeZoneWithName: + static NSTimeZone? timeZoneWithName_(objc.NSString tzName) { + final _ret = _objc_msgSend_35( + _class_NSTimeZone, _sel_timeZoneWithName_, tzName.pointer); + return _ret.address == 0 + ? null + : NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// timeZoneWithName:data: + static NSTimeZone? timeZoneWithName_data_( + objc.NSString tzName, objc.NSData? aData) { + final _ret = _objc_msgSend_127( + _class_NSTimeZone, + _sel_timeZoneWithName_data_, + tzName.pointer, + aData?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithName: + NSTimeZone? initWithName_(objc.NSString tzName) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_initWithName_, tzName.pointer); + return _ret.address == 0 + ? null + : NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithName:data: + NSTimeZone? initWithName_data_(objc.NSString tzName, objc.NSData? aData) { + final _ret = _objc_msgSend_127(this.pointer, _sel_initWithName_data_, + tzName.pointer, aData?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// timeZoneForSecondsFromGMT: + static NSTimeZone timeZoneForSecondsFromGMT_(int seconds) { + final _ret = _objc_msgSend_128( + _class_NSTimeZone, _sel_timeZoneForSecondsFromGMT_, seconds); + return NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// timeZoneWithAbbreviation: + static NSTimeZone? timeZoneWithAbbreviation_(objc.NSString abbreviation) { + final _ret = _objc_msgSend_35(_class_NSTimeZone, + _sel_timeZoneWithAbbreviation_, abbreviation.pointer); + return _ret.address == 0 + ? null + : NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSTimeZone init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSTimeZone new1() { + final _ret = _objc_msgSend_19(_class_NSTimeZone, _sel_new); + return NSTimeZone.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSTimeZone allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSTimeZone, _sel_allocWithZone_, zone); + return NSTimeZone.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSTimeZone alloc() { + final _ret = _objc_msgSend_19(_class_NSTimeZone, _sel_alloc); + return NSTimeZone.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSTimeZone, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSTimeZone, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSTimeZone, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSTimeZone, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSTimeZone, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSTimeZone, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSTimeZone, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSTimeZone, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSTimeZone, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSTimeZone = objc.getClass("classes.NSTimeZone"); +late final _sel_name = objc.registerName("name"); +late final _sel_data = objc.registerName("data"); +final _objc_msgSend_113 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_secondsFromGMTForDate_ = + objc.registerName("secondsFromGMTForDate:"); +final _objc_msgSend_114 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_abbreviationForDate_ = + objc.registerName("abbreviationForDate:"); +final _objc_msgSend_115 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_isDaylightSavingTimeForDate_ = + objc.registerName("isDaylightSavingTimeForDate:"); +final _objc_msgSend_116 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_daylightSavingTimeOffsetForDate_ = + objc.registerName("daylightSavingTimeOffsetForDate:"); +final _objc_msgSend_117 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Double Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_117Fpret = objc.msgSendFpretPointer + .cast< + ffi.NativeFunction< + ffi.Double Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_nextDaylightSavingTimeTransitionAfterDate_ = + objc.registerName("nextDaylightSavingTimeTransitionAfterDate:"); +final _objc_msgSend_118 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_systemTimeZone = objc.registerName("systemTimeZone"); +final _objc_msgSend_119 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_resetSystemTimeZone = objc.registerName("resetSystemTimeZone"); +late final _sel_defaultTimeZone = objc.registerName("defaultTimeZone"); +late final _sel_setDefaultTimeZone_ = objc.registerName("setDefaultTimeZone:"); +final _objc_msgSend_120 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_localTimeZone = objc.registerName("localTimeZone"); +late final _sel_knownTimeZoneNames = objc.registerName("knownTimeZoneNames"); +late final _sel_abbreviationDictionary = + objc.registerName("abbreviationDictionary"); +final _objc_msgSend_121 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setAbbreviationDictionary_ = + objc.registerName("setAbbreviationDictionary:"); +final _objc_msgSend_122 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_timeZoneDataVersion = objc.registerName("timeZoneDataVersion"); +late final _sel_secondsFromGMT = objc.registerName("secondsFromGMT"); +final _objc_msgSend_123 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_abbreviation = objc.registerName("abbreviation"); +late final _sel_isDaylightSavingTime = + objc.registerName("isDaylightSavingTime"); +late final _sel_daylightSavingTimeOffset = + objc.registerName("daylightSavingTimeOffset"); +late final _sel_nextDaylightSavingTimeTransition = + objc.registerName("nextDaylightSavingTimeTransition"); +final _objc_msgSend_124 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_description = objc.registerName("description"); +late final _sel_isEqualToTimeZone_ = objc.registerName("isEqualToTimeZone:"); +final _objc_msgSend_125 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +enum NSTimeZoneNameStyle { + NSTimeZoneNameStyleStandard(0), + NSTimeZoneNameStyleShortStandard(1), + NSTimeZoneNameStyleDaylightSaving(2), + NSTimeZoneNameStyleShortDaylightSaving(3), + NSTimeZoneNameStyleGeneric(4), + NSTimeZoneNameStyleShortGeneric(5); + + final int value; + const NSTimeZoneNameStyle(this.value); + + static NSTimeZoneNameStyle fromValue(int value) => switch (value) { + 0 => NSTimeZoneNameStyleStandard, + 1 => NSTimeZoneNameStyleShortStandard, + 2 => NSTimeZoneNameStyleDaylightSaving, + 3 => NSTimeZoneNameStyleShortDaylightSaving, + 4 => NSTimeZoneNameStyleGeneric, + 5 => NSTimeZoneNameStyleShortGeneric, + _ => + throw ArgumentError("Unknown value for NSTimeZoneNameStyle: $value"), + }; +} + +late final _sel_localizedName_locale_ = + objc.registerName("localizedName:locale:"); +final _objc_msgSend_126 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_timeZoneWithName_ = objc.registerName("timeZoneWithName:"); +late final _sel_timeZoneWithName_data_ = + objc.registerName("timeZoneWithName:data:"); +final _objc_msgSend_127 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithName_ = objc.registerName("initWithName:"); +late final _sel_initWithName_data_ = objc.registerName("initWithName:data:"); +late final _sel_timeZoneForSecondsFromGMT_ = + objc.registerName("timeZoneForSecondsFromGMT:"); +final _objc_msgSend_128 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_timeZoneWithAbbreviation_ = + objc.registerName("timeZoneWithAbbreviation:"); +late final _sel_timeZone = objc.registerName("timeZone"); +late final _sel_setTimeZone_ = objc.registerName("setTimeZone:"); + +/// NSCalendar +class NSCalendar extends objc.NSObject { + NSCalendar._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSCalendar] that points to the same underlying object as [other]. + NSCalendar.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSCalendar] that wraps the given raw object pointer. + NSCalendar.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSCalendar]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSCalendar); + } + + /// currentCalendar + static NSCalendar getCurrentCalendar() { + final _ret = _objc_msgSend_129(_class_NSCalendar, _sel_currentCalendar); + return NSCalendar.castFromPointer(_ret, retain: true, release: true); + } + + /// autoupdatingCurrentCalendar + static NSCalendar getAutoupdatingCurrentCalendar() { + final _ret = + _objc_msgSend_129(_class_NSCalendar, _sel_autoupdatingCurrentCalendar); + return NSCalendar.castFromPointer(_ret, retain: true, release: true); + } + + /// calendarWithIdentifier: + static NSCalendar? calendarWithIdentifier_( + objc.NSString calendarIdentifierConstant) { + final _ret = _objc_msgSend_130(_class_NSCalendar, + _sel_calendarWithIdentifier_, calendarIdentifierConstant.pointer); + return _ret.address == 0 + ? null + : NSCalendar.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSCalendar init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSCalendar.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithCalendarIdentifier: + objc.ObjCObjectBase? initWithCalendarIdentifier_(objc.NSString ident) { + final _ret = _objc_msgSend_35( + this.pointer, _sel_initWithCalendarIdentifier_, ident.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// calendarIdentifier + objc.NSString get calendarIdentifier { + final _ret = _objc_msgSend_11(this.pointer, _sel_calendarIdentifier); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// locale + objc.NSLocale? get locale { + final _ret = _objc_msgSend_131(this.pointer, _sel_locale); + return _ret.address == 0 + ? null + : objc.NSLocale.castFromPointer(_ret, retain: true, release: true); + } + + /// setLocale: + set locale(objc.NSLocale? value) { + return _objc_msgSend_132( + this.pointer, _sel_setLocale_, value?.pointer ?? ffi.nullptr); + } + + /// timeZone + NSTimeZone get timeZone { + final _ret = _objc_msgSend_119(this.pointer, _sel_timeZone); + return NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// setTimeZone: + set timeZone(NSTimeZone value) { + return _objc_msgSend_120(this.pointer, _sel_setTimeZone_, value.pointer); + } + + /// firstWeekday + int get firstWeekday { + return _objc_msgSend_57(this.pointer, _sel_firstWeekday); + } + + /// setFirstWeekday: + set firstWeekday(int value) { + return _objc_msgSend_133(this.pointer, _sel_setFirstWeekday_, value); + } + + /// minimumDaysInFirstWeek + int get minimumDaysInFirstWeek { + return _objc_msgSend_57(this.pointer, _sel_minimumDaysInFirstWeek); + } + + /// setMinimumDaysInFirstWeek: + set minimumDaysInFirstWeek(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setMinimumDaysInFirstWeek_, value); + } + + /// eraSymbols + objc.NSArray get eraSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_eraSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// longEraSymbols + objc.NSArray get longEraSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_longEraSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// monthSymbols + objc.NSArray get monthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_monthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// shortMonthSymbols + objc.NSArray get shortMonthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_shortMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// veryShortMonthSymbols + objc.NSArray get veryShortMonthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_veryShortMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// standaloneMonthSymbols + objc.NSArray get standaloneMonthSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_standaloneMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// shortStandaloneMonthSymbols + objc.NSArray get shortStandaloneMonthSymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_shortStandaloneMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// veryShortStandaloneMonthSymbols + objc.NSArray get veryShortStandaloneMonthSymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_veryShortStandaloneMonthSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// weekdaySymbols + objc.NSArray get weekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_weekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// shortWeekdaySymbols + objc.NSArray get shortWeekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_shortWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// veryShortWeekdaySymbols + objc.NSArray get veryShortWeekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_veryShortWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// standaloneWeekdaySymbols + objc.NSArray get standaloneWeekdaySymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_standaloneWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// shortStandaloneWeekdaySymbols + objc.NSArray get shortStandaloneWeekdaySymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_shortStandaloneWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// veryShortStandaloneWeekdaySymbols + objc.NSArray get veryShortStandaloneWeekdaySymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_veryShortStandaloneWeekdaySymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// quarterSymbols + objc.NSArray get quarterSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_quarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// shortQuarterSymbols + objc.NSArray get shortQuarterSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_shortQuarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// standaloneQuarterSymbols + objc.NSArray get standaloneQuarterSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_standaloneQuarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// shortStandaloneQuarterSymbols + objc.NSArray get shortStandaloneQuarterSymbols { + final _ret = + _objc_msgSend_33(this.pointer, _sel_shortStandaloneQuarterSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// AMSymbol + objc.NSString get AMSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_AMSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// PMSymbol + objc.NSString get PMSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_PMSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// minimumRangeOfUnit: + void minimumRangeOfUnit_(ffi.Pointer<_NSRange> stret, NSCalendarUnit unit) { + objc.useMsgSendVariants + ? _objc_msgSend_134Stret( + stret, this.pointer, _sel_minimumRangeOfUnit_, unit.value) + : stret.ref = _objc_msgSend_134( + this.pointer, _sel_minimumRangeOfUnit_, unit.value); + } + + /// maximumRangeOfUnit: + void maximumRangeOfUnit_(ffi.Pointer<_NSRange> stret, NSCalendarUnit unit) { + objc.useMsgSendVariants + ? _objc_msgSend_134Stret( + stret, this.pointer, _sel_maximumRangeOfUnit_, unit.value) + : stret.ref = _objc_msgSend_134( + this.pointer, _sel_maximumRangeOfUnit_, unit.value); + } + + /// rangeOfUnit:inUnit:forDate: + void rangeOfUnit_inUnit_forDate_(ffi.Pointer<_NSRange> stret, + NSCalendarUnit smaller, NSCalendarUnit larger, objc.NSDate date) { + objc.useMsgSendVariants + ? _objc_msgSend_135Stret( + stret, + this.pointer, + _sel_rangeOfUnit_inUnit_forDate_, + smaller.value, + larger.value, + date.pointer) + : stret.ref = _objc_msgSend_135( + this.pointer, + _sel_rangeOfUnit_inUnit_forDate_, + smaller.value, + larger.value, + date.pointer); + } + + /// ordinalityOfUnit:inUnit:forDate: + int ordinalityOfUnit_inUnit_forDate_( + NSCalendarUnit smaller, NSCalendarUnit larger, objc.NSDate date) { + return _objc_msgSend_136( + this.pointer, + _sel_ordinalityOfUnit_inUnit_forDate_, + smaller.value, + larger.value, + date.pointer); + } + + /// rangeOfUnit:startDate:interval:forDate: + bool rangeOfUnit_startDate_interval_forDate_( + NSCalendarUnit unit, + ffi.Pointer> datep, + ffi.Pointer tip, + objc.NSDate date) { + return _objc_msgSend_137( + this.pointer, + _sel_rangeOfUnit_startDate_interval_forDate_, + unit.value, + datep, + tip, + date.pointer); + } + + /// dateFromComponents: + objc.NSDate? dateFromComponents_(NSDateComponents comps) { + final _ret = _objc_msgSend_147( + this.pointer, _sel_dateFromComponents_, comps.pointer); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// components:fromDate: + NSDateComponents components_fromDate_( + NSCalendarUnit unitFlags, objc.NSDate date) { + final _ret = _objc_msgSend_148( + this.pointer, _sel_components_fromDate_, unitFlags.value, date.pointer); + return NSDateComponents.castFromPointer(_ret, retain: true, release: true); + } + + /// dateByAddingComponents:toDate:options: + objc.NSDate? dateByAddingComponents_toDate_options_( + NSDateComponents comps, objc.NSDate date, NSCalendarOptions opts) { + final _ret = _objc_msgSend_149( + this.pointer, + _sel_dateByAddingComponents_toDate_options_, + comps.pointer, + date.pointer, + opts.value); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// components:fromDate:toDate:options: + NSDateComponents components_fromDate_toDate_options_( + NSCalendarUnit unitFlags, + objc.NSDate startingDate, + objc.NSDate resultDate, + NSCalendarOptions opts) { + final _ret = _objc_msgSend_150( + this.pointer, + _sel_components_fromDate_toDate_options_, + unitFlags.value, + startingDate.pointer, + resultDate.pointer, + opts.value); + return NSDateComponents.castFromPointer(_ret, retain: true, release: true); + } + + /// getEra:year:month:day:fromDate: + void getEra_year_month_day_fromDate_( + ffi.Pointer eraValuePointer, + ffi.Pointer yearValuePointer, + ffi.Pointer monthValuePointer, + ffi.Pointer dayValuePointer, + objc.NSDate date) { + _objc_msgSend_151( + this.pointer, + _sel_getEra_year_month_day_fromDate_, + eraValuePointer, + yearValuePointer, + monthValuePointer, + dayValuePointer, + date.pointer); + } + + /// getEra:yearForWeekOfYear:weekOfYear:weekday:fromDate: + void getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_( + ffi.Pointer eraValuePointer, + ffi.Pointer yearValuePointer, + ffi.Pointer weekValuePointer, + ffi.Pointer weekdayValuePointer, + objc.NSDate date) { + _objc_msgSend_151( + this.pointer, + _sel_getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_, + eraValuePointer, + yearValuePointer, + weekValuePointer, + weekdayValuePointer, + date.pointer); + } + + /// getHour:minute:second:nanosecond:fromDate: + void getHour_minute_second_nanosecond_fromDate_( + ffi.Pointer hourValuePointer, + ffi.Pointer minuteValuePointer, + ffi.Pointer secondValuePointer, + ffi.Pointer nanosecondValuePointer, + objc.NSDate date) { + _objc_msgSend_151( + this.pointer, + _sel_getHour_minute_second_nanosecond_fromDate_, + hourValuePointer, + minuteValuePointer, + secondValuePointer, + nanosecondValuePointer, + date.pointer); + } + + /// component:fromDate: + int component_fromDate_(NSCalendarUnit unit, objc.NSDate date) { + return _objc_msgSend_152( + this.pointer, _sel_component_fromDate_, unit.value, date.pointer); + } + + /// dateWithEra:year:month:day:hour:minute:second:nanosecond: + objc.NSDate? dateWithEra_year_month_day_hour_minute_second_nanosecond_( + int eraValue, + int yearValue, + int monthValue, + int dayValue, + int hourValue, + int minuteValue, + int secondValue, + int nanosecondValue) { + final _ret = _objc_msgSend_153( + this.pointer, + _sel_dateWithEra_year_month_day_hour_minute_second_nanosecond_, + eraValue, + yearValue, + monthValue, + dayValue, + hourValue, + minuteValue, + secondValue, + nanosecondValue); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// dateWithEra:yearForWeekOfYear:weekOfYear:weekday:hour:minute:second:nanosecond: + objc.NSDate? + dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_( + int eraValue, + int yearValue, + int weekValue, + int weekdayValue, + int hourValue, + int minuteValue, + int secondValue, + int nanosecondValue) { + final _ret = _objc_msgSend_153( + this.pointer, + _sel_dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_, + eraValue, + yearValue, + weekValue, + weekdayValue, + hourValue, + minuteValue, + secondValue, + nanosecondValue); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// startOfDayForDate: + objc.NSDate startOfDayForDate_(objc.NSDate date) { + final _ret = + _objc_msgSend_154(this.pointer, _sel_startOfDayForDate_, date.pointer); + return objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// componentsInTimeZone:fromDate: + NSDateComponents componentsInTimeZone_fromDate_( + NSTimeZone timezone, objc.NSDate date) { + final _ret = _objc_msgSend_155(this.pointer, + _sel_componentsInTimeZone_fromDate_, timezone.pointer, date.pointer); + return NSDateComponents.castFromPointer(_ret, retain: true, release: true); + } + + /// compareDate:toDate:toUnitGranularity: + objc.NSComparisonResult compareDate_toDate_toUnitGranularity_( + objc.NSDate date1, objc.NSDate date2, NSCalendarUnit unit) { + final _ret = _objc_msgSend_156( + this.pointer, + _sel_compareDate_toDate_toUnitGranularity_, + date1.pointer, + date2.pointer, + unit.value); + return objc.NSComparisonResult.fromValue(_ret); + } + + /// isDate:equalToDate:toUnitGranularity: + bool isDate_equalToDate_toUnitGranularity_( + objc.NSDate date1, objc.NSDate date2, NSCalendarUnit unit) { + return _objc_msgSend_157( + this.pointer, + _sel_isDate_equalToDate_toUnitGranularity_, + date1.pointer, + date2.pointer, + unit.value); + } + + /// isDate:inSameDayAsDate: + bool isDate_inSameDayAsDate_(objc.NSDate date1, objc.NSDate date2) { + return _objc_msgSend_158(this.pointer, _sel_isDate_inSameDayAsDate_, + date1.pointer, date2.pointer); + } + + /// isDateInToday: + bool isDateInToday_(objc.NSDate date) { + return _objc_msgSend_116(this.pointer, _sel_isDateInToday_, date.pointer); + } + + /// isDateInYesterday: + bool isDateInYesterday_(objc.NSDate date) { + return _objc_msgSend_116( + this.pointer, _sel_isDateInYesterday_, date.pointer); + } + + /// isDateInTomorrow: + bool isDateInTomorrow_(objc.NSDate date) { + return _objc_msgSend_116( + this.pointer, _sel_isDateInTomorrow_, date.pointer); + } + + /// isDateInWeekend: + bool isDateInWeekend_(objc.NSDate date) { + return _objc_msgSend_116(this.pointer, _sel_isDateInWeekend_, date.pointer); + } + + /// rangeOfWeekendStartDate:interval:containingDate: + bool rangeOfWeekendStartDate_interval_containingDate_( + ffi.Pointer> datep, + ffi.Pointer tip, + objc.NSDate date) { + return _objc_msgSend_159( + this.pointer, + _sel_rangeOfWeekendStartDate_interval_containingDate_, + datep, + tip, + date.pointer); + } + + /// nextWeekendStartDate:interval:options:afterDate: + bool nextWeekendStartDate_interval_options_afterDate_( + ffi.Pointer> datep, + ffi.Pointer tip, + NSCalendarOptions options, + objc.NSDate date) { + return _objc_msgSend_160( + this.pointer, + _sel_nextWeekendStartDate_interval_options_afterDate_, + datep, + tip, + options.value, + date.pointer); + } + + /// components:fromDateComponents:toDateComponents:options: + NSDateComponents components_fromDateComponents_toDateComponents_options_( + NSCalendarUnit unitFlags, + NSDateComponents startingDateComp, + NSDateComponents resultDateComp, + NSCalendarOptions options) { + final _ret = _objc_msgSend_161( + this.pointer, + _sel_components_fromDateComponents_toDateComponents_options_, + unitFlags.value, + startingDateComp.pointer, + resultDateComp.pointer, + options.value); + return NSDateComponents.castFromPointer(_ret, retain: true, release: true); + } + + /// dateByAddingUnit:value:toDate:options: + objc.NSDate? dateByAddingUnit_value_toDate_options_(NSCalendarUnit unit, + int value, objc.NSDate date, NSCalendarOptions options) { + final _ret = _objc_msgSend_162( + this.pointer, + _sel_dateByAddingUnit_value_toDate_options_, + unit.value, + value, + date.pointer, + options.value); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// enumerateDatesStartingAfterDate:matchingComponents:options:usingBlock: + void enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_( + objc.NSDate start, + NSDateComponents comps, + NSCalendarOptions opts, + ObjCBlock_ffiVoid_NSDate_bool_bool block) { + _objc_msgSend_163( + this.pointer, + _sel_enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_, + start.pointer, + comps.pointer, + opts.value, + block.pointer); + } + + /// nextDateAfterDate:matchingComponents:options: + objc.NSDate? nextDateAfterDate_matchingComponents_options_( + objc.NSDate date, NSDateComponents comps, NSCalendarOptions options) { + final _ret = _objc_msgSend_164( + this.pointer, + _sel_nextDateAfterDate_matchingComponents_options_, + date.pointer, + comps.pointer, + options.value); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// nextDateAfterDate:matchingUnit:value:options: + objc.NSDate? nextDateAfterDate_matchingUnit_value_options_(objc.NSDate date, + NSCalendarUnit unit, int value, NSCalendarOptions options) { + final _ret = _objc_msgSend_165( + this.pointer, + _sel_nextDateAfterDate_matchingUnit_value_options_, + date.pointer, + unit.value, + value, + options.value); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// nextDateAfterDate:matchingHour:minute:second:options: + objc.NSDate? nextDateAfterDate_matchingHour_minute_second_options_( + objc.NSDate date, + int hourValue, + int minuteValue, + int secondValue, + NSCalendarOptions options) { + final _ret = _objc_msgSend_166( + this.pointer, + _sel_nextDateAfterDate_matchingHour_minute_second_options_, + date.pointer, + hourValue, + minuteValue, + secondValue, + options.value); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// dateBySettingUnit:value:ofDate:options: + objc.NSDate? dateBySettingUnit_value_ofDate_options_( + NSCalendarUnit unit, int v, objc.NSDate date, NSCalendarOptions opts) { + final _ret = _objc_msgSend_162( + this.pointer, + _sel_dateBySettingUnit_value_ofDate_options_, + unit.value, + v, + date.pointer, + opts.value); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// dateBySettingHour:minute:second:ofDate:options: + objc.NSDate? dateBySettingHour_minute_second_ofDate_options_( + int h, int m, int s, objc.NSDate date, NSCalendarOptions opts) { + final _ret = _objc_msgSend_167( + this.pointer, + _sel_dateBySettingHour_minute_second_ofDate_options_, + h, + m, + s, + date.pointer, + opts.value); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// date:matchesComponents: + bool date_matchesComponents_(objc.NSDate date, NSDateComponents components) { + return _objc_msgSend_168(this.pointer, _sel_date_matchesComponents_, + date.pointer, components.pointer); + } + + /// new + static NSCalendar new1() { + final _ret = _objc_msgSend_19(_class_NSCalendar, _sel_new); + return NSCalendar.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSCalendar allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSCalendar, _sel_allocWithZone_, zone); + return NSCalendar.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSCalendar alloc() { + final _ret = _objc_msgSend_19(_class_NSCalendar, _sel_alloc); + return NSCalendar.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSCalendar, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSCalendar, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSCalendar, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSCalendar, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSCalendar, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSCalendar, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSCalendar, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSCalendar, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSCalendar, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSCalendar = objc.getClass("classes.NSCalendar"); +late final _sel_currentCalendar = objc.registerName("currentCalendar"); +final _objc_msgSend_129 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_autoupdatingCurrentCalendar = + objc.registerName("autoupdatingCurrentCalendar"); +late final _sel_calendarWithIdentifier_ = + objc.registerName("calendarWithIdentifier:"); +final _objc_msgSend_130 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithCalendarIdentifier_ = + objc.registerName("initWithCalendarIdentifier:"); +late final _sel_calendarIdentifier = objc.registerName("calendarIdentifier"); +final _objc_msgSend_131 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_132 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_firstWeekday = objc.registerName("firstWeekday"); +late final _sel_setFirstWeekday_ = objc.registerName("setFirstWeekday:"); +final _objc_msgSend_133 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_minimumDaysInFirstWeek = + objc.registerName("minimumDaysInFirstWeek"); +late final _sel_setMinimumDaysInFirstWeek_ = + objc.registerName("setMinimumDaysInFirstWeek:"); +late final _sel_eraSymbols = objc.registerName("eraSymbols"); +late final _sel_longEraSymbols = objc.registerName("longEraSymbols"); +late final _sel_monthSymbols = objc.registerName("monthSymbols"); +late final _sel_shortMonthSymbols = objc.registerName("shortMonthSymbols"); +late final _sel_veryShortMonthSymbols = + objc.registerName("veryShortMonthSymbols"); +late final _sel_standaloneMonthSymbols = + objc.registerName("standaloneMonthSymbols"); +late final _sel_shortStandaloneMonthSymbols = + objc.registerName("shortStandaloneMonthSymbols"); +late final _sel_veryShortStandaloneMonthSymbols = + objc.registerName("veryShortStandaloneMonthSymbols"); +late final _sel_weekdaySymbols = objc.registerName("weekdaySymbols"); +late final _sel_shortWeekdaySymbols = objc.registerName("shortWeekdaySymbols"); +late final _sel_veryShortWeekdaySymbols = + objc.registerName("veryShortWeekdaySymbols"); +late final _sel_standaloneWeekdaySymbols = + objc.registerName("standaloneWeekdaySymbols"); +late final _sel_shortStandaloneWeekdaySymbols = + objc.registerName("shortStandaloneWeekdaySymbols"); +late final _sel_veryShortStandaloneWeekdaySymbols = + objc.registerName("veryShortStandaloneWeekdaySymbols"); +late final _sel_quarterSymbols = objc.registerName("quarterSymbols"); +late final _sel_shortQuarterSymbols = objc.registerName("shortQuarterSymbols"); +late final _sel_standaloneQuarterSymbols = + objc.registerName("standaloneQuarterSymbols"); +late final _sel_shortStandaloneQuarterSymbols = + objc.registerName("shortStandaloneQuarterSymbols"); +late final _sel_AMSymbol = objc.registerName("AMSymbol"); +late final _sel_PMSymbol = objc.registerName("PMSymbol"); + +enum NSCalendarUnit { + NSCalendarUnitEra(2), + NSCalendarUnitYear(4), + NSCalendarUnitMonth(8), + NSCalendarUnitDay(16), + NSCalendarUnitHour(32), + NSCalendarUnitMinute(64), + NSCalendarUnitSecond(128), + NSCalendarUnitWeekday(512), + NSCalendarUnitWeekdayOrdinal(1024), + NSCalendarUnitQuarter(2048), + NSCalendarUnitWeekOfMonth(4096), + NSCalendarUnitWeekOfYear(8192), + NSCalendarUnitYearForWeekOfYear(16384), + NSCalendarUnitNanosecond(32768), + NSCalendarUnitCalendar(1048576), + NSCalendarUnitTimeZone(2097152), + NSWeekCalendarUnit(256); + + static const NSEraCalendarUnit = NSCalendarUnitEra; + static const NSYearCalendarUnit = NSCalendarUnitYear; + static const NSMonthCalendarUnit = NSCalendarUnitMonth; + static const NSDayCalendarUnit = NSCalendarUnitDay; + static const NSHourCalendarUnit = NSCalendarUnitHour; + static const NSMinuteCalendarUnit = NSCalendarUnitMinute; + static const NSSecondCalendarUnit = NSCalendarUnitSecond; + static const NSWeekdayCalendarUnit = NSCalendarUnitWeekday; + static const NSWeekdayOrdinalCalendarUnit = NSCalendarUnitWeekdayOrdinal; + static const NSQuarterCalendarUnit = NSCalendarUnitQuarter; + static const NSWeekOfMonthCalendarUnit = NSCalendarUnitWeekOfMonth; + static const NSWeekOfYearCalendarUnit = NSCalendarUnitWeekOfYear; + static const NSYearForWeekOfYearCalendarUnit = + NSCalendarUnitYearForWeekOfYear; + static const NSCalendarCalendarUnit = NSCalendarUnitCalendar; + static const NSTimeZoneCalendarUnit = NSCalendarUnitTimeZone; + + final int value; + const NSCalendarUnit(this.value); + + static NSCalendarUnit fromValue(int value) => switch (value) { + 2 => NSCalendarUnitEra, + 4 => NSCalendarUnitYear, + 8 => NSCalendarUnitMonth, + 16 => NSCalendarUnitDay, + 32 => NSCalendarUnitHour, + 64 => NSCalendarUnitMinute, + 128 => NSCalendarUnitSecond, + 512 => NSCalendarUnitWeekday, + 1024 => NSCalendarUnitWeekdayOrdinal, + 2048 => NSCalendarUnitQuarter, + 4096 => NSCalendarUnitWeekOfMonth, + 8192 => NSCalendarUnitWeekOfYear, + 16384 => NSCalendarUnitYearForWeekOfYear, + 32768 => NSCalendarUnitNanosecond, + 1048576 => NSCalendarUnitCalendar, + 2097152 => NSCalendarUnitTimeZone, + 256 => NSWeekCalendarUnit, + _ => throw ArgumentError("Unknown value for NSCalendarUnit: $value"), + }; + + @override + String toString() { + if (this == NSCalendarUnitEra) + return "NSCalendarUnit.NSCalendarUnitEra, NSCalendarUnit.NSEraCalendarUnit"; + if (this == NSCalendarUnitYear) + return "NSCalendarUnit.NSCalendarUnitYear, NSCalendarUnit.NSYearCalendarUnit"; + if (this == NSCalendarUnitMonth) + return "NSCalendarUnit.NSCalendarUnitMonth, NSCalendarUnit.NSMonthCalendarUnit"; + if (this == NSCalendarUnitDay) + return "NSCalendarUnit.NSCalendarUnitDay, NSCalendarUnit.NSDayCalendarUnit"; + if (this == NSCalendarUnitHour) + return "NSCalendarUnit.NSCalendarUnitHour, NSCalendarUnit.NSHourCalendarUnit"; + if (this == NSCalendarUnitMinute) + return "NSCalendarUnit.NSCalendarUnitMinute, NSCalendarUnit.NSMinuteCalendarUnit"; + if (this == NSCalendarUnitSecond) + return "NSCalendarUnit.NSCalendarUnitSecond, NSCalendarUnit.NSSecondCalendarUnit"; + if (this == NSCalendarUnitWeekday) + return "NSCalendarUnit.NSCalendarUnitWeekday, NSCalendarUnit.NSWeekdayCalendarUnit"; + if (this == NSCalendarUnitWeekdayOrdinal) + return "NSCalendarUnit.NSCalendarUnitWeekdayOrdinal, NSCalendarUnit.NSWeekdayOrdinalCalendarUnit"; + if (this == NSCalendarUnitQuarter) + return "NSCalendarUnit.NSCalendarUnitQuarter, NSCalendarUnit.NSQuarterCalendarUnit"; + if (this == NSCalendarUnitWeekOfMonth) + return "NSCalendarUnit.NSCalendarUnitWeekOfMonth, NSCalendarUnit.NSWeekOfMonthCalendarUnit"; + if (this == NSCalendarUnitWeekOfYear) + return "NSCalendarUnit.NSCalendarUnitWeekOfYear, NSCalendarUnit.NSWeekOfYearCalendarUnit"; + if (this == NSCalendarUnitYearForWeekOfYear) + return "NSCalendarUnit.NSCalendarUnitYearForWeekOfYear, NSCalendarUnit.NSYearForWeekOfYearCalendarUnit"; + if (this == NSCalendarUnitCalendar) + return "NSCalendarUnit.NSCalendarUnitCalendar, NSCalendarUnit.NSCalendarCalendarUnit"; + if (this == NSCalendarUnitTimeZone) + return "NSCalendarUnit.NSCalendarUnitTimeZone, NSCalendarUnit.NSTimeZoneCalendarUnit"; + return super.toString(); + } +} + +late final _sel_minimumRangeOfUnit_ = objc.registerName("minimumRangeOfUnit:"); +final _objc_msgSend_134 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + _NSRange Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + _NSRange Function(ffi.Pointer, + ffi.Pointer, int)>(); +final _objc_msgSend_134Stret = objc.msgSendStretPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer<_NSRange>, ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_maximumRangeOfUnit_ = objc.registerName("maximumRangeOfUnit:"); +late final _sel_rangeOfUnit_inUnit_forDate_ = + objc.registerName("rangeOfUnit:inUnit:forDate:"); +final _objc_msgSend_135 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + _NSRange Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + _NSRange Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer)>(); +final _objc_msgSend_135Stret = objc.msgSendStretPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer)>(); +late final _sel_ordinalityOfUnit_inUnit_forDate_ = + objc.registerName("ordinalityOfUnit:inUnit:forDate:"); +final _objc_msgSend_136 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer)>(); +late final _sel_rangeOfUnit_startDate_interval_forDate_ = + objc.registerName("rangeOfUnit:startDate:interval:forDate:"); +final _objc_msgSend_137 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSDateComponents +class NSDateComponents extends objc.NSObject { + NSDateComponents._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSDateComponents] that points to the same underlying object as [other]. + NSDateComponents.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSDateComponents] that wraps the given raw object pointer. + NSDateComponents.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSDateComponents]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSDateComponents); + } + + /// calendar + NSCalendar? get calendar { + final _ret = _objc_msgSend_138(this.pointer, _sel_calendar); + return _ret.address == 0 + ? null + : NSCalendar.castFromPointer(_ret, retain: true, release: true); + } + + /// setCalendar: + set calendar(NSCalendar? value) { + return _objc_msgSend_139( + this.pointer, _sel_setCalendar_, value?.pointer ?? ffi.nullptr); + } + + /// timeZone + NSTimeZone? get timeZone { + final _ret = _objc_msgSend_140(this.pointer, _sel_timeZone); + return _ret.address == 0 + ? null + : NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// setTimeZone: + set timeZone(NSTimeZone? value) { + return _objc_msgSend_141( + this.pointer, _sel_setTimeZone_, value?.pointer ?? ffi.nullptr); + } + + /// era + int get era { + return _objc_msgSend_123(this.pointer, _sel_era); + } + + /// setEra: + set era(int value) { + return _objc_msgSend_142(this.pointer, _sel_setEra_, value); + } + + /// year + int get year { + return _objc_msgSend_123(this.pointer, _sel_year); + } + + /// setYear: + set year(int value) { + return _objc_msgSend_142(this.pointer, _sel_setYear_, value); + } + + /// month + int get month { + return _objc_msgSend_123(this.pointer, _sel_month); + } + + /// setMonth: + set month(int value) { + return _objc_msgSend_142(this.pointer, _sel_setMonth_, value); + } + + /// day + int get day { + return _objc_msgSend_123(this.pointer, _sel_day); + } + + /// setDay: + set day(int value) { + return _objc_msgSend_142(this.pointer, _sel_setDay_, value); + } + + /// hour + int get hour { + return _objc_msgSend_123(this.pointer, _sel_hour); + } + + /// setHour: + set hour(int value) { + return _objc_msgSend_142(this.pointer, _sel_setHour_, value); + } + + /// minute + int get minute { + return _objc_msgSend_123(this.pointer, _sel_minute); + } + + /// setMinute: + set minute(int value) { + return _objc_msgSend_142(this.pointer, _sel_setMinute_, value); + } + + /// second + int get second { + return _objc_msgSend_123(this.pointer, _sel_second); + } + + /// setSecond: + set second(int value) { + return _objc_msgSend_142(this.pointer, _sel_setSecond_, value); + } + + /// nanosecond + int get nanosecond { + return _objc_msgSend_123(this.pointer, _sel_nanosecond); + } + + /// setNanosecond: + set nanosecond(int value) { + return _objc_msgSend_142(this.pointer, _sel_setNanosecond_, value); + } + + /// weekday + int get weekday { + return _objc_msgSend_123(this.pointer, _sel_weekday); + } + + /// setWeekday: + set weekday(int value) { + return _objc_msgSend_142(this.pointer, _sel_setWeekday_, value); + } + + /// weekdayOrdinal + int get weekdayOrdinal { + return _objc_msgSend_123(this.pointer, _sel_weekdayOrdinal); + } + + /// setWeekdayOrdinal: + set weekdayOrdinal(int value) { + return _objc_msgSend_142(this.pointer, _sel_setWeekdayOrdinal_, value); + } + + /// quarter + int get quarter { + return _objc_msgSend_123(this.pointer, _sel_quarter); + } + + /// setQuarter: + set quarter(int value) { + return _objc_msgSend_142(this.pointer, _sel_setQuarter_, value); + } + + /// weekOfMonth + int get weekOfMonth { + return _objc_msgSend_123(this.pointer, _sel_weekOfMonth); + } + + /// setWeekOfMonth: + set weekOfMonth(int value) { + return _objc_msgSend_142(this.pointer, _sel_setWeekOfMonth_, value); + } + + /// weekOfYear + int get weekOfYear { + return _objc_msgSend_123(this.pointer, _sel_weekOfYear); + } + + /// setWeekOfYear: + set weekOfYear(int value) { + return _objc_msgSend_142(this.pointer, _sel_setWeekOfYear_, value); + } + + /// yearForWeekOfYear + int get yearForWeekOfYear { + return _objc_msgSend_123(this.pointer, _sel_yearForWeekOfYear); + } + + /// setYearForWeekOfYear: + set yearForWeekOfYear(int value) { + return _objc_msgSend_142(this.pointer, _sel_setYearForWeekOfYear_, value); + } + + /// isLeapMonth + bool get leapMonth { + return _objc_msgSend_13(this.pointer, _sel_isLeapMonth); + } + + /// setLeapMonth: + set leapMonth(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setLeapMonth_, value); + } + + /// date + objc.NSDate? get date { + final _ret = _objc_msgSend_124(this.pointer, _sel_date); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// week + int week() { + return _objc_msgSend_123(this.pointer, _sel_week); + } + + /// setWeek: + void setWeek_(int v) { + _objc_msgSend_143(this.pointer, _sel_setWeek_, v); + } + + /// setValue:forComponent: + void setValue_forComponent_(int value, NSCalendarUnit unit) { + _objc_msgSend_144( + this.pointer, _sel_setValue_forComponent_, value, unit.value); + } + + /// valueForComponent: + int valueForComponent_(NSCalendarUnit unit) { + return _objc_msgSend_145(this.pointer, _sel_valueForComponent_, unit.value); + } + + /// isValidDate + bool get validDate { + return _objc_msgSend_13(this.pointer, _sel_isValidDate); + } + + /// isValidDateInCalendar: + bool isValidDateInCalendar_(NSCalendar calendar) { + return _objc_msgSend_146( + this.pointer, _sel_isValidDateInCalendar_, calendar.pointer); + } + + /// init + NSDateComponents init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSDateComponents.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSDateComponents new1() { + final _ret = _objc_msgSend_19(_class_NSDateComponents, _sel_new); + return NSDateComponents.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSDateComponents allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSDateComponents, _sel_allocWithZone_, zone); + return NSDateComponents.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSDateComponents alloc() { + final _ret = _objc_msgSend_19(_class_NSDateComponents, _sel_alloc); + return NSDateComponents.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSDateComponents, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSDateComponents, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSDateComponents, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSDateComponents, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSDateComponents, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSDateComponents, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSDateComponents, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSDateComponents, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSDateComponents, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSDateComponents = objc.getClass("classes.NSDateComponents"); +late final _sel_calendar = objc.registerName("calendar"); +final _objc_msgSend_138 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCalendar_ = objc.registerName("setCalendar:"); +final _objc_msgSend_139 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_140 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_141 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_era = objc.registerName("era"); +late final _sel_setEra_ = objc.registerName("setEra:"); +final _objc_msgSend_142 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_year = objc.registerName("year"); +late final _sel_setYear_ = objc.registerName("setYear:"); +late final _sel_month = objc.registerName("month"); +late final _sel_setMonth_ = objc.registerName("setMonth:"); +late final _sel_day = objc.registerName("day"); +late final _sel_setDay_ = objc.registerName("setDay:"); +late final _sel_hour = objc.registerName("hour"); +late final _sel_setHour_ = objc.registerName("setHour:"); +late final _sel_minute = objc.registerName("minute"); +late final _sel_setMinute_ = objc.registerName("setMinute:"); +late final _sel_second = objc.registerName("second"); +late final _sel_setSecond_ = objc.registerName("setSecond:"); +late final _sel_nanosecond = objc.registerName("nanosecond"); +late final _sel_setNanosecond_ = objc.registerName("setNanosecond:"); +late final _sel_weekday = objc.registerName("weekday"); +late final _sel_setWeekday_ = objc.registerName("setWeekday:"); +late final _sel_weekdayOrdinal = objc.registerName("weekdayOrdinal"); +late final _sel_setWeekdayOrdinal_ = objc.registerName("setWeekdayOrdinal:"); +late final _sel_quarter = objc.registerName("quarter"); +late final _sel_setQuarter_ = objc.registerName("setQuarter:"); +late final _sel_weekOfMonth = objc.registerName("weekOfMonth"); +late final _sel_setWeekOfMonth_ = objc.registerName("setWeekOfMonth:"); +late final _sel_weekOfYear = objc.registerName("weekOfYear"); +late final _sel_setWeekOfYear_ = objc.registerName("setWeekOfYear:"); +late final _sel_yearForWeekOfYear = objc.registerName("yearForWeekOfYear"); +late final _sel_setYearForWeekOfYear_ = + objc.registerName("setYearForWeekOfYear:"); +late final _sel_isLeapMonth = objc.registerName("isLeapMonth"); +late final _sel_setLeapMonth_ = objc.registerName("setLeapMonth:"); +late final _sel_date = objc.registerName("date"); +late final _sel_week = objc.registerName("week"); +late final _sel_setWeek_ = objc.registerName("setWeek:"); +final _objc_msgSend_143 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setValue_forComponent_ = + objc.registerName("setValue:forComponent:"); +final _objc_msgSend_144 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Long, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int, int)>(); +late final _sel_valueForComponent_ = objc.registerName("valueForComponent:"); +final _objc_msgSend_145 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_isValidDate = objc.registerName("isValidDate"); +late final _sel_isValidDateInCalendar_ = + objc.registerName("isValidDateInCalendar:"); +final _objc_msgSend_146 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_dateFromComponents_ = objc.registerName("dateFromComponents:"); +final _objc_msgSend_147 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_components_fromDate_ = + objc.registerName("components:fromDate:"); +final _objc_msgSend_148 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); + +enum NSCalendarOptions { + NSCalendarWrapComponents(1), + NSCalendarMatchStrictly(2), + NSCalendarSearchBackwards(4), + NSCalendarMatchPreviousTimePreservingSmallerUnits(256), + NSCalendarMatchNextTimePreservingSmallerUnits(512), + NSCalendarMatchNextTime(1024), + NSCalendarMatchFirst(4096), + NSCalendarMatchLast(8192); + + final int value; + const NSCalendarOptions(this.value); + + static NSCalendarOptions fromValue(int value) => switch (value) { + 1 => NSCalendarWrapComponents, + 2 => NSCalendarMatchStrictly, + 4 => NSCalendarSearchBackwards, + 256 => NSCalendarMatchPreviousTimePreservingSmallerUnits, + 512 => NSCalendarMatchNextTimePreservingSmallerUnits, + 1024 => NSCalendarMatchNextTime, + 4096 => NSCalendarMatchFirst, + 8192 => NSCalendarMatchLast, + _ => throw ArgumentError("Unknown value for NSCalendarOptions: $value"), + }; +} + +late final _sel_dateByAddingComponents_toDate_options_ = + objc.registerName("dateByAddingComponents:toDate:options:"); +final _objc_msgSend_149 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_components_fromDate_toDate_options_ = + objc.registerName("components:fromDate:toDate:options:"); +final _objc_msgSend_150 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_getEra_year_month_day_fromDate_ = + objc.registerName("getEra:year:month:day:fromDate:"); +final _objc_msgSend_151 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_getEra_yearForWeekOfYear_weekOfYear_weekday_fromDate_ = + objc.registerName("getEra:yearForWeekOfYear:weekOfYear:weekday:fromDate:"); +late final _sel_getHour_minute_second_nanosecond_fromDate_ = + objc.registerName("getHour:minute:second:nanosecond:fromDate:"); +late final _sel_component_fromDate_ = objc.registerName("component:fromDate:"); +final _objc_msgSend_152 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_dateWithEra_year_month_day_hour_minute_second_nanosecond_ = objc + .registerName("dateWithEra:year:month:day:hour:minute:second:nanosecond:"); +final _objc_msgSend_153 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Long, + ffi.Long, + ffi.Long, + ffi.Long, + ffi.Long, + ffi.Long, + ffi.Long)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + int, + int, + int, + int, + int, + int)>(); +late final _sel_dateWithEra_yearForWeekOfYear_weekOfYear_weekday_hour_minute_second_nanosecond_ = + objc.registerName( + "dateWithEra:yearForWeekOfYear:weekOfYear:weekday:hour:minute:second:nanosecond:"); +late final _sel_startOfDayForDate_ = objc.registerName("startOfDayForDate:"); +final _objc_msgSend_154 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_componentsInTimeZone_fromDate_ = + objc.registerName("componentsInTimeZone:fromDate:"); +final _objc_msgSend_155 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_compareDate_toDate_toUnitGranularity_ = + objc.registerName("compareDate:toDate:toUnitGranularity:"); +final _objc_msgSend_156 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + int Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_isDate_equalToDate_toUnitGranularity_ = + objc.registerName("isDate:equalToDate:toUnitGranularity:"); +final _objc_msgSend_157 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_isDate_inSameDayAsDate_ = + objc.registerName("isDate:inSameDayAsDate:"); +final _objc_msgSend_158 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_isDateInToday_ = objc.registerName("isDateInToday:"); +late final _sel_isDateInYesterday_ = objc.registerName("isDateInYesterday:"); +late final _sel_isDateInTomorrow_ = objc.registerName("isDateInTomorrow:"); +late final _sel_isDateInWeekend_ = objc.registerName("isDateInWeekend:"); +late final _sel_rangeOfWeekendStartDate_interval_containingDate_ = + objc.registerName("rangeOfWeekendStartDate:interval:containingDate:"); +final _objc_msgSend_159 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_nextWeekendStartDate_interval_options_afterDate_ = + objc.registerName("nextWeekendStartDate:interval:options:afterDate:"); +final _objc_msgSend_160 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_components_fromDateComponents_toDateComponents_options_ = objc + .registerName("components:fromDateComponents:toDateComponents:options:"); +final _objc_msgSend_161 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_dateByAddingUnit_value_toDate_options_ = + objc.registerName("dateByAddingUnit:value:toDate:options:"); +final _objc_msgSend_162 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Long, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer, + int)>(); +void _ObjCBlock_ffiVoid_NSDate_bool_bool_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + bool arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Bool arg1, ffi.Pointer arg2)>>() + .asFunction< + void Function(ffi.Pointer, bool, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_NSDate_bool_bool_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + bool arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function(ffi.Pointer, + bool, ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSDate_bool_bool extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSDate_bool_bool._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSDate_bool_bool castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSDate_bool_bool._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDate_bool_bool.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Bool arg1, ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDate_bool_bool_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDate_bool_bool.fromFunction( + void Function(objc.NSDate?, bool, ffi.Pointer) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDate_bool_bool_closureTrampoline) + .cast(), + (ffi.Pointer arg0, bool arg1, ffi.Pointer arg2) => + fn(arg0.address == 0 ? null : objc.NSDate.castFromPointer(arg0, retain: true, release: true), + arg1, arg2))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSDate_bool_bool.listener( + void Function(objc.NSDate?, bool, ffi.Pointer) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSDate_bool_bool( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSDate_bool_bool_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, bool arg1, + ffi.Pointer arg2) => + fn(arg0.address == 0 ? null : objc.NSDate.castFromPointer(arg0, retain: false, release: true), arg1, arg2)))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(objc.NSDate? arg0, bool arg1, ffi.Pointer arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Bool arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + bool, + ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr, arg1, arg2); +} + +late final _sel_enumerateDatesStartingAfterDate_matchingComponents_options_usingBlock_ = + objc.registerName( + "enumerateDatesStartingAfterDate:matchingComponents:options:usingBlock:"); +final _objc_msgSend_163 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_nextDateAfterDate_matchingComponents_options_ = + objc.registerName("nextDateAfterDate:matchingComponents:options:"); +final _objc_msgSend_164 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_nextDateAfterDate_matchingUnit_value_options_ = + objc.registerName("nextDateAfterDate:matchingUnit:value:options:"); +final _objc_msgSend_165 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Long, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + int, + int)>(); +late final _sel_nextDateAfterDate_matchingHour_minute_second_options_ = + objc.registerName("nextDateAfterDate:matchingHour:minute:second:options:"); +final _objc_msgSend_166 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Long, + ffi.Long, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + int, + int, + int)>(); +late final _sel_dateBySettingUnit_value_ofDate_options_ = + objc.registerName("dateBySettingUnit:value:ofDate:options:"); +late final _sel_dateBySettingHour_minute_second_ofDate_options_ = + objc.registerName("dateBySettingHour:minute:second:ofDate:options:"); +final _objc_msgSend_167 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Long, + ffi.Long, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + int, + ffi.Pointer, + int)>(); +late final _sel_date_matchesComponents_ = + objc.registerName("date:matchesComponents:"); +final _objc_msgSend_168 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +final _objc_msgSend_169 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_isLenient = objc.registerName("isLenient"); +late final _sel_setLenient_ = objc.registerName("setLenient:"); +late final _sel_twoDigitStartDate = objc.registerName("twoDigitStartDate"); +late final _sel_setTwoDigitStartDate_ = + objc.registerName("setTwoDigitStartDate:"); +final _objc_msgSend_170 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_defaultDate = objc.registerName("defaultDate"); +late final _sel_setDefaultDate_ = objc.registerName("setDefaultDate:"); +late final _sel_setEraSymbols_ = objc.registerName("setEraSymbols:"); +final _objc_msgSend_171 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setMonthSymbols_ = objc.registerName("setMonthSymbols:"); +late final _sel_setShortMonthSymbols_ = + objc.registerName("setShortMonthSymbols:"); +late final _sel_setWeekdaySymbols_ = objc.registerName("setWeekdaySymbols:"); +late final _sel_setShortWeekdaySymbols_ = + objc.registerName("setShortWeekdaySymbols:"); +late final _sel_setAMSymbol_ = objc.registerName("setAMSymbol:"); +late final _sel_setPMSymbol_ = objc.registerName("setPMSymbol:"); +late final _sel_setLongEraSymbols_ = objc.registerName("setLongEraSymbols:"); +late final _sel_setVeryShortMonthSymbols_ = + objc.registerName("setVeryShortMonthSymbols:"); +late final _sel_setStandaloneMonthSymbols_ = + objc.registerName("setStandaloneMonthSymbols:"); +late final _sel_setShortStandaloneMonthSymbols_ = + objc.registerName("setShortStandaloneMonthSymbols:"); +late final _sel_setVeryShortStandaloneMonthSymbols_ = + objc.registerName("setVeryShortStandaloneMonthSymbols:"); +late final _sel_setVeryShortWeekdaySymbols_ = + objc.registerName("setVeryShortWeekdaySymbols:"); +late final _sel_setStandaloneWeekdaySymbols_ = + objc.registerName("setStandaloneWeekdaySymbols:"); +late final _sel_setShortStandaloneWeekdaySymbols_ = + objc.registerName("setShortStandaloneWeekdaySymbols:"); +late final _sel_setVeryShortStandaloneWeekdaySymbols_ = + objc.registerName("setVeryShortStandaloneWeekdaySymbols:"); +late final _sel_setQuarterSymbols_ = objc.registerName("setQuarterSymbols:"); +late final _sel_setShortQuarterSymbols_ = + objc.registerName("setShortQuarterSymbols:"); +late final _sel_setStandaloneQuarterSymbols_ = + objc.registerName("setStandaloneQuarterSymbols:"); +late final _sel_setShortStandaloneQuarterSymbols_ = + objc.registerName("setShortStandaloneQuarterSymbols:"); +late final _sel_gregorianStartDate = objc.registerName("gregorianStartDate"); +late final _sel_setGregorianStartDate_ = + objc.registerName("setGregorianStartDate:"); +late final _sel_doesRelativeDateFormatting = + objc.registerName("doesRelativeDateFormatting"); +late final _sel_setDoesRelativeDateFormatting_ = + objc.registerName("setDoesRelativeDateFormatting:"); +late final _sel_initWithDateFormat_allowNaturalLanguage_ = + objc.registerName("initWithDateFormat:allowNaturalLanguage:"); +final _objc_msgSend_172 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_allowsNaturalLanguage = + objc.registerName("allowsNaturalLanguage"); + +/// NSFormatter +class NSFormatter extends objc.NSObject { + NSFormatter._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSFormatter] that points to the same underlying object as [other]. + NSFormatter.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSFormatter] that wraps the given raw object pointer. + NSFormatter.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSFormatter]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSFormatter); + } + + /// stringForObjectValue: + objc.NSString? stringForObjectValue_(objc.ObjCObjectBase? obj) { + final _ret = _objc_msgSend_173( + this.pointer, _sel_stringForObjectValue_, obj?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// attributedStringForObjectValue:withDefaultAttributes: + NSAttributedString? attributedStringForObjectValue_withDefaultAttributes_( + objc.ObjCObjectBase obj, objc.NSDictionary? attrs) { + final _ret = _objc_msgSend_174( + this.pointer, + _sel_attributedStringForObjectValue_withDefaultAttributes_, + obj.pointer, + attrs?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSAttributedString.castFromPointer(_ret, retain: true, release: true); + } + + /// editingStringForObjectValue: + objc.NSString? editingStringForObjectValue_(objc.ObjCObjectBase obj) { + final _ret = _objc_msgSend_175( + this.pointer, _sel_editingStringForObjectValue_, obj.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// getObjectValue:forString:errorDescription: + bool getObjectValue_forString_errorDescription_( + ffi.Pointer> obj, + objc.NSString string, + ffi.Pointer> error) { + return _objc_msgSend_176( + this.pointer, + _sel_getObjectValue_forString_errorDescription_, + obj, + string.pointer, + error); + } + + /// isPartialStringValid:newEditingString:errorDescription: + bool isPartialStringValid_newEditingString_errorDescription_( + objc.NSString partialString, + ffi.Pointer> newString, + ffi.Pointer> error) { + return _objc_msgSend_177( + this.pointer, + _sel_isPartialStringValid_newEditingString_errorDescription_, + partialString.pointer, + newString, + error); + } + + /// isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription: + bool + isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_( + ffi.Pointer> partialStringPtr, + ffi.Pointer<_NSRange> proposedSelRangePtr, + objc.NSString origString, + _NSRange origSelRange, + ffi.Pointer> error) { + return _objc_msgSend_178( + this.pointer, + _sel_isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_, + partialStringPtr, + proposedSelRangePtr, + origString.pointer, + origSelRange, + error); + } + + /// init + NSFormatter init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSFormatter.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSFormatter new1() { + final _ret = _objc_msgSend_19(_class_NSFormatter, _sel_new); + return NSFormatter.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSFormatter allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSFormatter, _sel_allocWithZone_, zone); + return NSFormatter.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSFormatter alloc() { + final _ret = _objc_msgSend_19(_class_NSFormatter, _sel_alloc); + return NSFormatter.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSFormatter, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSFormatter, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSFormatter, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSFormatter, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSFormatter, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSFormatter, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSFormatter, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSFormatter, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSFormatter, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSFormatter = objc.getClass("classes.NSFormatter"); +late final _sel_stringForObjectValue_ = + objc.registerName("stringForObjectValue:"); +final _objc_msgSend_173 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_attributedStringForObjectValue_withDefaultAttributes_ = + objc.registerName("attributedStringForObjectValue:withDefaultAttributes:"); +final _objc_msgSend_174 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_editingStringForObjectValue_ = + objc.registerName("editingStringForObjectValue:"); +final _objc_msgSend_175 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_getObjectValue_forString_errorDescription_ = + objc.registerName("getObjectValue:forString:errorDescription:"); +final _objc_msgSend_176 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_isPartialStringValid_newEditingString_errorDescription_ = objc + .registerName("isPartialStringValid:newEditingString:errorDescription:"); +final _objc_msgSend_177 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>(); +late final _sel_isPartialStringValid_proposedSelectedRange_originalString_originalSelectedRange_errorDescription_ = + objc.registerName( + "isPartialStringValid:proposedSelectedRange:originalString:originalSelectedRange:errorDescription:"); +final _objc_msgSend_178 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer<_NSRange>, + ffi.Pointer, + _NSRange, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer<_NSRange>, + ffi.Pointer, + _NSRange, + ffi.Pointer>)>(); + +/// NSNumberFormatter +class NSNumberFormatter extends NSFormatter { + NSNumberFormatter._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSNumberFormatter] that points to the same underlying object as [other]. + NSNumberFormatter.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSNumberFormatter] that wraps the given raw object pointer. + NSNumberFormatter.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSNumberFormatter]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSNumberFormatter); + } + + /// formattingContext + NSFormattingContext get formattingContext { + final _ret = _objc_msgSend_99(this.pointer, _sel_formattingContext); + return NSFormattingContext.fromValue(_ret); + } + + /// setFormattingContext: + set formattingContext(NSFormattingContext value) { + return _objc_msgSend_100( + this.pointer, _sel_setFormattingContext_, value.value); + } + + /// getObjectValue:forString:range:error: + bool getObjectValue_forString_range_error_( + ffi.Pointer> obj, + objc.NSString string, + ffi.Pointer<_NSRange> rangep, + ffi.Pointer> error) { + return _objc_msgSend_101( + this.pointer, + _sel_getObjectValue_forString_range_error_, + obj, + string.pointer, + rangep, + error); + } + + /// stringFromNumber: + objc.NSString? stringFromNumber_(objc.NSNumber number) { + final _ret = + _objc_msgSend_179(this.pointer, _sel_stringFromNumber_, number.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// numberFromString: + objc.NSNumber? numberFromString_(objc.NSString string) { + final _ret = + _objc_msgSend_180(this.pointer, _sel_numberFromString_, string.pointer); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// localizedStringFromNumber:numberStyle: + static objc.NSString localizedStringFromNumber_numberStyle_( + objc.NSNumber num, NSNumberFormatterStyle nstyle) { + final _ret = _objc_msgSend_181(_class_NSNumberFormatter, + _sel_localizedStringFromNumber_numberStyle_, num.pointer, nstyle.value); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// defaultFormatterBehavior + static NSNumberFormatterBehavior defaultFormatterBehavior() { + final _ret = _objc_msgSend_182( + _class_NSNumberFormatter, _sel_defaultFormatterBehavior); + return NSNumberFormatterBehavior.fromValue(_ret); + } + + /// setDefaultFormatterBehavior: + static void setDefaultFormatterBehavior_(NSNumberFormatterBehavior behavior) { + _objc_msgSend_183(_class_NSNumberFormatter, + _sel_setDefaultFormatterBehavior_, behavior.value); + } + + /// numberStyle + NSNumberFormatterStyle get numberStyle { + final _ret = _objc_msgSend_184(this.pointer, _sel_numberStyle); + return NSNumberFormatterStyle.fromValue(_ret); + } + + /// setNumberStyle: + set numberStyle(NSNumberFormatterStyle value) { + return _objc_msgSend_185(this.pointer, _sel_setNumberStyle_, value.value); + } + + /// locale + objc.NSLocale get locale { + final _ret = _objc_msgSend_111(this.pointer, _sel_locale); + return objc.NSLocale.castFromPointer(_ret, retain: true, release: true); + } + + /// setLocale: + set locale(objc.NSLocale value) { + return _objc_msgSend_112(this.pointer, _sel_setLocale_, value.pointer); + } + + /// generatesDecimalNumbers + bool get generatesDecimalNumbers { + return _objc_msgSend_13(this.pointer, _sel_generatesDecimalNumbers); + } + + /// setGeneratesDecimalNumbers: + set generatesDecimalNumbers(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setGeneratesDecimalNumbers_, value); + } + + /// formatterBehavior + NSNumberFormatterBehavior get formatterBehavior { + final _ret = _objc_msgSend_182(this.pointer, _sel_formatterBehavior); + return NSNumberFormatterBehavior.fromValue(_ret); + } + + /// setFormatterBehavior: + set formatterBehavior(NSNumberFormatterBehavior value) { + return _objc_msgSend_186( + this.pointer, _sel_setFormatterBehavior_, value.value); + } + + /// negativeFormat + objc.NSString get negativeFormat { + final _ret = _objc_msgSend_11(this.pointer, _sel_negativeFormat); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setNegativeFormat: + set negativeFormat(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setNegativeFormat_, value.pointer); + } + + /// textAttributesForNegativeValues + objc.NSDictionary? get textAttributesForNegativeValues { + final _ret = + _objc_msgSend_82(this.pointer, _sel_textAttributesForNegativeValues); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setTextAttributesForNegativeValues: + set textAttributesForNegativeValues(objc.NSDictionary? value) { + return _objc_msgSend_187( + this.pointer, + _sel_setTextAttributesForNegativeValues_, + value?.pointer ?? ffi.nullptr); + } + + /// positiveFormat + objc.NSString get positiveFormat { + final _ret = _objc_msgSend_11(this.pointer, _sel_positiveFormat); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPositiveFormat: + set positiveFormat(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setPositiveFormat_, value.pointer); + } + + /// textAttributesForPositiveValues + objc.NSDictionary? get textAttributesForPositiveValues { + final _ret = + _objc_msgSend_82(this.pointer, _sel_textAttributesForPositiveValues); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setTextAttributesForPositiveValues: + set textAttributesForPositiveValues(objc.NSDictionary? value) { + return _objc_msgSend_187( + this.pointer, + _sel_setTextAttributesForPositiveValues_, + value?.pointer ?? ffi.nullptr); + } + + /// allowsFloats + bool get allowsFloats { + return _objc_msgSend_13(this.pointer, _sel_allowsFloats); + } + + /// setAllowsFloats: + set allowsFloats(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setAllowsFloats_, value); + } + + /// decimalSeparator + objc.NSString get decimalSeparator { + final _ret = _objc_msgSend_11(this.pointer, _sel_decimalSeparator); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setDecimalSeparator: + set decimalSeparator(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setDecimalSeparator_, value.pointer); + } + + /// alwaysShowsDecimalSeparator + bool get alwaysShowsDecimalSeparator { + return _objc_msgSend_13(this.pointer, _sel_alwaysShowsDecimalSeparator); + } + + /// setAlwaysShowsDecimalSeparator: + set alwaysShowsDecimalSeparator(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAlwaysShowsDecimalSeparator_, value); + } + + /// currencyDecimalSeparator + objc.NSString get currencyDecimalSeparator { + final _ret = _objc_msgSend_11(this.pointer, _sel_currencyDecimalSeparator); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setCurrencyDecimalSeparator: + set currencyDecimalSeparator(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setCurrencyDecimalSeparator_, value.pointer); + } + + /// usesGroupingSeparator + bool get usesGroupingSeparator { + return _objc_msgSend_13(this.pointer, _sel_usesGroupingSeparator); + } + + /// setUsesGroupingSeparator: + set usesGroupingSeparator(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setUsesGroupingSeparator_, value); + } + + /// groupingSeparator + objc.NSString get groupingSeparator { + final _ret = _objc_msgSend_11(this.pointer, _sel_groupingSeparator); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setGroupingSeparator: + set groupingSeparator(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setGroupingSeparator_, value.pointer); + } + + /// zeroSymbol + objc.NSString? get zeroSymbol { + final _ret = _objc_msgSend_20(this.pointer, _sel_zeroSymbol); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setZeroSymbol: + set zeroSymbol(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setZeroSymbol_, value?.pointer ?? ffi.nullptr); + } + + /// textAttributesForZero + objc.NSDictionary? get textAttributesForZero { + final _ret = _objc_msgSend_82(this.pointer, _sel_textAttributesForZero); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setTextAttributesForZero: + set textAttributesForZero(objc.NSDictionary? value) { + return _objc_msgSend_187(this.pointer, _sel_setTextAttributesForZero_, + value?.pointer ?? ffi.nullptr); + } + + /// nilSymbol + objc.NSString get nilSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_nilSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setNilSymbol: + set nilSymbol(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setNilSymbol_, value.pointer); + } + + /// textAttributesForNil + objc.NSDictionary? get textAttributesForNil { + final _ret = _objc_msgSend_82(this.pointer, _sel_textAttributesForNil); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setTextAttributesForNil: + set textAttributesForNil(objc.NSDictionary? value) { + return _objc_msgSend_187(this.pointer, _sel_setTextAttributesForNil_, + value?.pointer ?? ffi.nullptr); + } + + /// notANumberSymbol + objc.NSString get notANumberSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_notANumberSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setNotANumberSymbol: + set notANumberSymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setNotANumberSymbol_, value.pointer); + } + + /// textAttributesForNotANumber + objc.NSDictionary? get textAttributesForNotANumber { + final _ret = + _objc_msgSend_82(this.pointer, _sel_textAttributesForNotANumber); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setTextAttributesForNotANumber: + set textAttributesForNotANumber(objc.NSDictionary? value) { + return _objc_msgSend_187(this.pointer, _sel_setTextAttributesForNotANumber_, + value?.pointer ?? ffi.nullptr); + } + + /// positiveInfinitySymbol + objc.NSString get positiveInfinitySymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_positiveInfinitySymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPositiveInfinitySymbol: + set positiveInfinitySymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setPositiveInfinitySymbol_, value.pointer); + } + + /// textAttributesForPositiveInfinity + objc.NSDictionary? get textAttributesForPositiveInfinity { + final _ret = + _objc_msgSend_82(this.pointer, _sel_textAttributesForPositiveInfinity); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setTextAttributesForPositiveInfinity: + set textAttributesForPositiveInfinity(objc.NSDictionary? value) { + return _objc_msgSend_187( + this.pointer, + _sel_setTextAttributesForPositiveInfinity_, + value?.pointer ?? ffi.nullptr); + } + + /// negativeInfinitySymbol + objc.NSString get negativeInfinitySymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_negativeInfinitySymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setNegativeInfinitySymbol: + set negativeInfinitySymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setNegativeInfinitySymbol_, value.pointer); + } + + /// textAttributesForNegativeInfinity + objc.NSDictionary? get textAttributesForNegativeInfinity { + final _ret = + _objc_msgSend_82(this.pointer, _sel_textAttributesForNegativeInfinity); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setTextAttributesForNegativeInfinity: + set textAttributesForNegativeInfinity(objc.NSDictionary? value) { + return _objc_msgSend_187( + this.pointer, + _sel_setTextAttributesForNegativeInfinity_, + value?.pointer ?? ffi.nullptr); + } + + /// positivePrefix + objc.NSString get positivePrefix { + final _ret = _objc_msgSend_11(this.pointer, _sel_positivePrefix); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPositivePrefix: + set positivePrefix(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setPositivePrefix_, value.pointer); + } + + /// positiveSuffix + objc.NSString get positiveSuffix { + final _ret = _objc_msgSend_11(this.pointer, _sel_positiveSuffix); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPositiveSuffix: + set positiveSuffix(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setPositiveSuffix_, value.pointer); + } + + /// negativePrefix + objc.NSString get negativePrefix { + final _ret = _objc_msgSend_11(this.pointer, _sel_negativePrefix); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setNegativePrefix: + set negativePrefix(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setNegativePrefix_, value.pointer); + } + + /// negativeSuffix + objc.NSString get negativeSuffix { + final _ret = _objc_msgSend_11(this.pointer, _sel_negativeSuffix); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setNegativeSuffix: + set negativeSuffix(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setNegativeSuffix_, value.pointer); + } + + /// currencyCode + objc.NSString get currencyCode { + final _ret = _objc_msgSend_11(this.pointer, _sel_currencyCode); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setCurrencyCode: + set currencyCode(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setCurrencyCode_, value.pointer); + } + + /// currencySymbol + objc.NSString get currencySymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_currencySymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setCurrencySymbol: + set currencySymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setCurrencySymbol_, value.pointer); + } + + /// internationalCurrencySymbol + objc.NSString get internationalCurrencySymbol { + final _ret = + _objc_msgSend_11(this.pointer, _sel_internationalCurrencySymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setInternationalCurrencySymbol: + set internationalCurrencySymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setInternationalCurrencySymbol_, value.pointer); + } + + /// percentSymbol + objc.NSString get percentSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_percentSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPercentSymbol: + set percentSymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setPercentSymbol_, value.pointer); + } + + /// perMillSymbol + objc.NSString get perMillSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_perMillSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPerMillSymbol: + set perMillSymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setPerMillSymbol_, value.pointer); + } + + /// minusSign + objc.NSString get minusSign { + final _ret = _objc_msgSend_11(this.pointer, _sel_minusSign); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setMinusSign: + set minusSign(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setMinusSign_, value.pointer); + } + + /// plusSign + objc.NSString get plusSign { + final _ret = _objc_msgSend_11(this.pointer, _sel_plusSign); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPlusSign: + set plusSign(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setPlusSign_, value.pointer); + } + + /// exponentSymbol + objc.NSString get exponentSymbol { + final _ret = _objc_msgSend_11(this.pointer, _sel_exponentSymbol); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setExponentSymbol: + set exponentSymbol(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setExponentSymbol_, value.pointer); + } + + /// groupingSize + int get groupingSize { + return _objc_msgSend_57(this.pointer, _sel_groupingSize); + } + + /// setGroupingSize: + set groupingSize(int value) { + return _objc_msgSend_133(this.pointer, _sel_setGroupingSize_, value); + } + + /// secondaryGroupingSize + int get secondaryGroupingSize { + return _objc_msgSend_57(this.pointer, _sel_secondaryGroupingSize); + } + + /// setSecondaryGroupingSize: + set secondaryGroupingSize(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setSecondaryGroupingSize_, value); + } + + /// multiplier + objc.NSNumber? get multiplier { + final _ret = _objc_msgSend_22(this.pointer, _sel_multiplier); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setMultiplier: + set multiplier(objc.NSNumber? value) { + return _objc_msgSend_23( + this.pointer, _sel_setMultiplier_, value?.pointer ?? ffi.nullptr); + } + + /// formatWidth + int get formatWidth { + return _objc_msgSend_57(this.pointer, _sel_formatWidth); + } + + /// setFormatWidth: + set formatWidth(int value) { + return _objc_msgSend_133(this.pointer, _sel_setFormatWidth_, value); + } + + /// paddingCharacter + objc.NSString get paddingCharacter { + final _ret = _objc_msgSend_11(this.pointer, _sel_paddingCharacter); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPaddingCharacter: + set paddingCharacter(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setPaddingCharacter_, value.pointer); + } + + /// paddingPosition + NSNumberFormatterPadPosition get paddingPosition { + final _ret = _objc_msgSend_188(this.pointer, _sel_paddingPosition); + return NSNumberFormatterPadPosition.fromValue(_ret); + } + + /// setPaddingPosition: + set paddingPosition(NSNumberFormatterPadPosition value) { + return _objc_msgSend_189( + this.pointer, _sel_setPaddingPosition_, value.value); + } + + /// roundingMode + NSNumberFormatterRoundingMode get roundingMode { + final _ret = _objc_msgSend_190(this.pointer, _sel_roundingMode); + return NSNumberFormatterRoundingMode.fromValue(_ret); + } + + /// setRoundingMode: + set roundingMode(NSNumberFormatterRoundingMode value) { + return _objc_msgSend_191(this.pointer, _sel_setRoundingMode_, value.value); + } + + /// roundingIncrement + objc.NSNumber get roundingIncrement { + final _ret = _objc_msgSend_192(this.pointer, _sel_roundingIncrement); + return objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setRoundingIncrement: + set roundingIncrement(objc.NSNumber value) { + return _objc_msgSend_193( + this.pointer, _sel_setRoundingIncrement_, value.pointer); + } + + /// minimumIntegerDigits + int get minimumIntegerDigits { + return _objc_msgSend_57(this.pointer, _sel_minimumIntegerDigits); + } + + /// setMinimumIntegerDigits: + set minimumIntegerDigits(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setMinimumIntegerDigits_, value); + } + + /// maximumIntegerDigits + int get maximumIntegerDigits { + return _objc_msgSend_57(this.pointer, _sel_maximumIntegerDigits); + } + + /// setMaximumIntegerDigits: + set maximumIntegerDigits(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setMaximumIntegerDigits_, value); + } + + /// minimumFractionDigits + int get minimumFractionDigits { + return _objc_msgSend_57(this.pointer, _sel_minimumFractionDigits); + } + + /// setMinimumFractionDigits: + set minimumFractionDigits(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setMinimumFractionDigits_, value); + } + + /// maximumFractionDigits + int get maximumFractionDigits { + return _objc_msgSend_57(this.pointer, _sel_maximumFractionDigits); + } + + /// setMaximumFractionDigits: + set maximumFractionDigits(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setMaximumFractionDigits_, value); + } + + /// minimum + objc.NSNumber? get minimum { + final _ret = _objc_msgSend_22(this.pointer, _sel_minimum); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setMinimum: + set minimum(objc.NSNumber? value) { + return _objc_msgSend_23( + this.pointer, _sel_setMinimum_, value?.pointer ?? ffi.nullptr); + } + + /// maximum + objc.NSNumber? get maximum { + final _ret = _objc_msgSend_22(this.pointer, _sel_maximum); + return _ret.address == 0 + ? null + : objc.NSNumber.castFromPointer(_ret, retain: true, release: true); + } + + /// setMaximum: + set maximum(objc.NSNumber? value) { + return _objc_msgSend_23( + this.pointer, _sel_setMaximum_, value?.pointer ?? ffi.nullptr); + } + + /// currencyGroupingSeparator + objc.NSString get currencyGroupingSeparator { + final _ret = _objc_msgSend_11(this.pointer, _sel_currencyGroupingSeparator); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setCurrencyGroupingSeparator: + set currencyGroupingSeparator(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setCurrencyGroupingSeparator_, value.pointer); + } + + /// isLenient + bool get lenient { + return _objc_msgSend_13(this.pointer, _sel_isLenient); + } + + /// setLenient: + set lenient(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setLenient_, value); + } + + /// usesSignificantDigits + bool get usesSignificantDigits { + return _objc_msgSend_13(this.pointer, _sel_usesSignificantDigits); + } + + /// setUsesSignificantDigits: + set usesSignificantDigits(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setUsesSignificantDigits_, value); + } + + /// minimumSignificantDigits + int get minimumSignificantDigits { + return _objc_msgSend_57(this.pointer, _sel_minimumSignificantDigits); + } + + /// setMinimumSignificantDigits: + set minimumSignificantDigits(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setMinimumSignificantDigits_, value); + } + + /// maximumSignificantDigits + int get maximumSignificantDigits { + return _objc_msgSend_57(this.pointer, _sel_maximumSignificantDigits); + } + + /// setMaximumSignificantDigits: + set maximumSignificantDigits(int value) { + return _objc_msgSend_133( + this.pointer, _sel_setMaximumSignificantDigits_, value); + } + + /// isPartialStringValidationEnabled + bool get partialStringValidationEnabled { + return _objc_msgSend_13( + this.pointer, _sel_isPartialStringValidationEnabled); + } + + /// setPartialStringValidationEnabled: + set partialStringValidationEnabled(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setPartialStringValidationEnabled_, value); + } + + /// hasThousandSeparators + bool get hasThousandSeparators { + return _objc_msgSend_13(this.pointer, _sel_hasThousandSeparators); + } + + /// setHasThousandSeparators: + set hasThousandSeparators(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setHasThousandSeparators_, value); + } + + /// thousandSeparator + objc.NSString get thousandSeparator { + final _ret = _objc_msgSend_11(this.pointer, _sel_thousandSeparator); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setThousandSeparator: + set thousandSeparator(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setThousandSeparator_, value.pointer); + } + + /// localizesFormat + bool get localizesFormat { + return _objc_msgSend_13(this.pointer, _sel_localizesFormat); + } + + /// setLocalizesFormat: + set localizesFormat(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setLocalizesFormat_, value); + } + + /// format + objc.NSString get format { + final _ret = _objc_msgSend_11(this.pointer, _sel_format); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setFormat: + set format(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setFormat_, value.pointer); + } + + /// attributedStringForZero + NSAttributedString get attributedStringForZero { + final _ret = _objc_msgSend_80(this.pointer, _sel_attributedStringForZero); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// setAttributedStringForZero: + set attributedStringForZero(NSAttributedString value) { + return _objc_msgSend_194( + this.pointer, _sel_setAttributedStringForZero_, value.pointer); + } + + /// attributedStringForNil + NSAttributedString get attributedStringForNil { + final _ret = _objc_msgSend_80(this.pointer, _sel_attributedStringForNil); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// setAttributedStringForNil: + set attributedStringForNil(NSAttributedString value) { + return _objc_msgSend_194( + this.pointer, _sel_setAttributedStringForNil_, value.pointer); + } + + /// attributedStringForNotANumber + NSAttributedString get attributedStringForNotANumber { + final _ret = + _objc_msgSend_80(this.pointer, _sel_attributedStringForNotANumber); + return NSAttributedString.castFromPointer(_ret, + retain: true, release: true); + } + + /// setAttributedStringForNotANumber: + set attributedStringForNotANumber(NSAttributedString value) { + return _objc_msgSend_194( + this.pointer, _sel_setAttributedStringForNotANumber_, value.pointer); + } + + /// roundingBehavior + NSDecimalNumberHandler get roundingBehavior { + final _ret = _objc_msgSend_195(this.pointer, _sel_roundingBehavior); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: true, release: true); + } + + /// setRoundingBehavior: + set roundingBehavior(NSDecimalNumberHandler value) { + return _objc_msgSend_197( + this.pointer, _sel_setRoundingBehavior_, value.pointer); + } + + /// init + NSNumberFormatter init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSNumberFormatter.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSNumberFormatter new1() { + final _ret = _objc_msgSend_19(_class_NSNumberFormatter, _sel_new); + return NSNumberFormatter.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSNumberFormatter allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSNumberFormatter, _sel_allocWithZone_, zone); + return NSNumberFormatter.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSNumberFormatter alloc() { + final _ret = _objc_msgSend_19(_class_NSNumberFormatter, _sel_alloc); + return NSNumberFormatter.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSNumberFormatter, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSNumberFormatter, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSNumberFormatter, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSNumberFormatter, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSNumberFormatter, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSNumberFormatter, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSNumberFormatter, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSNumberFormatter, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSNumberFormatter, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSNumberFormatter = + objc.getClass("classes.NSNumberFormatter"); +late final _sel_stringFromNumber_ = objc.registerName("stringFromNumber:"); +final _objc_msgSend_179 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_numberFromString_ = objc.registerName("numberFromString:"); +final _objc_msgSend_180 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +enum NSNumberFormatterStyle { + NSNumberFormatterNoStyle(0), + NSNumberFormatterDecimalStyle(1), + NSNumberFormatterCurrencyStyle(2), + NSNumberFormatterPercentStyle(3), + NSNumberFormatterScientificStyle(4), + NSNumberFormatterSpellOutStyle(5), + NSNumberFormatterOrdinalStyle(6), + NSNumberFormatterCurrencyISOCodeStyle(8), + NSNumberFormatterCurrencyPluralStyle(9), + NSNumberFormatterCurrencyAccountingStyle(10); + + final int value; + const NSNumberFormatterStyle(this.value); + + static NSNumberFormatterStyle fromValue(int value) => switch (value) { + 0 => NSNumberFormatterNoStyle, + 1 => NSNumberFormatterDecimalStyle, + 2 => NSNumberFormatterCurrencyStyle, + 3 => NSNumberFormatterPercentStyle, + 4 => NSNumberFormatterScientificStyle, + 5 => NSNumberFormatterSpellOutStyle, + 6 => NSNumberFormatterOrdinalStyle, + 8 => NSNumberFormatterCurrencyISOCodeStyle, + 9 => NSNumberFormatterCurrencyPluralStyle, + 10 => NSNumberFormatterCurrencyAccountingStyle, + _ => throw ArgumentError( + "Unknown value for NSNumberFormatterStyle: $value"), + }; +} + +late final _sel_localizedStringFromNumber_numberStyle_ = + objc.registerName("localizedStringFromNumber:numberStyle:"); +final _objc_msgSend_181 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); + +enum NSNumberFormatterBehavior { + NSNumberFormatterBehaviorDefault(0), + NSNumberFormatterBehavior10_0(1000), + NSNumberFormatterBehavior10_4(1040); + + final int value; + const NSNumberFormatterBehavior(this.value); + + static NSNumberFormatterBehavior fromValue(int value) => switch (value) { + 0 => NSNumberFormatterBehaviorDefault, + 1000 => NSNumberFormatterBehavior10_0, + 1040 => NSNumberFormatterBehavior10_4, + _ => throw ArgumentError( + "Unknown value for NSNumberFormatterBehavior: $value"), + }; +} + +final _objc_msgSend_182 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_183 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_numberStyle = objc.registerName("numberStyle"); +final _objc_msgSend_184 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setNumberStyle_ = objc.registerName("setNumberStyle:"); +final _objc_msgSend_185 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_generatesDecimalNumbers = + objc.registerName("generatesDecimalNumbers"); +late final _sel_setGeneratesDecimalNumbers_ = + objc.registerName("setGeneratesDecimalNumbers:"); +final _objc_msgSend_186 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_negativeFormat = objc.registerName("negativeFormat"); +late final _sel_setNegativeFormat_ = objc.registerName("setNegativeFormat:"); +late final _sel_textAttributesForNegativeValues = + objc.registerName("textAttributesForNegativeValues"); +late final _sel_setTextAttributesForNegativeValues_ = + objc.registerName("setTextAttributesForNegativeValues:"); +final _objc_msgSend_187 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_positiveFormat = objc.registerName("positiveFormat"); +late final _sel_setPositiveFormat_ = objc.registerName("setPositiveFormat:"); +late final _sel_textAttributesForPositiveValues = + objc.registerName("textAttributesForPositiveValues"); +late final _sel_setTextAttributesForPositiveValues_ = + objc.registerName("setTextAttributesForPositiveValues:"); +late final _sel_allowsFloats = objc.registerName("allowsFloats"); +late final _sel_setAllowsFloats_ = objc.registerName("setAllowsFloats:"); +late final _sel_decimalSeparator = objc.registerName("decimalSeparator"); +late final _sel_setDecimalSeparator_ = + objc.registerName("setDecimalSeparator:"); +late final _sel_alwaysShowsDecimalSeparator = + objc.registerName("alwaysShowsDecimalSeparator"); +late final _sel_setAlwaysShowsDecimalSeparator_ = + objc.registerName("setAlwaysShowsDecimalSeparator:"); +late final _sel_currencyDecimalSeparator = + objc.registerName("currencyDecimalSeparator"); +late final _sel_setCurrencyDecimalSeparator_ = + objc.registerName("setCurrencyDecimalSeparator:"); +late final _sel_usesGroupingSeparator = + objc.registerName("usesGroupingSeparator"); +late final _sel_setUsesGroupingSeparator_ = + objc.registerName("setUsesGroupingSeparator:"); +late final _sel_groupingSeparator = objc.registerName("groupingSeparator"); +late final _sel_setGroupingSeparator_ = + objc.registerName("setGroupingSeparator:"); +late final _sel_zeroSymbol = objc.registerName("zeroSymbol"); +late final _sel_setZeroSymbol_ = objc.registerName("setZeroSymbol:"); +late final _sel_textAttributesForZero = + objc.registerName("textAttributesForZero"); +late final _sel_setTextAttributesForZero_ = + objc.registerName("setTextAttributesForZero:"); +late final _sel_nilSymbol = objc.registerName("nilSymbol"); +late final _sel_setNilSymbol_ = objc.registerName("setNilSymbol:"); +late final _sel_textAttributesForNil = + objc.registerName("textAttributesForNil"); +late final _sel_setTextAttributesForNil_ = + objc.registerName("setTextAttributesForNil:"); +late final _sel_notANumberSymbol = objc.registerName("notANumberSymbol"); +late final _sel_setNotANumberSymbol_ = + objc.registerName("setNotANumberSymbol:"); +late final _sel_textAttributesForNotANumber = + objc.registerName("textAttributesForNotANumber"); +late final _sel_setTextAttributesForNotANumber_ = + objc.registerName("setTextAttributesForNotANumber:"); +late final _sel_positiveInfinitySymbol = + objc.registerName("positiveInfinitySymbol"); +late final _sel_setPositiveInfinitySymbol_ = + objc.registerName("setPositiveInfinitySymbol:"); +late final _sel_textAttributesForPositiveInfinity = + objc.registerName("textAttributesForPositiveInfinity"); +late final _sel_setTextAttributesForPositiveInfinity_ = + objc.registerName("setTextAttributesForPositiveInfinity:"); +late final _sel_negativeInfinitySymbol = + objc.registerName("negativeInfinitySymbol"); +late final _sel_setNegativeInfinitySymbol_ = + objc.registerName("setNegativeInfinitySymbol:"); +late final _sel_textAttributesForNegativeInfinity = + objc.registerName("textAttributesForNegativeInfinity"); +late final _sel_setTextAttributesForNegativeInfinity_ = + objc.registerName("setTextAttributesForNegativeInfinity:"); +late final _sel_positivePrefix = objc.registerName("positivePrefix"); +late final _sel_setPositivePrefix_ = objc.registerName("setPositivePrefix:"); +late final _sel_positiveSuffix = objc.registerName("positiveSuffix"); +late final _sel_setPositiveSuffix_ = objc.registerName("setPositiveSuffix:"); +late final _sel_negativePrefix = objc.registerName("negativePrefix"); +late final _sel_setNegativePrefix_ = objc.registerName("setNegativePrefix:"); +late final _sel_negativeSuffix = objc.registerName("negativeSuffix"); +late final _sel_setNegativeSuffix_ = objc.registerName("setNegativeSuffix:"); +late final _sel_currencyCode = objc.registerName("currencyCode"); +late final _sel_setCurrencyCode_ = objc.registerName("setCurrencyCode:"); +late final _sel_currencySymbol = objc.registerName("currencySymbol"); +late final _sel_setCurrencySymbol_ = objc.registerName("setCurrencySymbol:"); +late final _sel_internationalCurrencySymbol = + objc.registerName("internationalCurrencySymbol"); +late final _sel_setInternationalCurrencySymbol_ = + objc.registerName("setInternationalCurrencySymbol:"); +late final _sel_percentSymbol = objc.registerName("percentSymbol"); +late final _sel_setPercentSymbol_ = objc.registerName("setPercentSymbol:"); +late final _sel_perMillSymbol = objc.registerName("perMillSymbol"); +late final _sel_setPerMillSymbol_ = objc.registerName("setPerMillSymbol:"); +late final _sel_minusSign = objc.registerName("minusSign"); +late final _sel_setMinusSign_ = objc.registerName("setMinusSign:"); +late final _sel_plusSign = objc.registerName("plusSign"); +late final _sel_setPlusSign_ = objc.registerName("setPlusSign:"); +late final _sel_exponentSymbol = objc.registerName("exponentSymbol"); +late final _sel_setExponentSymbol_ = objc.registerName("setExponentSymbol:"); +late final _sel_groupingSize = objc.registerName("groupingSize"); +late final _sel_setGroupingSize_ = objc.registerName("setGroupingSize:"); +late final _sel_secondaryGroupingSize = + objc.registerName("secondaryGroupingSize"); +late final _sel_setSecondaryGroupingSize_ = + objc.registerName("setSecondaryGroupingSize:"); +late final _sel_multiplier = objc.registerName("multiplier"); +late final _sel_setMultiplier_ = objc.registerName("setMultiplier:"); +late final _sel_formatWidth = objc.registerName("formatWidth"); +late final _sel_setFormatWidth_ = objc.registerName("setFormatWidth:"); +late final _sel_paddingCharacter = objc.registerName("paddingCharacter"); +late final _sel_setPaddingCharacter_ = + objc.registerName("setPaddingCharacter:"); + +enum NSNumberFormatterPadPosition { + NSNumberFormatterPadBeforePrefix(0), + NSNumberFormatterPadAfterPrefix(1), + NSNumberFormatterPadBeforeSuffix(2), + NSNumberFormatterPadAfterSuffix(3); + + final int value; + const NSNumberFormatterPadPosition(this.value); + + static NSNumberFormatterPadPosition fromValue(int value) => switch (value) { + 0 => NSNumberFormatterPadBeforePrefix, + 1 => NSNumberFormatterPadAfterPrefix, + 2 => NSNumberFormatterPadBeforeSuffix, + 3 => NSNumberFormatterPadAfterSuffix, + _ => throw ArgumentError( + "Unknown value for NSNumberFormatterPadPosition: $value"), + }; +} + +late final _sel_paddingPosition = objc.registerName("paddingPosition"); +final _objc_msgSend_188 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setPaddingPosition_ = objc.registerName("setPaddingPosition:"); +final _objc_msgSend_189 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSNumberFormatterRoundingMode { + NSNumberFormatterRoundCeiling(0), + NSNumberFormatterRoundFloor(1), + NSNumberFormatterRoundDown(2), + NSNumberFormatterRoundUp(3), + NSNumberFormatterRoundHalfEven(4), + NSNumberFormatterRoundHalfDown(5), + NSNumberFormatterRoundHalfUp(6); + + final int value; + const NSNumberFormatterRoundingMode(this.value); + + static NSNumberFormatterRoundingMode fromValue(int value) => switch (value) { + 0 => NSNumberFormatterRoundCeiling, + 1 => NSNumberFormatterRoundFloor, + 2 => NSNumberFormatterRoundDown, + 3 => NSNumberFormatterRoundUp, + 4 => NSNumberFormatterRoundHalfEven, + 5 => NSNumberFormatterRoundHalfDown, + 6 => NSNumberFormatterRoundHalfUp, + _ => throw ArgumentError( + "Unknown value for NSNumberFormatterRoundingMode: $value"), + }; +} + +late final _sel_roundingMode = objc.registerName("roundingMode"); +final _objc_msgSend_190 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setRoundingMode_ = objc.registerName("setRoundingMode:"); +final _objc_msgSend_191 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_roundingIncrement = objc.registerName("roundingIncrement"); +final _objc_msgSend_192 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setRoundingIncrement_ = + objc.registerName("setRoundingIncrement:"); +final _objc_msgSend_193 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_minimumIntegerDigits = + objc.registerName("minimumIntegerDigits"); +late final _sel_setMinimumIntegerDigits_ = + objc.registerName("setMinimumIntegerDigits:"); +late final _sel_maximumIntegerDigits = + objc.registerName("maximumIntegerDigits"); +late final _sel_setMaximumIntegerDigits_ = + objc.registerName("setMaximumIntegerDigits:"); +late final _sel_minimumFractionDigits = + objc.registerName("minimumFractionDigits"); +late final _sel_setMinimumFractionDigits_ = + objc.registerName("setMinimumFractionDigits:"); +late final _sel_maximumFractionDigits = + objc.registerName("maximumFractionDigits"); +late final _sel_setMaximumFractionDigits_ = + objc.registerName("setMaximumFractionDigits:"); +late final _sel_minimum = objc.registerName("minimum"); +late final _sel_setMinimum_ = objc.registerName("setMinimum:"); +late final _sel_maximum = objc.registerName("maximum"); +late final _sel_setMaximum_ = objc.registerName("setMaximum:"); +late final _sel_currencyGroupingSeparator = + objc.registerName("currencyGroupingSeparator"); +late final _sel_setCurrencyGroupingSeparator_ = + objc.registerName("setCurrencyGroupingSeparator:"); +late final _sel_usesSignificantDigits = + objc.registerName("usesSignificantDigits"); +late final _sel_setUsesSignificantDigits_ = + objc.registerName("setUsesSignificantDigits:"); +late final _sel_minimumSignificantDigits = + objc.registerName("minimumSignificantDigits"); +late final _sel_setMinimumSignificantDigits_ = + objc.registerName("setMinimumSignificantDigits:"); +late final _sel_maximumSignificantDigits = + objc.registerName("maximumSignificantDigits"); +late final _sel_setMaximumSignificantDigits_ = + objc.registerName("setMaximumSignificantDigits:"); +late final _sel_isPartialStringValidationEnabled = + objc.registerName("isPartialStringValidationEnabled"); +late final _sel_setPartialStringValidationEnabled_ = + objc.registerName("setPartialStringValidationEnabled:"); +late final _sel_hasThousandSeparators = + objc.registerName("hasThousandSeparators"); +late final _sel_setHasThousandSeparators_ = + objc.registerName("setHasThousandSeparators:"); +late final _sel_thousandSeparator = objc.registerName("thousandSeparator"); +late final _sel_setThousandSeparator_ = + objc.registerName("setThousandSeparator:"); +late final _sel_localizesFormat = objc.registerName("localizesFormat"); +late final _sel_setLocalizesFormat_ = objc.registerName("setLocalizesFormat:"); +late final _sel_format = objc.registerName("format"); +late final _sel_setFormat_ = objc.registerName("setFormat:"); +late final _sel_attributedStringForZero = + objc.registerName("attributedStringForZero"); +late final _sel_setAttributedStringForZero_ = + objc.registerName("setAttributedStringForZero:"); +final _objc_msgSend_194 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_attributedStringForNil = + objc.registerName("attributedStringForNil"); +late final _sel_setAttributedStringForNil_ = + objc.registerName("setAttributedStringForNil:"); +late final _sel_attributedStringForNotANumber = + objc.registerName("attributedStringForNotANumber"); +late final _sel_setAttributedStringForNotANumber_ = + objc.registerName("setAttributedStringForNotANumber:"); + +/// NSDecimalNumberHandler +class NSDecimalNumberHandler extends objc.NSObject { + NSDecimalNumberHandler._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSDecimalNumberHandler] that points to the same underlying object as [other]. + NSDecimalNumberHandler.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSDecimalNumberHandler] that wraps the given raw object pointer. + NSDecimalNumberHandler.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSDecimalNumberHandler]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSDecimalNumberHandler); + } + + /// defaultDecimalNumberHandler + static NSDecimalNumberHandler getDefaultDecimalNumberHandler() { + final _ret = _objc_msgSend_195( + _class_NSDecimalNumberHandler, _sel_defaultDecimalNumberHandler); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero: + NSDecimalNumberHandler + initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_( + NSRoundingMode roundingMode, + int scale, + bool exact, + bool overflow, + bool underflow, + bool divideByZero) { + final _ret = _objc_msgSend_196( + this.pointer, + _sel_initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_, + roundingMode.value, + scale, + exact, + overflow, + underflow, + divideByZero); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: true, release: true); + } + + /// decimalNumberHandlerWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero: + static NSDecimalNumberHandler + decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_( + NSRoundingMode roundingMode, + int scale, + bool exact, + bool overflow, + bool underflow, + bool divideByZero) { + final _ret = _objc_msgSend_196( + _class_NSDecimalNumberHandler, + _sel_decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_, + roundingMode.value, + scale, + exact, + overflow, + underflow, + divideByZero); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSDecimalNumberHandler init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSDecimalNumberHandler new1() { + final _ret = _objc_msgSend_19(_class_NSDecimalNumberHandler, _sel_new); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSDecimalNumberHandler allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSDecimalNumberHandler, _sel_allocWithZone_, zone); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSDecimalNumberHandler alloc() { + final _ret = _objc_msgSend_19(_class_NSDecimalNumberHandler, _sel_alloc); + return NSDecimalNumberHandler.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSDecimalNumberHandler, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSDecimalNumberHandler, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSDecimalNumberHandler, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSDecimalNumberHandler, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSDecimalNumberHandler, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSDecimalNumberHandler, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSDecimalNumberHandler, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSDecimalNumberHandler, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSDecimalNumberHandler, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSDecimalNumberHandler = + objc.getClass("classes.NSDecimalNumberHandler"); +late final _sel_defaultDecimalNumberHandler = + objc.registerName("defaultDecimalNumberHandler"); +final _objc_msgSend_195 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); + +enum NSRoundingMode { + NSRoundPlain(0), + NSRoundDown(1), + NSRoundUp(2), + NSRoundBankers(3); + + final int value; + const NSRoundingMode(this.value); + + static NSRoundingMode fromValue(int value) => switch (value) { + 0 => NSRoundPlain, + 1 => NSRoundDown, + 2 => NSRoundUp, + 3 => NSRoundBankers, + _ => throw ArgumentError("Unknown value for NSRoundingMode: $value"), + }; +} + +late final _sel_initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_ = + objc.registerName( + "initWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:"); +final _objc_msgSend_196 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Short, + ffi.Bool, + ffi.Bool, + ffi.Bool, + ffi.Bool)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + bool, + bool, + bool, + bool)>(); +late final _sel_decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero_ = + objc.registerName( + "decimalNumberHandlerWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:"); +late final _sel_roundingBehavior = objc.registerName("roundingBehavior"); +late final _sel_setRoundingBehavior_ = + objc.registerName("setRoundingBehavior:"); +final _objc_msgSend_197 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +enum NSLocaleLanguageDirection { + NSLocaleLanguageDirectionUnknown(0), + NSLocaleLanguageDirectionLeftToRight(1), + NSLocaleLanguageDirectionRightToLeft(2), + NSLocaleLanguageDirectionTopToBottom(3), + NSLocaleLanguageDirectionBottomToTop(4); + + final int value; + const NSLocaleLanguageDirection(this.value); + + static NSLocaleLanguageDirection fromValue(int value) => switch (value) { + 0 => NSLocaleLanguageDirectionUnknown, + 1 => NSLocaleLanguageDirectionLeftToRight, + 2 => NSLocaleLanguageDirectionRightToLeft, + 3 => NSLocaleLanguageDirectionTopToBottom, + 4 => NSLocaleLanguageDirectionBottomToTop, + _ => throw ArgumentError( + "Unknown value for NSLocaleLanguageDirection: $value"), + }; +} + +/// NSScanner +class NSScanner extends objc.NSObject { + NSScanner._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSScanner] that points to the same underlying object as [other]. + NSScanner.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSScanner] that wraps the given raw object pointer. + NSScanner.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSScanner]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSScanner); + } + + /// string + objc.NSString get string { + final _ret = _objc_msgSend_11(this.pointer, _sel_string); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// scanLocation + int get scanLocation { + return _objc_msgSend_57(this.pointer, _sel_scanLocation); + } + + /// setScanLocation: + set scanLocation(int value) { + return _objc_msgSend_133(this.pointer, _sel_setScanLocation_, value); + } + + /// charactersToBeSkipped + objc.NSCharacterSet? get charactersToBeSkipped { + final _ret = _objc_msgSend_198(this.pointer, _sel_charactersToBeSkipped); + return _ret.address == 0 + ? null + : objc.NSCharacterSet.castFromPointer(_ret, + retain: true, release: true); + } + + /// setCharactersToBeSkipped: + set charactersToBeSkipped(objc.NSCharacterSet? value) { + return _objc_msgSend_199(this.pointer, _sel_setCharactersToBeSkipped_, + value?.pointer ?? ffi.nullptr); + } + + /// caseSensitive + bool get caseSensitive { + return _objc_msgSend_13(this.pointer, _sel_caseSensitive); + } + + /// setCaseSensitive: + set caseSensitive(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setCaseSensitive_, value); + } + + /// locale + objc.ObjCObjectBase? get locale { + final _ret = _objc_msgSend_83(this.pointer, _sel_locale); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setLocale: + set locale(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setLocale_, value?.pointer ?? ffi.nullptr); + } + + /// initWithString: + NSScanner initWithString_(objc.NSString string) { + final _ret = + _objc_msgSend_63(this.pointer, _sel_initWithString_, string.pointer); + return NSScanner.castFromPointer(_ret, retain: true, release: true); + } + + /// scanInt: + bool scanInt_(ffi.Pointer result) { + return _objc_msgSend_201(this.pointer, _sel_scanInt_, result); + } + + /// scanInteger: + bool scanInteger_(ffi.Pointer result) { + return _objc_msgSend_202(this.pointer, _sel_scanInteger_, result); + } + + /// scanLongLong: + bool scanLongLong_(ffi.Pointer result) { + return _objc_msgSend_203(this.pointer, _sel_scanLongLong_, result); + } + + /// scanUnsignedLongLong: + bool scanUnsignedLongLong_(ffi.Pointer result) { + return _objc_msgSend_204(this.pointer, _sel_scanUnsignedLongLong_, result); + } + + /// scanFloat: + bool scanFloat_(ffi.Pointer result) { + return _objc_msgSend_205(this.pointer, _sel_scanFloat_, result); + } + + /// scanDouble: + bool scanDouble_(ffi.Pointer result) { + return _objc_msgSend_206(this.pointer, _sel_scanDouble_, result); + } + + /// scanHexInt: + bool scanHexInt_(ffi.Pointer result) { + return _objc_msgSend_207(this.pointer, _sel_scanHexInt_, result); + } + + /// scanHexLongLong: + bool scanHexLongLong_(ffi.Pointer result) { + return _objc_msgSend_204(this.pointer, _sel_scanHexLongLong_, result); + } + + /// scanHexFloat: + bool scanHexFloat_(ffi.Pointer result) { + return _objc_msgSend_205(this.pointer, _sel_scanHexFloat_, result); + } + + /// scanHexDouble: + bool scanHexDouble_(ffi.Pointer result) { + return _objc_msgSend_206(this.pointer, _sel_scanHexDouble_, result); + } + + /// scanString:intoString: + bool scanString_intoString_( + objc.NSString string, ffi.Pointer> result) { + return _objc_msgSend_208( + this.pointer, _sel_scanString_intoString_, string.pointer, result); + } + + /// scanCharactersFromSet:intoString: + bool scanCharactersFromSet_intoString_(objc.NSCharacterSet set, + ffi.Pointer> result) { + return _objc_msgSend_209(this.pointer, + _sel_scanCharactersFromSet_intoString_, set.pointer, result); + } + + /// scanUpToString:intoString: + bool scanUpToString_intoString_( + objc.NSString string, ffi.Pointer> result) { + return _objc_msgSend_208( + this.pointer, _sel_scanUpToString_intoString_, string.pointer, result); + } + + /// scanUpToCharactersFromSet:intoString: + bool scanUpToCharactersFromSet_intoString_(objc.NSCharacterSet set, + ffi.Pointer> result) { + return _objc_msgSend_209(this.pointer, + _sel_scanUpToCharactersFromSet_intoString_, set.pointer, result); + } + + /// isAtEnd + bool get atEnd { + return _objc_msgSend_13(this.pointer, _sel_isAtEnd); + } + + /// scannerWithString: + static NSScanner scannerWithString_(objc.NSString string) { + final _ret = _objc_msgSend_63( + _class_NSScanner, _sel_scannerWithString_, string.pointer); + return NSScanner.castFromPointer(_ret, retain: true, release: true); + } + + /// localizedScannerWithString: + static objc.ObjCObjectBase localizedScannerWithString_(objc.NSString string) { + final _ret = _objc_msgSend_63( + _class_NSScanner, _sel_localizedScannerWithString_, string.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// scanDecimal: + bool scanDecimal_(ffi.Pointer dcm) { + return _objc_msgSend_210(this.pointer, _sel_scanDecimal_, dcm); + } + + /// init + NSScanner init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSScanner.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSScanner new1() { + final _ret = _objc_msgSend_19(_class_NSScanner, _sel_new); + return NSScanner.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSScanner allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSScanner, _sel_allocWithZone_, zone); + return NSScanner.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSScanner alloc() { + final _ret = _objc_msgSend_19(_class_NSScanner, _sel_alloc); + return NSScanner.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSScanner, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSScanner, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSScanner, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSScanner, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSScanner, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSScanner, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSScanner, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSScanner, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSScanner, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSScanner = objc.getClass("classes.NSScanner"); +late final _sel_scanLocation = objc.registerName("scanLocation"); +late final _sel_setScanLocation_ = objc.registerName("setScanLocation:"); +late final _sel_charactersToBeSkipped = + objc.registerName("charactersToBeSkipped"); +final _objc_msgSend_198 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCharactersToBeSkipped_ = + objc.registerName("setCharactersToBeSkipped:"); +final _objc_msgSend_199 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_caseSensitive = objc.registerName("caseSensitive"); +late final _sel_setCaseSensitive_ = objc.registerName("setCaseSensitive:"); +final _objc_msgSend_200 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scanInt_ = objc.registerName("scanInt:"); +final _objc_msgSend_201 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scanInteger_ = objc.registerName("scanInteger:"); +final _objc_msgSend_202 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scanLongLong_ = objc.registerName("scanLongLong:"); +final _objc_msgSend_203 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scanUnsignedLongLong_ = + objc.registerName("scanUnsignedLongLong:"); +final _objc_msgSend_204 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_scanFloat_ = objc.registerName("scanFloat:"); +final _objc_msgSend_205 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scanDouble_ = objc.registerName("scanDouble:"); +final _objc_msgSend_206 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scanHexInt_ = objc.registerName("scanHexInt:"); +final _objc_msgSend_207 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scanHexLongLong_ = objc.registerName("scanHexLongLong:"); +late final _sel_scanHexFloat_ = objc.registerName("scanHexFloat:"); +late final _sel_scanHexDouble_ = objc.registerName("scanHexDouble:"); +late final _sel_scanString_intoString_ = + objc.registerName("scanString:intoString:"); +final _objc_msgSend_208 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_scanCharactersFromSet_intoString_ = + objc.registerName("scanCharactersFromSet:intoString:"); +final _objc_msgSend_209 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_scanUpToString_intoString_ = + objc.registerName("scanUpToString:intoString:"); +late final _sel_scanUpToCharactersFromSet_intoString_ = + objc.registerName("scanUpToCharactersFromSet:intoString:"); +late final _sel_isAtEnd = objc.registerName("isAtEnd"); +late final _sel_scannerWithString_ = objc.registerName("scannerWithString:"); +late final _sel_localizedScannerWithString_ = + objc.registerName("localizedScannerWithString:"); + +final class NSDecimal extends ffi.Opaque {} + +late final _sel_scanDecimal_ = objc.registerName("scanDecimal:"); +final _objc_msgSend_210 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSException +class NSException extends objc.NSObject { + NSException._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSException] that points to the same underlying object as [other]. + NSException.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSException] that wraps the given raw object pointer. + NSException.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSException]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSException); + } + + /// exceptionWithName:reason:userInfo: + static NSException exceptionWithName_reason_userInfo_( + objc.NSString name, objc.NSString? reason, objc.NSDictionary? userInfo) { + final _ret = _objc_msgSend_211( + _class_NSException, + _sel_exceptionWithName_reason_userInfo_, + name.pointer, + reason?.pointer ?? ffi.nullptr, + userInfo?.pointer ?? ffi.nullptr); + return NSException.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithName:reason:userInfo: + NSException initWithName_reason_userInfo_(objc.NSString aName, + objc.NSString? aReason, objc.NSDictionary? aUserInfo) { + final _ret = _objc_msgSend_212( + this.pointer, + _sel_initWithName_reason_userInfo_, + aName.pointer, + aReason?.pointer ?? ffi.nullptr, + aUserInfo?.pointer ?? ffi.nullptr); + return NSException.castFromPointer(_ret, retain: true, release: true); + } + + /// name + objc.NSString get name { + final _ret = _objc_msgSend_11(this.pointer, _sel_name); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// reason + objc.NSString? get reason { + final _ret = _objc_msgSend_20(this.pointer, _sel_reason); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// userInfo + objc.NSDictionary? get userInfo { + final _ret = _objc_msgSend_82(this.pointer, _sel_userInfo); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// callStackReturnAddresses + objc.NSArray get callStackReturnAddresses { + final _ret = _objc_msgSend_33(this.pointer, _sel_callStackReturnAddresses); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// callStackSymbols + objc.NSArray get callStackSymbols { + final _ret = _objc_msgSend_33(this.pointer, _sel_callStackSymbols); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// raise + void raise() { + _objc_msgSend_7(this.pointer, _sel_raise); + } + + /// raise:format: + static void raise_format_(objc.NSString name, objc.NSString format) { + _objc_msgSend_213( + _class_NSException, _sel_raise_format_, name.pointer, format.pointer); + } + + /// init + NSException init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSException.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSException new1() { + final _ret = _objc_msgSend_19(_class_NSException, _sel_new); + return NSException.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSException allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSException, _sel_allocWithZone_, zone); + return NSException.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSException alloc() { + final _ret = _objc_msgSend_19(_class_NSException, _sel_alloc); + return NSException.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSException, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSException, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSException, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSException, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSException, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSException, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSException, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSException, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSException, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSException = objc.getClass("classes.NSException"); +late final _sel_exceptionWithName_reason_userInfo_ = + objc.registerName("exceptionWithName:reason:userInfo:"); +final _objc_msgSend_211 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithName_reason_userInfo_ = + objc.registerName("initWithName:reason:userInfo:"); +final _objc_msgSend_212 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_reason = objc.registerName("reason"); +late final _sel_callStackReturnAddresses = + objc.registerName("callStackReturnAddresses"); +late final _sel_callStackSymbols = objc.registerName("callStackSymbols"); +late final _sel_raise = objc.registerName("raise"); +late final _sel_raise_format_ = objc.registerName("raise:format:"); +final _objc_msgSend_213 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSRunLoop +class NSRunLoop extends objc.NSObject { + NSRunLoop._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSRunLoop] that points to the same underlying object as [other]. + NSRunLoop.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSRunLoop] that wraps the given raw object pointer. + NSRunLoop.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSRunLoop]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSRunLoop); + } + + /// currentRunLoop + static NSRunLoop getCurrentRunLoop() { + final _ret = _objc_msgSend_214(_class_NSRunLoop, _sel_currentRunLoop); + return NSRunLoop.castFromPointer(_ret, retain: true, release: true); + } + + /// mainRunLoop + static NSRunLoop getMainRunLoop() { + final _ret = _objc_msgSend_214(_class_NSRunLoop, _sel_mainRunLoop); + return NSRunLoop.castFromPointer(_ret, retain: true, release: true); + } + + /// currentMode + objc.NSString? get currentMode { + final _ret = _objc_msgSend_20(this.pointer, _sel_currentMode); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// getCFRunLoop + ffi.Pointer<__CFRunLoop> getCFRunLoop() { + return _objc_msgSend_215(this.pointer, _sel_getCFRunLoop); + } + + /// addTimer:forMode: + void addTimer_forMode_(NSTimer timer, objc.NSString mode) { + _objc_msgSend_224( + this.pointer, _sel_addTimer_forMode_, timer.pointer, mode.pointer); + } + + /// addPort:forMode: + void addPort_forMode_(NSPort aPort, objc.NSString mode) { + _objc_msgSend_253( + this.pointer, _sel_addPort_forMode_, aPort.pointer, mode.pointer); + } + + /// removePort:forMode: + void removePort_forMode_(NSPort aPort, objc.NSString mode) { + _objc_msgSend_253( + this.pointer, _sel_removePort_forMode_, aPort.pointer, mode.pointer); + } + + /// limitDateForMode: + objc.NSDate? limitDateForMode_(objc.NSString mode) { + final _ret = + _objc_msgSend_103(this.pointer, _sel_limitDateForMode_, mode.pointer); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// acceptInputForMode:beforeDate: + void acceptInputForMode_beforeDate_( + objc.NSString mode, objc.NSDate limitDate) { + _objc_msgSend_254(this.pointer, _sel_acceptInputForMode_beforeDate_, + mode.pointer, limitDate.pointer); + } + + /// run + void run() { + _objc_msgSend_7(this.pointer, _sel_run); + } + + /// runUntilDate: + void runUntilDate_(objc.NSDate limitDate) { + _objc_msgSend_255(this.pointer, _sel_runUntilDate_, limitDate.pointer); + } + + /// runMode:beforeDate: + bool runMode_beforeDate_(objc.NSString mode, objc.NSDate limitDate) { + return _objc_msgSend_256(this.pointer, _sel_runMode_beforeDate_, + mode.pointer, limitDate.pointer); + } + + /// configureAsServer + void configureAsServer() { + _objc_msgSend_7(this.pointer, _sel_configureAsServer); + } + + /// performInModes:block: + void performInModes_block_(objc.NSArray modes, ObjCBlock_ffiVoid block) { + _objc_msgSend_257( + this.pointer, _sel_performInModes_block_, modes.pointer, block.pointer); + } + + /// performBlock: + void performBlock_(ObjCBlock_ffiVoid block) { + _objc_msgSend_258(this.pointer, _sel_performBlock_, block.pointer); + } + + /// performSelector:target:argument:order:modes: + void performSelector_target_argument_order_modes_( + ffi.Pointer aSelector, + objc.ObjCObjectBase target, + objc.ObjCObjectBase? arg, + int order, + objc.NSArray modes) { + _objc_msgSend_259( + this.pointer, + _sel_performSelector_target_argument_order_modes_, + aSelector, + target.pointer, + arg?.pointer ?? ffi.nullptr, + order, + modes.pointer); + } + + /// cancelPerformSelector:target:argument: + void cancelPerformSelector_target_argument_( + ffi.Pointer aSelector, + objc.ObjCObjectBase target, + objc.ObjCObjectBase? arg) { + _objc_msgSend_260(this.pointer, _sel_cancelPerformSelector_target_argument_, + aSelector, target.pointer, arg?.pointer ?? ffi.nullptr); + } + + /// cancelPerformSelectorsWithTarget: + void cancelPerformSelectorsWithTarget_(objc.ObjCObjectBase target) { + _objc_msgSend_27( + this.pointer, _sel_cancelPerformSelectorsWithTarget_, target.pointer); + } + + /// init + NSRunLoop init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSRunLoop.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSRunLoop new1() { + final _ret = _objc_msgSend_19(_class_NSRunLoop, _sel_new); + return NSRunLoop.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSRunLoop allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSRunLoop, _sel_allocWithZone_, zone); + return NSRunLoop.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSRunLoop alloc() { + final _ret = _objc_msgSend_19(_class_NSRunLoop, _sel_alloc); + return NSRunLoop.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSRunLoop, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSRunLoop, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSRunLoop, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSRunLoop, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSRunLoop, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSRunLoop, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSRunLoop, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSRunLoop, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSRunLoop, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSRunLoop = objc.getClass("classes.NSRunLoop"); +late final _sel_currentRunLoop = objc.registerName("currentRunLoop"); +final _objc_msgSend_214 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_mainRunLoop = objc.registerName("mainRunLoop"); +late final _sel_currentMode = objc.registerName("currentMode"); + +final class __CFRunLoop extends ffi.Opaque {} + +late final _sel_getCFRunLoop = objc.registerName("getCFRunLoop"); +final _objc_msgSend_215 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer<__CFRunLoop> Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer<__CFRunLoop> Function( + ffi.Pointer, ffi.Pointer)>(); + +/// NSTimer +class NSTimer extends objc.NSObject { + NSTimer._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSTimer] that points to the same underlying object as [other]. + NSTimer.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSTimer] that wraps the given raw object pointer. + NSTimer.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSTimer]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSTimer); + } + + /// timerWithTimeInterval:invocation:repeats: + static NSTimer timerWithTimeInterval_invocation_repeats_( + double ti, objc.NSInvocation invocation, bool yesOrNo) { + final _ret = _objc_msgSend_216( + _class_NSTimer, + _sel_timerWithTimeInterval_invocation_repeats_, + ti, + invocation.pointer, + yesOrNo); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// scheduledTimerWithTimeInterval:invocation:repeats: + static NSTimer scheduledTimerWithTimeInterval_invocation_repeats_( + double ti, objc.NSInvocation invocation, bool yesOrNo) { + final _ret = _objc_msgSend_216( + _class_NSTimer, + _sel_scheduledTimerWithTimeInterval_invocation_repeats_, + ti, + invocation.pointer, + yesOrNo); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// timerWithTimeInterval:target:selector:userInfo:repeats: + static NSTimer timerWithTimeInterval_target_selector_userInfo_repeats_( + double ti, + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? userInfo, + bool yesOrNo) { + final _ret = _objc_msgSend_217( + _class_NSTimer, + _sel_timerWithTimeInterval_target_selector_userInfo_repeats_, + ti, + aTarget.pointer, + aSelector, + userInfo?.pointer ?? ffi.nullptr, + yesOrNo); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// scheduledTimerWithTimeInterval:target:selector:userInfo:repeats: + static NSTimer + scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_( + double ti, + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? userInfo, + bool yesOrNo) { + final _ret = _objc_msgSend_217( + _class_NSTimer, + _sel_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_, + ti, + aTarget.pointer, + aSelector, + userInfo?.pointer ?? ffi.nullptr, + yesOrNo); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// timerWithTimeInterval:repeats:block: + static NSTimer timerWithTimeInterval_repeats_block_( + double interval, bool repeats, ObjCBlock_ffiVoid_NSTimer block) { + final _ret = _objc_msgSend_218( + _class_NSTimer, + _sel_timerWithTimeInterval_repeats_block_, + interval, + repeats, + block.pointer); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// scheduledTimerWithTimeInterval:repeats:block: + static NSTimer scheduledTimerWithTimeInterval_repeats_block_( + double interval, bool repeats, ObjCBlock_ffiVoid_NSTimer block) { + final _ret = _objc_msgSend_218( + _class_NSTimer, + _sel_scheduledTimerWithTimeInterval_repeats_block_, + interval, + repeats, + block.pointer); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithFireDate:interval:repeats:block: + NSTimer initWithFireDate_interval_repeats_block_(objc.NSDate date, + double interval, bool repeats, ObjCBlock_ffiVoid_NSTimer block) { + final _ret = _objc_msgSend_219( + this.pointer, + _sel_initWithFireDate_interval_repeats_block_, + date.pointer, + interval, + repeats, + block.pointer); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithFireDate:interval:target:selector:userInfo:repeats: + NSTimer initWithFireDate_interval_target_selector_userInfo_repeats_( + objc.NSDate date, + double ti, + objc.ObjCObjectBase t, + ffi.Pointer s, + objc.ObjCObjectBase? ui, + bool rep) { + final _ret = _objc_msgSend_220( + this.pointer, + _sel_initWithFireDate_interval_target_selector_userInfo_repeats_, + date.pointer, + ti, + t.pointer, + s, + ui?.pointer ?? ffi.nullptr, + rep); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// fire + void fire() { + _objc_msgSend_7(this.pointer, _sel_fire); + } + + /// fireDate + objc.NSDate get fireDate { + final _ret = _objc_msgSend_221(this.pointer, _sel_fireDate); + return objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// setFireDate: + set fireDate(objc.NSDate value) { + return _objc_msgSend_222(this.pointer, _sel_setFireDate_, value.pointer); + } + + /// timeInterval + double get timeInterval { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_timeInterval) + : _objc_msgSend_18(this.pointer, _sel_timeInterval); + } + + /// tolerance + double get tolerance { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_tolerance) + : _objc_msgSend_18(this.pointer, _sel_tolerance); + } + + /// setTolerance: + set tolerance(double value) { + return _objc_msgSend_223(this.pointer, _sel_setTolerance_, value); + } + + /// invalidate + void invalidate() { + _objc_msgSend_7(this.pointer, _sel_invalidate); + } + + /// isValid + bool get valid { + return _objc_msgSend_13(this.pointer, _sel_isValid); + } + + /// userInfo + objc.ObjCObjectBase? get userInfo { + final _ret = _objc_msgSend_83(this.pointer, _sel_userInfo); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// init + NSTimer init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSTimer.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSTimer new1() { + final _ret = _objc_msgSend_19(_class_NSTimer, _sel_new); + return NSTimer.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSTimer allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSTimer, _sel_allocWithZone_, zone); + return NSTimer.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSTimer alloc() { + final _ret = _objc_msgSend_19(_class_NSTimer, _sel_alloc); + return NSTimer.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSTimer, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSTimer, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSTimer, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSTimer, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSTimer, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSTimer, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSTimer, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSTimer, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19(_class_NSTimer, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSTimer = objc.getClass("classes.NSTimer"); +late final _sel_timerWithTimeInterval_invocation_repeats_ = + objc.registerName("timerWithTimeInterval:invocation:repeats:"); +final _objc_msgSend_216 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Double, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + double, + ffi.Pointer, + bool)>(); +late final _sel_scheduledTimerWithTimeInterval_invocation_repeats_ = + objc.registerName("scheduledTimerWithTimeInterval:invocation:repeats:"); +late final _sel_timerWithTimeInterval_target_selector_userInfo_repeats_ = objc + .registerName("timerWithTimeInterval:target:selector:userInfo:repeats:"); +final _objc_msgSend_217 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Double, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + double, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_scheduledTimerWithTimeInterval_target_selector_userInfo_repeats_ = + objc.registerName( + "scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:"); +void _ObjCBlock_ffiVoid_NSTimer_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSTimer_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSTimer extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSTimer._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSTimer castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSTimer._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSTimer.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSTimer_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSTimer.fromFunction(void Function(NSTimer) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSTimer_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn( + NSTimer.castFromPointer(arg0, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSTimer.listener(void Function(NSTimer) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSTimer(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSTimer_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn( + NSTimer.castFromPointer(arg0, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(NSTimer arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer)>()(pointer, arg0.pointer); +} + +late final _sel_timerWithTimeInterval_repeats_block_ = + objc.registerName("timerWithTimeInterval:repeats:block:"); +final _objc_msgSend_218 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Double, + ffi.Bool, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + double, + bool, + ffi.Pointer)>(); +late final _sel_scheduledTimerWithTimeInterval_repeats_block_ = + objc.registerName("scheduledTimerWithTimeInterval:repeats:block:"); +late final _sel_initWithFireDate_interval_repeats_block_ = + objc.registerName("initWithFireDate:interval:repeats:block:"); +final _objc_msgSend_219 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Double, + ffi.Bool, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + double, + bool, + ffi.Pointer)>(); +late final _sel_initWithFireDate_interval_target_selector_userInfo_repeats_ = + objc.registerName( + "initWithFireDate:interval:target:selector:userInfo:repeats:"); +final _objc_msgSend_220 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Double, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + double, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_fire = objc.registerName("fire"); +late final _sel_fireDate = objc.registerName("fireDate"); +final _objc_msgSend_221 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setFireDate_ = objc.registerName("setFireDate:"); +final _objc_msgSend_222 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_timeInterval = objc.registerName("timeInterval"); +late final _sel_tolerance = objc.registerName("tolerance"); +late final _sel_setTolerance_ = objc.registerName("setTolerance:"); +final _objc_msgSend_223 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Double)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, double)>(); +late final _sel_invalidate = objc.registerName("invalidate"); +late final _sel_isValid = objc.registerName("isValid"); +late final _sel_addTimer_forMode_ = objc.registerName("addTimer:forMode:"); +final _objc_msgSend_224 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSPort +class NSPort extends objc.NSObject { + NSPort._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSPort] that points to the same underlying object as [other]. + NSPort.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSPort] that wraps the given raw object pointer. + NSPort.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSPort]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSPort); + } + + /// port + static NSPort port() { + final _ret = _objc_msgSend_225(_class_NSPort, _sel_port); + return NSPort.castFromPointer(_ret, retain: true, release: true); + } + + /// invalidate + void invalidate() { + _objc_msgSend_7(this.pointer, _sel_invalidate); + } + + /// isValid + bool get valid { + return _objc_msgSend_13(this.pointer, _sel_isValid); + } + + /// setDelegate: + void setDelegate_(objc.ObjCObjectBase? anObject) { + _objc_msgSend_226( + this.pointer, _sel_setDelegate_, anObject?.pointer ?? ffi.nullptr); + } + + /// delegate + objc.ObjCObjectBase? delegate() { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// scheduleInRunLoop:forMode: + void scheduleInRunLoop_forMode_(NSRunLoop runLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_scheduleInRunLoop_forMode_, + runLoop.pointer, mode.pointer); + } + + /// removeFromRunLoop:forMode: + void removeFromRunLoop_forMode_(NSRunLoop runLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_removeFromRunLoop_forMode_, + runLoop.pointer, mode.pointer); + } + + /// reservedSpaceLength + int get reservedSpaceLength { + return _objc_msgSend_57(this.pointer, _sel_reservedSpaceLength); + } + + /// sendBeforeDate:components:from:reserved: + bool sendBeforeDate_components_from_reserved_( + objc.NSDate limitDate, + objc.NSMutableArray? components, + NSPort? receivePort, + int headerSpaceReserved) { + return _objc_msgSend_228( + this.pointer, + _sel_sendBeforeDate_components_from_reserved_, + limitDate.pointer, + components?.pointer ?? ffi.nullptr, + receivePort?.pointer ?? ffi.nullptr, + headerSpaceReserved); + } + + /// sendBeforeDate:msgid:components:from:reserved: + bool sendBeforeDate_msgid_components_from_reserved_( + objc.NSDate limitDate, + int msgID, + objc.NSMutableArray? components, + NSPort? receivePort, + int headerSpaceReserved) { + return _objc_msgSend_229( + this.pointer, + _sel_sendBeforeDate_msgid_components_from_reserved_, + limitDate.pointer, + msgID, + components?.pointer ?? ffi.nullptr, + receivePort?.pointer ?? ffi.nullptr, + headerSpaceReserved); + } + + /// addConnection:toRunLoop:forMode: + void addConnection_toRunLoop_forMode_( + NSConnection conn, NSRunLoop runLoop, objc.NSString mode) { + _objc_msgSend_252(this.pointer, _sel_addConnection_toRunLoop_forMode_, + conn.pointer, runLoop.pointer, mode.pointer); + } + + /// removeConnection:fromRunLoop:forMode: + void removeConnection_fromRunLoop_forMode_( + NSConnection conn, NSRunLoop runLoop, objc.NSString mode) { + _objc_msgSend_252(this.pointer, _sel_removeConnection_fromRunLoop_forMode_, + conn.pointer, runLoop.pointer, mode.pointer); + } + + /// init + NSPort init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSPort.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSPort new1() { + final _ret = _objc_msgSend_19(_class_NSPort, _sel_new); + return NSPort.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSPort allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSPort, _sel_allocWithZone_, zone); + return NSPort.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSPort alloc() { + final _ret = _objc_msgSend_19(_class_NSPort, _sel_alloc); + return NSPort.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSPort, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSPort, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSPort, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSPort, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSPort, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31( + _class_NSPort, _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSPort, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSPort, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19(_class_NSPort, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSPort = objc.getClass("classes.NSPort"); +late final _sel_port = objc.registerName("port"); +final _objc_msgSend_225 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDelegate_ = objc.registerName("setDelegate:"); +final _objc_msgSend_226 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_delegate = objc.registerName("delegate"); +late final _sel_scheduleInRunLoop_forMode_ = + objc.registerName("scheduleInRunLoop:forMode:"); +final _objc_msgSend_227 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeFromRunLoop_forMode_ = + objc.registerName("removeFromRunLoop:forMode:"); +late final _sel_reservedSpaceLength = objc.registerName("reservedSpaceLength"); +late final _sel_sendBeforeDate_components_from_reserved_ = + objc.registerName("sendBeforeDate:components:from:reserved:"); +final _objc_msgSend_228 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_sendBeforeDate_msgid_components_from_reserved_ = + objc.registerName("sendBeforeDate:msgid:components:from:reserved:"); +final _objc_msgSend_229 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + ffi.Pointer, + int)>(); + +/// NSConnection +class NSConnection extends objc.NSObject { + NSConnection._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSConnection] that points to the same underlying object as [other]. + NSConnection.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSConnection] that wraps the given raw object pointer. + NSConnection.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSConnection]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSConnection); + } + + /// statistics + objc.NSDictionary get statistics { + final _ret = _objc_msgSend_121(this.pointer, _sel_statistics); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// allConnections + static objc.NSArray allConnections() { + final _ret = _objc_msgSend_33(_class_NSConnection, _sel_allConnections); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// defaultConnection + static NSConnection defaultConnection() { + final _ret = _objc_msgSend_230(_class_NSConnection, _sel_defaultConnection); + return NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// connectionWithRegisteredName:host: + static NSConnection? connectionWithRegisteredName_host_( + objc.NSString name, objc.NSString? hostName) { + final _ret = _objc_msgSend_231( + _class_NSConnection, + _sel_connectionWithRegisteredName_host_, + name.pointer, + hostName?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// connectionWithRegisteredName:host:usingNameServer: + static NSConnection? connectionWithRegisteredName_host_usingNameServer_( + objc.NSString name, objc.NSString? hostName, NSPortNameServer server) { + final _ret = _objc_msgSend_236( + _class_NSConnection, + _sel_connectionWithRegisteredName_host_usingNameServer_, + name.pointer, + hostName?.pointer ?? ffi.nullptr, + server.pointer); + return _ret.address == 0 + ? null + : NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// rootProxyForConnectionWithRegisteredName:host: + static NSDistantObject? rootProxyForConnectionWithRegisteredName_host_( + objc.NSString name, objc.NSString? hostName) { + final _ret = _objc_msgSend_242( + _class_NSConnection, + _sel_rootProxyForConnectionWithRegisteredName_host_, + name.pointer, + hostName?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSDistantObject.castFromPointer(_ret, retain: true, release: true); + } + + /// rootProxyForConnectionWithRegisteredName:host:usingNameServer: + static NSDistantObject? + rootProxyForConnectionWithRegisteredName_host_usingNameServer_( + objc.NSString name, + objc.NSString? hostName, + NSPortNameServer server) { + final _ret = _objc_msgSend_243( + _class_NSConnection, + _sel_rootProxyForConnectionWithRegisteredName_host_usingNameServer_, + name.pointer, + hostName?.pointer ?? ffi.nullptr, + server.pointer); + return _ret.address == 0 + ? null + : NSDistantObject.castFromPointer(_ret, retain: true, release: true); + } + + /// serviceConnectionWithName:rootObject:usingNameServer: + static NSConnection? serviceConnectionWithName_rootObject_usingNameServer_( + objc.NSString name, objc.ObjCObjectBase root, NSPortNameServer server) { + final _ret = _objc_msgSend_244( + _class_NSConnection, + _sel_serviceConnectionWithName_rootObject_usingNameServer_, + name.pointer, + root.pointer, + server.pointer); + return _ret.address == 0 + ? null + : NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// serviceConnectionWithName:rootObject: + static NSConnection? serviceConnectionWithName_rootObject_( + objc.NSString name, objc.ObjCObjectBase root) { + final _ret = _objc_msgSend_245(_class_NSConnection, + _sel_serviceConnectionWithName_rootObject_, name.pointer, root.pointer); + return _ret.address == 0 + ? null + : NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// requestTimeout + double get requestTimeout { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_requestTimeout) + : _objc_msgSend_18(this.pointer, _sel_requestTimeout); + } + + /// setRequestTimeout: + set requestTimeout(double value) { + return _objc_msgSend_223(this.pointer, _sel_setRequestTimeout_, value); + } + + /// replyTimeout + double get replyTimeout { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_replyTimeout) + : _objc_msgSend_18(this.pointer, _sel_replyTimeout); + } + + /// setReplyTimeout: + set replyTimeout(double value) { + return _objc_msgSend_223(this.pointer, _sel_setReplyTimeout_, value); + } + + /// rootObject + objc.ObjCObjectBase? get rootObject { + final _ret = _objc_msgSend_83(this.pointer, _sel_rootObject); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setRootObject: + set rootObject(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setRootObject_, value?.pointer ?? ffi.nullptr); + } + + /// delegate + objc.ObjCObjectBase? get delegate { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setDelegate: + set delegate(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setDelegate_, value?.pointer ?? ffi.nullptr); + } + + /// independentConversationQueueing + bool get independentConversationQueueing { + return _objc_msgSend_13(this.pointer, _sel_independentConversationQueueing); + } + + /// setIndependentConversationQueueing: + set independentConversationQueueing(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setIndependentConversationQueueing_, value); + } + + /// isValid + bool get valid { + return _objc_msgSend_13(this.pointer, _sel_isValid); + } + + /// rootProxy + NSDistantObject get rootProxy { + final _ret = _objc_msgSend_246(this.pointer, _sel_rootProxy); + return NSDistantObject.castFromPointer(_ret, retain: true, release: true); + } + + /// invalidate + void invalidate() { + _objc_msgSend_7(this.pointer, _sel_invalidate); + } + + /// addRequestMode: + void addRequestMode_(objc.NSString rmode) { + _objc_msgSend_108(this.pointer, _sel_addRequestMode_, rmode.pointer); + } + + /// removeRequestMode: + void removeRequestMode_(objc.NSString rmode) { + _objc_msgSend_108(this.pointer, _sel_removeRequestMode_, rmode.pointer); + } + + /// requestModes + objc.NSArray get requestModes { + final _ret = _objc_msgSend_33(this.pointer, _sel_requestModes); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// registerName: + bool registerName_(objc.NSString? name) { + return _objc_msgSend_247( + this.pointer, _sel_registerName_, name?.pointer ?? ffi.nullptr); + } + + /// registerName:withNameServer: + bool registerName_withNameServer_( + objc.NSString? name, NSPortNameServer server) { + return _objc_msgSend_248(this.pointer, _sel_registerName_withNameServer_, + name?.pointer ?? ffi.nullptr, server.pointer); + } + + /// connectionWithReceivePort:sendPort: + static NSConnection? connectionWithReceivePort_sendPort_( + NSPort? receivePort, NSPort? sendPort) { + final _ret = _objc_msgSend_249( + _class_NSConnection, + _sel_connectionWithReceivePort_sendPort_, + receivePort?.pointer ?? ffi.nullptr, + sendPort?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// currentConversation + static objc.ObjCObjectBase? currentConversation() { + final _ret = + _objc_msgSend_83(_class_NSConnection, _sel_currentConversation); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// initWithReceivePort:sendPort: + NSConnection? initWithReceivePort_sendPort_( + NSPort? receivePort, NSPort? sendPort) { + final _ret = _objc_msgSend_249( + this.pointer, + _sel_initWithReceivePort_sendPort_, + receivePort?.pointer ?? ffi.nullptr, + sendPort?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// sendPort + NSPort get sendPort { + final _ret = _objc_msgSend_225(this.pointer, _sel_sendPort); + return NSPort.castFromPointer(_ret, retain: true, release: true); + } + + /// receivePort + NSPort get receivePort { + final _ret = _objc_msgSend_225(this.pointer, _sel_receivePort); + return NSPort.castFromPointer(_ret, retain: true, release: true); + } + + /// enableMultipleThreads + void enableMultipleThreads() { + _objc_msgSend_7(this.pointer, _sel_enableMultipleThreads); + } + + /// multipleThreadsEnabled + bool get multipleThreadsEnabled { + return _objc_msgSend_13(this.pointer, _sel_multipleThreadsEnabled); + } + + /// addRunLoop: + void addRunLoop_(NSRunLoop runloop) { + _objc_msgSend_250(this.pointer, _sel_addRunLoop_, runloop.pointer); + } + + /// removeRunLoop: + void removeRunLoop_(NSRunLoop runloop) { + _objc_msgSend_250(this.pointer, _sel_removeRunLoop_, runloop.pointer); + } + + /// runInNewThread + void runInNewThread() { + _objc_msgSend_7(this.pointer, _sel_runInNewThread); + } + + /// remoteObjects + objc.NSArray get remoteObjects { + final _ret = _objc_msgSend_33(this.pointer, _sel_remoteObjects); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// localObjects + objc.NSArray get localObjects { + final _ret = _objc_msgSend_33(this.pointer, _sel_localObjects); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// dispatchWithComponents: + void dispatchWithComponents_(objc.NSArray components) { + _objc_msgSend_251( + this.pointer, _sel_dispatchWithComponents_, components.pointer); + } + + /// init + NSConnection init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSConnection new1() { + final _ret = _objc_msgSend_19(_class_NSConnection, _sel_new); + return NSConnection.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSConnection allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSConnection, _sel_allocWithZone_, zone); + return NSConnection.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSConnection alloc() { + final _ret = _objc_msgSend_19(_class_NSConnection, _sel_alloc); + return NSConnection.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSConnection, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSConnection, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSConnection, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSConnection, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSConnection, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSConnection, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSConnection, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSConnection, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSConnection, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSConnection = objc.getClass("classes.NSConnection"); +late final _sel_statistics = objc.registerName("statistics"); +late final _sel_allConnections = objc.registerName("allConnections"); +late final _sel_defaultConnection = objc.registerName("defaultConnection"); +final _objc_msgSend_230 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_connectionWithRegisteredName_host_ = + objc.registerName("connectionWithRegisteredName:host:"); +final _objc_msgSend_231 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSPortNameServer +class NSPortNameServer extends objc.NSObject { + NSPortNameServer._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSPortNameServer] that points to the same underlying object as [other]. + NSPortNameServer.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSPortNameServer] that wraps the given raw object pointer. + NSPortNameServer.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSPortNameServer]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSPortNameServer); + } + + /// systemDefaultPortNameServer + static NSPortNameServer systemDefaultPortNameServer() { + final _ret = _objc_msgSend_232( + _class_NSPortNameServer, _sel_systemDefaultPortNameServer); + return NSPortNameServer.castFromPointer(_ret, retain: true, release: true); + } + + /// portForName: + NSPort? portForName_(objc.NSString name) { + final _ret = + _objc_msgSend_233(this.pointer, _sel_portForName_, name.pointer); + return _ret.address == 0 + ? null + : NSPort.castFromPointer(_ret, retain: true, release: true); + } + + /// portForName:host: + NSPort? portForName_host_(objc.NSString name, objc.NSString? host) { + final _ret = _objc_msgSend_234(this.pointer, _sel_portForName_host_, + name.pointer, host?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSPort.castFromPointer(_ret, retain: true, release: true); + } + + /// registerPort:name: + bool registerPort_name_(NSPort port, objc.NSString name) { + return _objc_msgSend_235( + this.pointer, _sel_registerPort_name_, port.pointer, name.pointer); + } + + /// removePortForName: + bool removePortForName_(objc.NSString name) { + return _objc_msgSend_31( + this.pointer, _sel_removePortForName_, name.pointer); + } + + /// init + NSPortNameServer init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSPortNameServer.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSPortNameServer new1() { + final _ret = _objc_msgSend_19(_class_NSPortNameServer, _sel_new); + return NSPortNameServer.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSPortNameServer allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSPortNameServer, _sel_allocWithZone_, zone); + return NSPortNameServer.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSPortNameServer alloc() { + final _ret = _objc_msgSend_19(_class_NSPortNameServer, _sel_alloc); + return NSPortNameServer.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSPortNameServer, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSPortNameServer, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSPortNameServer, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSPortNameServer, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSPortNameServer, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSPortNameServer, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSPortNameServer, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSPortNameServer, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSPortNameServer, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSPortNameServer = objc.getClass("classes.NSPortNameServer"); +late final _sel_systemDefaultPortNameServer = + objc.registerName("systemDefaultPortNameServer"); +final _objc_msgSend_232 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_portForName_ = objc.registerName("portForName:"); +final _objc_msgSend_233 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_portForName_host_ = objc.registerName("portForName:host:"); +final _objc_msgSend_234 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_registerPort_name_ = objc.registerName("registerPort:name:"); +final _objc_msgSend_235 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removePortForName_ = objc.registerName("removePortForName:"); +late final _sel_connectionWithRegisteredName_host_usingNameServer_ = + objc.registerName("connectionWithRegisteredName:host:usingNameServer:"); +final _objc_msgSend_236 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSDistantObject +class NSDistantObject extends objc.NSProxy { + NSDistantObject._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSDistantObject] that points to the same underlying object as [other]. + NSDistantObject.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSDistantObject] that wraps the given raw object pointer. + NSDistantObject.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSDistantObject]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSDistantObject); + } + + /// proxyWithTarget:connection: + static objc.ObjCObjectBase? proxyWithTarget_connection_( + objc.ObjCObjectBase target, NSConnection connection) { + final _ret = _objc_msgSend_237(_class_NSDistantObject, + _sel_proxyWithTarget_connection_, target.pointer, connection.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// initWithTarget:connection: + NSDistantObject? initWithTarget_connection_( + objc.ObjCObjectBase target, NSConnection connection) { + final _ret = _objc_msgSend_237(this.pointer, + _sel_initWithTarget_connection_, target.pointer, connection.pointer); + return _ret.address == 0 + ? null + : NSDistantObject.castFromPointer(_ret, retain: true, release: true); + } + + /// proxyWithLocal:connection: + static objc.ObjCObjectBase proxyWithLocal_connection_( + objc.ObjCObjectBase target, NSConnection connection) { + final _ret = _objc_msgSend_238(_class_NSDistantObject, + _sel_proxyWithLocal_connection_, target.pointer, connection.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// initWithLocal:connection: + NSDistantObject initWithLocal_connection_( + objc.ObjCObjectBase target, NSConnection connection) { + final _ret = _objc_msgSend_238(this.pointer, _sel_initWithLocal_connection_, + target.pointer, connection.pointer); + return NSDistantObject.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithCoder: + NSDistantObject? initWithCoder_(objc.NSCoder inCoder) { + final _ret = + _objc_msgSend_239(this.pointer, _sel_initWithCoder_, inCoder.pointer); + return _ret.address == 0 + ? null + : NSDistantObject.castFromPointer(_ret, retain: true, release: true); + } + + /// setProtocolForProxy: + void setProtocolForProxy_(objc.Protocol? proto) { + _objc_msgSend_240( + this.pointer, _sel_setProtocolForProxy_, proto?.pointer ?? ffi.nullptr); + } + + /// connectionForProxy + NSConnection get connectionForProxy { + final _ret = _objc_msgSend_230(this.pointer, _sel_connectionForProxy); + return NSConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// alloc + static objc.ObjCObjectBase alloc() { + final _ret = _objc_msgSend_19(_class_NSDistantObject, _sel_alloc); + return objc.ObjCObjectBase(_ret, retain: false, release: true); + } + + /// respondsToSelector: + static bool respondsToSelector_(ffi.Pointer aSelector) { + return _objc_msgSend_241( + _class_NSDistantObject, _sel_respondsToSelector_, aSelector); + } +} + +late final _class_NSDistantObject = objc.getClass("classes.NSDistantObject"); +late final _sel_proxyWithTarget_connection_ = + objc.registerName("proxyWithTarget:connection:"); +final _objc_msgSend_237 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithTarget_connection_ = + objc.registerName("initWithTarget:connection:"); +late final _sel_proxyWithLocal_connection_ = + objc.registerName("proxyWithLocal:connection:"); +final _objc_msgSend_238 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithLocal_connection_ = + objc.registerName("initWithLocal:connection:"); +late final _sel_initWithCoder_ = objc.registerName("initWithCoder:"); +final _objc_msgSend_239 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setProtocolForProxy_ = + objc.registerName("setProtocolForProxy:"); +final _objc_msgSend_240 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_connectionForProxy = objc.registerName("connectionForProxy"); +late final _sel_respondsToSelector_ = objc.registerName("respondsToSelector:"); +final _objc_msgSend_241 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_rootProxyForConnectionWithRegisteredName_host_ = + objc.registerName("rootProxyForConnectionWithRegisteredName:host:"); +final _objc_msgSend_242 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_rootProxyForConnectionWithRegisteredName_host_usingNameServer_ = + objc.registerName( + "rootProxyForConnectionWithRegisteredName:host:usingNameServer:"); +final _objc_msgSend_243 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_serviceConnectionWithName_rootObject_usingNameServer_ = + objc.registerName("serviceConnectionWithName:rootObject:usingNameServer:"); +final _objc_msgSend_244 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_serviceConnectionWithName_rootObject_ = + objc.registerName("serviceConnectionWithName:rootObject:"); +final _objc_msgSend_245 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_requestTimeout = objc.registerName("requestTimeout"); +late final _sel_setRequestTimeout_ = objc.registerName("setRequestTimeout:"); +late final _sel_replyTimeout = objc.registerName("replyTimeout"); +late final _sel_setReplyTimeout_ = objc.registerName("setReplyTimeout:"); +late final _sel_rootObject = objc.registerName("rootObject"); +late final _sel_setRootObject_ = objc.registerName("setRootObject:"); +late final _sel_independentConversationQueueing = + objc.registerName("independentConversationQueueing"); +late final _sel_setIndependentConversationQueueing_ = + objc.registerName("setIndependentConversationQueueing:"); +late final _sel_rootProxy = objc.registerName("rootProxy"); +final _objc_msgSend_246 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_addRequestMode_ = objc.registerName("addRequestMode:"); +late final _sel_removeRequestMode_ = objc.registerName("removeRequestMode:"); +late final _sel_requestModes = objc.registerName("requestModes"); +late final _sel_registerName_ = objc.registerName("registerName:"); +final _objc_msgSend_247 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_registerName_withNameServer_ = + objc.registerName("registerName:withNameServer:"); +final _objc_msgSend_248 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_connectionWithReceivePort_sendPort_ = + objc.registerName("connectionWithReceivePort:sendPort:"); +final _objc_msgSend_249 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_currentConversation = objc.registerName("currentConversation"); +late final _sel_initWithReceivePort_sendPort_ = + objc.registerName("initWithReceivePort:sendPort:"); +late final _sel_sendPort = objc.registerName("sendPort"); +late final _sel_receivePort = objc.registerName("receivePort"); +late final _sel_enableMultipleThreads = + objc.registerName("enableMultipleThreads"); +late final _sel_multipleThreadsEnabled = + objc.registerName("multipleThreadsEnabled"); +late final _sel_addRunLoop_ = objc.registerName("addRunLoop:"); +final _objc_msgSend_250 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_removeRunLoop_ = objc.registerName("removeRunLoop:"); +late final _sel_runInNewThread = objc.registerName("runInNewThread"); +late final _sel_remoteObjects = objc.registerName("remoteObjects"); +late final _sel_localObjects = objc.registerName("localObjects"); +late final _sel_dispatchWithComponents_ = + objc.registerName("dispatchWithComponents:"); +final _objc_msgSend_251 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_addConnection_toRunLoop_forMode_ = + objc.registerName("addConnection:toRunLoop:forMode:"); +final _objc_msgSend_252 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeConnection_fromRunLoop_forMode_ = + objc.registerName("removeConnection:fromRunLoop:forMode:"); +late final _sel_addPort_forMode_ = objc.registerName("addPort:forMode:"); +final _objc_msgSend_253 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removePort_forMode_ = objc.registerName("removePort:forMode:"); +late final _sel_limitDateForMode_ = objc.registerName("limitDateForMode:"); +late final _sel_acceptInputForMode_beforeDate_ = + objc.registerName("acceptInputForMode:beforeDate:"); +final _objc_msgSend_254 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_run = objc.registerName("run"); +late final _sel_runUntilDate_ = objc.registerName("runUntilDate:"); +final _objc_msgSend_255 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_runMode_beforeDate_ = objc.registerName("runMode:beforeDate:"); +final _objc_msgSend_256 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_configureAsServer = objc.registerName("configureAsServer"); +late final _sel_performInModes_block_ = + objc.registerName("performInModes:block:"); +final _objc_msgSend_257 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_performBlock_ = objc.registerName("performBlock:"); +final _objc_msgSend_258 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_performSelector_target_argument_order_modes_ = + objc.registerName("performSelector:target:argument:order:modes:"); +final _objc_msgSend_259 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_cancelPerformSelector_target_argument_ = + objc.registerName("cancelPerformSelector:target:argument:"); +final _objc_msgSend_260 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_cancelPerformSelectorsWithTarget_ = + objc.registerName("cancelPerformSelectorsWithTarget:"); + +/// NSFileHandle +class NSFileHandle extends objc.NSObject { + NSFileHandle._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSFileHandle] that points to the same underlying object as [other]. + NSFileHandle.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSFileHandle] that wraps the given raw object pointer. + NSFileHandle.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSFileHandle]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSFileHandle); + } + + /// availableData + objc.NSData get availableData { + final _ret = _objc_msgSend_113(this.pointer, _sel_availableData); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithFileDescriptor:closeOnDealloc: + NSFileHandle initWithFileDescriptor_closeOnDealloc_(int fd, bool closeopt) { + final _ret = _objc_msgSend_261(this.pointer, + _sel_initWithFileDescriptor_closeOnDealloc_, fd, closeopt); + return NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithCoder: + NSFileHandle? initWithCoder_(objc.NSCoder coder) { + final _ret = + _objc_msgSend_239(this.pointer, _sel_initWithCoder_, coder.pointer); + return _ret.address == 0 + ? null + : NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// readDataToEndOfFileAndReturnError: + objc.NSData? readDataToEndOfFileAndReturnError_( + ffi.Pointer> error) { + final _ret = _objc_msgSend_262( + this.pointer, _sel_readDataToEndOfFileAndReturnError_, error); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// readDataUpToLength:error: + objc.NSData? readDataUpToLength_error_( + int length, ffi.Pointer> error) { + final _ret = _objc_msgSend_263( + this.pointer, _sel_readDataUpToLength_error_, length, error); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// writeData:error: + bool writeData_error_( + objc.NSData data, ffi.Pointer> error) { + return _objc_msgSend_264( + this.pointer, _sel_writeData_error_, data.pointer, error); + } + + /// getOffset:error: + bool getOffset_error_(ffi.Pointer offsetInFile, + ffi.Pointer> error) { + return _objc_msgSend_265( + this.pointer, _sel_getOffset_error_, offsetInFile, error); + } + + /// seekToEndReturningOffset:error: + bool seekToEndReturningOffset_error_( + ffi.Pointer offsetInFile, + ffi.Pointer> error) { + return _objc_msgSend_265(this.pointer, _sel_seekToEndReturningOffset_error_, + offsetInFile, error); + } + + /// seekToOffset:error: + bool seekToOffset_error_( + int offset, ffi.Pointer> error) { + return _objc_msgSend_266( + this.pointer, _sel_seekToOffset_error_, offset, error); + } + + /// truncateAtOffset:error: + bool truncateAtOffset_error_( + int offset, ffi.Pointer> error) { + return _objc_msgSend_266( + this.pointer, _sel_truncateAtOffset_error_, offset, error); + } + + /// synchronizeAndReturnError: + bool synchronizeAndReturnError_( + ffi.Pointer> error) { + return _objc_msgSend_39( + this.pointer, _sel_synchronizeAndReturnError_, error); + } + + /// closeAndReturnError: + bool closeAndReturnError_(ffi.Pointer> error) { + return _objc_msgSend_39(this.pointer, _sel_closeAndReturnError_, error); + } + + /// fileHandleWithStandardInput + static NSFileHandle getFileHandleWithStandardInput() { + final _ret = _objc_msgSend_267( + _class_NSFileHandle, _sel_fileHandleWithStandardInput); + return NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleWithStandardOutput + static NSFileHandle getFileHandleWithStandardOutput() { + final _ret = _objc_msgSend_267( + _class_NSFileHandle, _sel_fileHandleWithStandardOutput); + return NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleWithStandardError + static NSFileHandle getFileHandleWithStandardError() { + final _ret = _objc_msgSend_267( + _class_NSFileHandle, _sel_fileHandleWithStandardError); + return NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleWithNullDevice + static NSFileHandle getFileHandleWithNullDevice() { + final _ret = + _objc_msgSend_267(_class_NSFileHandle, _sel_fileHandleWithNullDevice); + return NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleForReadingAtPath: + static NSFileHandle? fileHandleForReadingAtPath_(objc.NSString path) { + final _ret = _objc_msgSend_35( + _class_NSFileHandle, _sel_fileHandleForReadingAtPath_, path.pointer); + return _ret.address == 0 + ? null + : NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleForWritingAtPath: + static NSFileHandle? fileHandleForWritingAtPath_(objc.NSString path) { + final _ret = _objc_msgSend_35( + _class_NSFileHandle, _sel_fileHandleForWritingAtPath_, path.pointer); + return _ret.address == 0 + ? null + : NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleForUpdatingAtPath: + static NSFileHandle? fileHandleForUpdatingAtPath_(objc.NSString path) { + final _ret = _objc_msgSend_35( + _class_NSFileHandle, _sel_fileHandleForUpdatingAtPath_, path.pointer); + return _ret.address == 0 + ? null + : NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleForReadingFromURL:error: + static NSFileHandle? fileHandleForReadingFromURL_error_( + objc.NSURL url, ffi.Pointer> error) { + final _ret = _objc_msgSend_268(_class_NSFileHandle, + _sel_fileHandleForReadingFromURL_error_, url.pointer, error); + return _ret.address == 0 + ? null + : NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleForWritingToURL:error: + static NSFileHandle? fileHandleForWritingToURL_error_( + objc.NSURL url, ffi.Pointer> error) { + final _ret = _objc_msgSend_268(_class_NSFileHandle, + _sel_fileHandleForWritingToURL_error_, url.pointer, error); + return _ret.address == 0 + ? null + : NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileHandleForUpdatingURL:error: + static NSFileHandle? fileHandleForUpdatingURL_error_( + objc.NSURL url, ffi.Pointer> error) { + final _ret = _objc_msgSend_268(_class_NSFileHandle, + _sel_fileHandleForUpdatingURL_error_, url.pointer, error); + return _ret.address == 0 + ? null + : NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// readInBackgroundAndNotifyForModes: + void readInBackgroundAndNotifyForModes_(objc.NSArray? modes) { + _objc_msgSend_269(this.pointer, _sel_readInBackgroundAndNotifyForModes_, + modes?.pointer ?? ffi.nullptr); + } + + /// readInBackgroundAndNotify + void readInBackgroundAndNotify() { + _objc_msgSend_7(this.pointer, _sel_readInBackgroundAndNotify); + } + + /// readToEndOfFileInBackgroundAndNotifyForModes: + void readToEndOfFileInBackgroundAndNotifyForModes_(objc.NSArray? modes) { + _objc_msgSend_269( + this.pointer, + _sel_readToEndOfFileInBackgroundAndNotifyForModes_, + modes?.pointer ?? ffi.nullptr); + } + + /// readToEndOfFileInBackgroundAndNotify + void readToEndOfFileInBackgroundAndNotify() { + _objc_msgSend_7(this.pointer, _sel_readToEndOfFileInBackgroundAndNotify); + } + + /// acceptConnectionInBackgroundAndNotifyForModes: + void acceptConnectionInBackgroundAndNotifyForModes_(objc.NSArray? modes) { + _objc_msgSend_269( + this.pointer, + _sel_acceptConnectionInBackgroundAndNotifyForModes_, + modes?.pointer ?? ffi.nullptr); + } + + /// acceptConnectionInBackgroundAndNotify + void acceptConnectionInBackgroundAndNotify() { + _objc_msgSend_7(this.pointer, _sel_acceptConnectionInBackgroundAndNotify); + } + + /// waitForDataInBackgroundAndNotifyForModes: + void waitForDataInBackgroundAndNotifyForModes_(objc.NSArray? modes) { + _objc_msgSend_269( + this.pointer, + _sel_waitForDataInBackgroundAndNotifyForModes_, + modes?.pointer ?? ffi.nullptr); + } + + /// waitForDataInBackgroundAndNotify + void waitForDataInBackgroundAndNotify() { + _objc_msgSend_7(this.pointer, _sel_waitForDataInBackgroundAndNotify); + } + + /// readabilityHandler + ObjCBlock_ffiVoid_NSFileHandle? get readabilityHandler { + final _ret = _objc_msgSend_270(this.pointer, _sel_readabilityHandler); + return _ret.address == 0 + ? null + : ObjCBlock_ffiVoid_NSFileHandle.castFromPointer(_ret, + retain: true, release: true); + } + + /// setReadabilityHandler: + set readabilityHandler(ObjCBlock_ffiVoid_NSFileHandle? value) { + return _objc_msgSend_271(this.pointer, _sel_setReadabilityHandler_, + value?.pointer ?? ffi.nullptr); + } + + /// writeabilityHandler + ObjCBlock_ffiVoid_NSFileHandle? get writeabilityHandler { + final _ret = _objc_msgSend_270(this.pointer, _sel_writeabilityHandler); + return _ret.address == 0 + ? null + : ObjCBlock_ffiVoid_NSFileHandle.castFromPointer(_ret, + retain: true, release: true); + } + + /// setWriteabilityHandler: + set writeabilityHandler(ObjCBlock_ffiVoid_NSFileHandle? value) { + return _objc_msgSend_271(this.pointer, _sel_setWriteabilityHandler_, + value?.pointer ?? ffi.nullptr); + } + + /// initWithFileDescriptor: + NSFileHandle initWithFileDescriptor_(int fd) { + final _ret = + _objc_msgSend_272(this.pointer, _sel_initWithFileDescriptor_, fd); + return NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// fileDescriptor + int get fileDescriptor { + return _objc_msgSend_273(this.pointer, _sel_fileDescriptor); + } + + /// readDataToEndOfFile + objc.NSData readDataToEndOfFile() { + final _ret = _objc_msgSend_113(this.pointer, _sel_readDataToEndOfFile); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// readDataOfLength: + objc.NSData readDataOfLength_(int length) { + final _ret = + _objc_msgSend_274(this.pointer, _sel_readDataOfLength_, length); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// writeData: + void writeData_(objc.NSData data) { + _objc_msgSend_275(this.pointer, _sel_writeData_, data.pointer); + } + + /// offsetInFile + int get offsetInFile { + return _objc_msgSend_276(this.pointer, _sel_offsetInFile); + } + + /// seekToEndOfFile + int seekToEndOfFile() { + return _objc_msgSend_276(this.pointer, _sel_seekToEndOfFile); + } + + /// seekToFileOffset: + void seekToFileOffset_(int offset) { + _objc_msgSend_277(this.pointer, _sel_seekToFileOffset_, offset); + } + + /// truncateFileAtOffset: + void truncateFileAtOffset_(int offset) { + _objc_msgSend_277(this.pointer, _sel_truncateFileAtOffset_, offset); + } + + /// synchronizeFile + void synchronizeFile() { + _objc_msgSend_7(this.pointer, _sel_synchronizeFile); + } + + /// closeFile + void closeFile() { + _objc_msgSend_7(this.pointer, _sel_closeFile); + } + + /// init + NSFileHandle init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSFileHandle.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSFileHandle new1() { + final _ret = _objc_msgSend_19(_class_NSFileHandle, _sel_new); + return NSFileHandle.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSFileHandle allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSFileHandle, _sel_allocWithZone_, zone); + return NSFileHandle.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSFileHandle alloc() { + final _ret = _objc_msgSend_19(_class_NSFileHandle, _sel_alloc); + return NSFileHandle.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSFileHandle, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSFileHandle, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSFileHandle, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSFileHandle, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSFileHandle, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSFileHandle, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSFileHandle, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSFileHandle, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSFileHandle, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSFileHandle = objc.getClass("classes.NSFileHandle"); +late final _sel_availableData = objc.registerName("availableData"); +late final _sel_initWithFileDescriptor_closeOnDealloc_ = + objc.registerName("initWithFileDescriptor:closeOnDealloc:"); +final _objc_msgSend_261 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Int, ffi.Bool)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int, bool)>(); +late final _sel_readDataToEndOfFileAndReturnError_ = + objc.registerName("readDataToEndOfFileAndReturnError:"); +final _objc_msgSend_262 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_readDataUpToLength_error_ = + objc.registerName("readDataUpToLength:error:"); +final _objc_msgSend_263 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_writeData_error_ = objc.registerName("writeData:error:"); +final _objc_msgSend_264 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_getOffset_error_ = objc.registerName("getOffset:error:"); +final _objc_msgSend_265 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_seekToEndReturningOffset_error_ = + objc.registerName("seekToEndReturningOffset:error:"); +late final _sel_seekToOffset_error_ = objc.registerName("seekToOffset:error:"); +final _objc_msgSend_266 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLongLong, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_truncateAtOffset_error_ = + objc.registerName("truncateAtOffset:error:"); +late final _sel_synchronizeAndReturnError_ = + objc.registerName("synchronizeAndReturnError:"); +late final _sel_closeAndReturnError_ = + objc.registerName("closeAndReturnError:"); +late final _sel_fileHandleWithStandardInput = + objc.registerName("fileHandleWithStandardInput"); +final _objc_msgSend_267 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_fileHandleWithStandardOutput = + objc.registerName("fileHandleWithStandardOutput"); +late final _sel_fileHandleWithStandardError = + objc.registerName("fileHandleWithStandardError"); +late final _sel_fileHandleWithNullDevice = + objc.registerName("fileHandleWithNullDevice"); +late final _sel_fileHandleForReadingAtPath_ = + objc.registerName("fileHandleForReadingAtPath:"); +late final _sel_fileHandleForWritingAtPath_ = + objc.registerName("fileHandleForWritingAtPath:"); +late final _sel_fileHandleForUpdatingAtPath_ = + objc.registerName("fileHandleForUpdatingAtPath:"); +late final _sel_fileHandleForReadingFromURL_error_ = + objc.registerName("fileHandleForReadingFromURL:error:"); +final _objc_msgSend_268 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_fileHandleForWritingToURL_error_ = + objc.registerName("fileHandleForWritingToURL:error:"); +late final _sel_fileHandleForUpdatingURL_error_ = + objc.registerName("fileHandleForUpdatingURL:error:"); +late final _sel_readInBackgroundAndNotifyForModes_ = + objc.registerName("readInBackgroundAndNotifyForModes:"); +final _objc_msgSend_269 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_readInBackgroundAndNotify = + objc.registerName("readInBackgroundAndNotify"); +late final _sel_readToEndOfFileInBackgroundAndNotifyForModes_ = + objc.registerName("readToEndOfFileInBackgroundAndNotifyForModes:"); +late final _sel_readToEndOfFileInBackgroundAndNotify = + objc.registerName("readToEndOfFileInBackgroundAndNotify"); +late final _sel_acceptConnectionInBackgroundAndNotifyForModes_ = + objc.registerName("acceptConnectionInBackgroundAndNotifyForModes:"); +late final _sel_acceptConnectionInBackgroundAndNotify = + objc.registerName("acceptConnectionInBackgroundAndNotify"); +late final _sel_waitForDataInBackgroundAndNotifyForModes_ = + objc.registerName("waitForDataInBackgroundAndNotifyForModes:"); +late final _sel_waitForDataInBackgroundAndNotify = + objc.registerName("waitForDataInBackgroundAndNotify"); +void _ObjCBlock_ffiVoid_NSFileHandle_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSFileHandle_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSFileHandle extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSFileHandle._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSFileHandle castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSFileHandle._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSFileHandle.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSFileHandle_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSFileHandle.fromFunction(void Function(NSFileHandle) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSFileHandle_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn( + NSFileHandle.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSFileHandle.listener(void Function(NSFileHandle) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSFileHandle( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSFileHandle_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn( + NSFileHandle.castFromPointer(arg0, + retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(NSFileHandle arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer)>()(pointer, arg0.pointer); +} + +late final _sel_readabilityHandler = objc.registerName("readabilityHandler"); +final _objc_msgSend_270 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setReadabilityHandler_ = + objc.registerName("setReadabilityHandler:"); +final _objc_msgSend_271 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_writeabilityHandler = objc.registerName("writeabilityHandler"); +late final _sel_setWriteabilityHandler_ = + objc.registerName("setWriteabilityHandler:"); +late final _sel_initWithFileDescriptor_ = + objc.registerName("initWithFileDescriptor:"); +final _objc_msgSend_272 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Int)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_fileDescriptor = objc.registerName("fileDescriptor"); +final _objc_msgSend_273 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Int Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_readDataToEndOfFile = objc.registerName("readDataToEndOfFile"); +late final _sel_readDataOfLength_ = objc.registerName("readDataOfLength:"); +final _objc_msgSend_274 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_writeData_ = objc.registerName("writeData:"); +final _objc_msgSend_275 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_offsetInFile = objc.registerName("offsetInFile"); +final _objc_msgSend_276 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLongLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_seekToEndOfFile = objc.registerName("seekToEndOfFile"); +late final _sel_seekToFileOffset_ = objc.registerName("seekToFileOffset:"); +final _objc_msgSend_277 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLongLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_truncateFileAtOffset_ = + objc.registerName("truncateFileAtOffset:"); +late final _sel_synchronizeFile = objc.registerName("synchronizeFile"); +late final _sel_closeFile = objc.registerName("closeFile"); + +/// NSFileManager +class NSFileManager extends objc.NSObject { + NSFileManager._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSFileManager] that points to the same underlying object as [other]. + NSFileManager.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSFileManager] that wraps the given raw object pointer. + NSFileManager.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSFileManager]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSFileManager); + } + + /// defaultManager + static NSFileManager getDefaultManager() { + final _ret = _objc_msgSend_278(_class_NSFileManager, _sel_defaultManager); + return NSFileManager.castFromPointer(_ret, retain: true, release: true); + } + + /// mountedVolumeURLsIncludingResourceValuesForKeys:options: + objc.NSArray? mountedVolumeURLsIncludingResourceValuesForKeys_options_( + objc.NSArray? propertyKeys, NSVolumeEnumerationOptions options) { + final _ret = _objc_msgSend_279( + this.pointer, + _sel_mountedVolumeURLsIncludingResourceValuesForKeys_options_, + propertyKeys?.pointer ?? ffi.nullptr, + options.value); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// unmountVolumeAtURL:options:completionHandler: + void unmountVolumeAtURL_options_completionHandler_( + objc.NSURL url, + NSFileManagerUnmountOptions mask, + ObjCBlock_ffiVoid_NSError completionHandler) { + _objc_msgSend_280( + this.pointer, + _sel_unmountVolumeAtURL_options_completionHandler_, + url.pointer, + mask.value, + completionHandler.pointer); + } + + /// contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error: + objc.NSArray? + contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_( + objc.NSURL url, + objc.NSArray? keys, + NSDirectoryEnumerationOptions mask, + ffi.Pointer> error) { + final _ret = _objc_msgSend_281( + this.pointer, + _sel_contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_, + url.pointer, + keys?.pointer ?? ffi.nullptr, + mask.value, + error); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// URLsForDirectory:inDomains: + objc.NSArray URLsForDirectory_inDomains_( + NSSearchPathDirectory directory, NSSearchPathDomainMask domainMask) { + final _ret = _objc_msgSend_282(this.pointer, + _sel_URLsForDirectory_inDomains_, directory.value, domainMask.value); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// URLForDirectory:inDomain:appropriateForURL:create:error: + objc.NSURL? URLForDirectory_inDomain_appropriateForURL_create_error_( + NSSearchPathDirectory directory, + NSSearchPathDomainMask domain, + objc.NSURL? url, + bool shouldCreate, + ffi.Pointer> error) { + final _ret = _objc_msgSend_283( + this.pointer, + _sel_URLForDirectory_inDomain_appropriateForURL_create_error_, + directory.value, + domain.value, + url?.pointer ?? ffi.nullptr, + shouldCreate, + error); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// getRelationship:ofDirectoryAtURL:toItemAtURL:error: + bool getRelationship_ofDirectoryAtURL_toItemAtURL_error_( + ffi.Pointer outRelationship, + objc.NSURL directoryURL, + objc.NSURL otherURL, + ffi.Pointer> error) { + return _objc_msgSend_284( + this.pointer, + _sel_getRelationship_ofDirectoryAtURL_toItemAtURL_error_, + outRelationship, + directoryURL.pointer, + otherURL.pointer, + error); + } + + /// getRelationship:ofDirectory:inDomain:toItemAtURL:error: + bool getRelationship_ofDirectory_inDomain_toItemAtURL_error_( + ffi.Pointer outRelationship, + NSSearchPathDirectory directory, + NSSearchPathDomainMask domainMask, + objc.NSURL url, + ffi.Pointer> error) { + return _objc_msgSend_285( + this.pointer, + _sel_getRelationship_ofDirectory_inDomain_toItemAtURL_error_, + outRelationship, + directory.value, + domainMask.value, + url.pointer, + error); + } + + /// createDirectoryAtURL:withIntermediateDirectories:attributes:error: + bool createDirectoryAtURL_withIntermediateDirectories_attributes_error_( + objc.NSURL url, + bool createIntermediates, + objc.NSDictionary? attributes, + ffi.Pointer> error) { + return _objc_msgSend_286( + this.pointer, + _sel_createDirectoryAtURL_withIntermediateDirectories_attributes_error_, + url.pointer, + createIntermediates, + attributes?.pointer ?? ffi.nullptr, + error); + } + + /// createSymbolicLinkAtURL:withDestinationURL:error: + bool createSymbolicLinkAtURL_withDestinationURL_error_(objc.NSURL url, + objc.NSURL destURL, ffi.Pointer> error) { + return _objc_msgSend_287( + this.pointer, + _sel_createSymbolicLinkAtURL_withDestinationURL_error_, + url.pointer, + destURL.pointer, + error); + } + + /// delegate + objc.ObjCObjectBase? get delegate { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setDelegate: + set delegate(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setDelegate_, value?.pointer ?? ffi.nullptr); + } + + /// setAttributes:ofItemAtPath:error: + bool setAttributes_ofItemAtPath_error_(objc.NSDictionary attributes, + objc.NSString path, ffi.Pointer> error) { + return _objc_msgSend_288( + this.pointer, + _sel_setAttributes_ofItemAtPath_error_, + attributes.pointer, + path.pointer, + error); + } + + /// createDirectoryAtPath:withIntermediateDirectories:attributes:error: + bool createDirectoryAtPath_withIntermediateDirectories_attributes_error_( + objc.NSString path, + bool createIntermediates, + objc.NSDictionary? attributes, + ffi.Pointer> error) { + return _objc_msgSend_289( + this.pointer, + _sel_createDirectoryAtPath_withIntermediateDirectories_attributes_error_, + path.pointer, + createIntermediates, + attributes?.pointer ?? ffi.nullptr, + error); + } + + /// contentsOfDirectoryAtPath:error: + objc.NSArray? contentsOfDirectoryAtPath_error_( + objc.NSString path, ffi.Pointer> error) { + final _ret = _objc_msgSend_290(this.pointer, + _sel_contentsOfDirectoryAtPath_error_, path.pointer, error); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// subpathsOfDirectoryAtPath:error: + objc.NSArray? subpathsOfDirectoryAtPath_error_( + objc.NSString path, ffi.Pointer> error) { + final _ret = _objc_msgSend_290(this.pointer, + _sel_subpathsOfDirectoryAtPath_error_, path.pointer, error); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// attributesOfItemAtPath:error: + objc.NSDictionary? attributesOfItemAtPath_error_( + objc.NSString path, ffi.Pointer> error) { + final _ret = _objc_msgSend_291( + this.pointer, _sel_attributesOfItemAtPath_error_, path.pointer, error); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// attributesOfFileSystemForPath:error: + objc.NSDictionary? attributesOfFileSystemForPath_error_( + objc.NSString path, ffi.Pointer> error) { + final _ret = _objc_msgSend_291(this.pointer, + _sel_attributesOfFileSystemForPath_error_, path.pointer, error); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// createSymbolicLinkAtPath:withDestinationPath:error: + bool createSymbolicLinkAtPath_withDestinationPath_error_(objc.NSString path, + objc.NSString destPath, ffi.Pointer> error) { + return _objc_msgSend_292( + this.pointer, + _sel_createSymbolicLinkAtPath_withDestinationPath_error_, + path.pointer, + destPath.pointer, + error); + } + + /// destinationOfSymbolicLinkAtPath:error: + objc.NSString? destinationOfSymbolicLinkAtPath_error_( + objc.NSString path, ffi.Pointer> error) { + final _ret = _objc_msgSend_293(this.pointer, + _sel_destinationOfSymbolicLinkAtPath_error_, path.pointer, error); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// copyItemAtPath:toPath:error: + bool copyItemAtPath_toPath_error_(objc.NSString srcPath, + objc.NSString dstPath, ffi.Pointer> error) { + return _objc_msgSend_292(this.pointer, _sel_copyItemAtPath_toPath_error_, + srcPath.pointer, dstPath.pointer, error); + } + + /// moveItemAtPath:toPath:error: + bool moveItemAtPath_toPath_error_(objc.NSString srcPath, + objc.NSString dstPath, ffi.Pointer> error) { + return _objc_msgSend_292(this.pointer, _sel_moveItemAtPath_toPath_error_, + srcPath.pointer, dstPath.pointer, error); + } + + /// linkItemAtPath:toPath:error: + bool linkItemAtPath_toPath_error_(objc.NSString srcPath, + objc.NSString dstPath, ffi.Pointer> error) { + return _objc_msgSend_292(this.pointer, _sel_linkItemAtPath_toPath_error_, + srcPath.pointer, dstPath.pointer, error); + } + + /// removeItemAtPath:error: + bool removeItemAtPath_error_( + objc.NSString path, ffi.Pointer> error) { + return _objc_msgSend_294( + this.pointer, _sel_removeItemAtPath_error_, path.pointer, error); + } + + /// copyItemAtURL:toURL:error: + bool copyItemAtURL_toURL_error_(objc.NSURL srcURL, objc.NSURL dstURL, + ffi.Pointer> error) { + return _objc_msgSend_287(this.pointer, _sel_copyItemAtURL_toURL_error_, + srcURL.pointer, dstURL.pointer, error); + } + + /// moveItemAtURL:toURL:error: + bool moveItemAtURL_toURL_error_(objc.NSURL srcURL, objc.NSURL dstURL, + ffi.Pointer> error) { + return _objc_msgSend_287(this.pointer, _sel_moveItemAtURL_toURL_error_, + srcURL.pointer, dstURL.pointer, error); + } + + /// linkItemAtURL:toURL:error: + bool linkItemAtURL_toURL_error_(objc.NSURL srcURL, objc.NSURL dstURL, + ffi.Pointer> error) { + return _objc_msgSend_287(this.pointer, _sel_linkItemAtURL_toURL_error_, + srcURL.pointer, dstURL.pointer, error); + } + + /// removeItemAtURL:error: + bool removeItemAtURL_error_( + objc.NSURL URL, ffi.Pointer> error) { + return _objc_msgSend_295( + this.pointer, _sel_removeItemAtURL_error_, URL.pointer, error); + } + + /// trashItemAtURL:resultingItemURL:error: + bool trashItemAtURL_resultingItemURL_error_( + objc.NSURL url, + ffi.Pointer> outResultingURL, + ffi.Pointer> error) { + return _objc_msgSend_296( + this.pointer, + _sel_trashItemAtURL_resultingItemURL_error_, + url.pointer, + outResultingURL, + error); + } + + /// fileAttributesAtPath:traverseLink: + objc.NSDictionary? fileAttributesAtPath_traverseLink_( + objc.NSString path, bool yorn) { + final _ret = _objc_msgSend_297(this.pointer, + _sel_fileAttributesAtPath_traverseLink_, path.pointer, yorn); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// changeFileAttributes:atPath: + bool changeFileAttributes_atPath_( + objc.NSDictionary attributes, objc.NSString path) { + return _objc_msgSend_298(this.pointer, _sel_changeFileAttributes_atPath_, + attributes.pointer, path.pointer); + } + + /// directoryContentsAtPath: + objc.NSArray? directoryContentsAtPath_(objc.NSString path) { + final _ret = _objc_msgSend_299( + this.pointer, _sel_directoryContentsAtPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// fileSystemAttributesAtPath: + objc.NSDictionary? fileSystemAttributesAtPath_(objc.NSString path) { + final _ret = _objc_msgSend_300( + this.pointer, _sel_fileSystemAttributesAtPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// pathContentOfSymbolicLinkAtPath: + objc.NSString? pathContentOfSymbolicLinkAtPath_(objc.NSString path) { + final _ret = _objc_msgSend_42( + this.pointer, _sel_pathContentOfSymbolicLinkAtPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// createSymbolicLinkAtPath:pathContent: + bool createSymbolicLinkAtPath_pathContent_( + objc.NSString path, objc.NSString otherpath) { + return _objc_msgSend_301( + this.pointer, + _sel_createSymbolicLinkAtPath_pathContent_, + path.pointer, + otherpath.pointer); + } + + /// createDirectoryAtPath:attributes: + bool createDirectoryAtPath_attributes_( + objc.NSString path, objc.NSDictionary attributes) { + return _objc_msgSend_302( + this.pointer, + _sel_createDirectoryAtPath_attributes_, + path.pointer, + attributes.pointer); + } + + /// linkPath:toPath:handler: + bool linkPath_toPath_handler_( + objc.NSString src, objc.NSString dest, objc.ObjCObjectBase? handler) { + return _objc_msgSend_303(this.pointer, _sel_linkPath_toPath_handler_, + src.pointer, dest.pointer, handler?.pointer ?? ffi.nullptr); + } + + /// copyPath:toPath:handler: + bool copyPath_toPath_handler_( + objc.NSString src, objc.NSString dest, objc.ObjCObjectBase? handler) { + return _objc_msgSend_303(this.pointer, _sel_copyPath_toPath_handler_, + src.pointer, dest.pointer, handler?.pointer ?? ffi.nullptr); + } + + /// movePath:toPath:handler: + bool movePath_toPath_handler_( + objc.NSString src, objc.NSString dest, objc.ObjCObjectBase? handler) { + return _objc_msgSend_303(this.pointer, _sel_movePath_toPath_handler_, + src.pointer, dest.pointer, handler?.pointer ?? ffi.nullptr); + } + + /// removeFileAtPath:handler: + bool removeFileAtPath_handler_( + objc.NSString path, objc.ObjCObjectBase? handler) { + return _objc_msgSend_304(this.pointer, _sel_removeFileAtPath_handler_, + path.pointer, handler?.pointer ?? ffi.nullptr); + } + + /// currentDirectoryPath + objc.NSString get currentDirectoryPath { + final _ret = _objc_msgSend_11(this.pointer, _sel_currentDirectoryPath); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// changeCurrentDirectoryPath: + bool changeCurrentDirectoryPath_(objc.NSString path) { + return _objc_msgSend_31( + this.pointer, _sel_changeCurrentDirectoryPath_, path.pointer); + } + + /// fileExistsAtPath: + bool fileExistsAtPath_(objc.NSString path) { + return _objc_msgSend_31(this.pointer, _sel_fileExistsAtPath_, path.pointer); + } + + /// fileExistsAtPath:isDirectory: + bool fileExistsAtPath_isDirectory_( + objc.NSString path, ffi.Pointer isDirectory) { + return _objc_msgSend_305(this.pointer, _sel_fileExistsAtPath_isDirectory_, + path.pointer, isDirectory); + } + + /// isReadableFileAtPath: + bool isReadableFileAtPath_(objc.NSString path) { + return _objc_msgSend_31( + this.pointer, _sel_isReadableFileAtPath_, path.pointer); + } + + /// isWritableFileAtPath: + bool isWritableFileAtPath_(objc.NSString path) { + return _objc_msgSend_31( + this.pointer, _sel_isWritableFileAtPath_, path.pointer); + } + + /// isExecutableFileAtPath: + bool isExecutableFileAtPath_(objc.NSString path) { + return _objc_msgSend_31( + this.pointer, _sel_isExecutableFileAtPath_, path.pointer); + } + + /// isDeletableFileAtPath: + bool isDeletableFileAtPath_(objc.NSString path) { + return _objc_msgSend_31( + this.pointer, _sel_isDeletableFileAtPath_, path.pointer); + } + + /// contentsEqualAtPath:andPath: + bool contentsEqualAtPath_andPath_(objc.NSString path1, objc.NSString path2) { + return _objc_msgSend_301(this.pointer, _sel_contentsEqualAtPath_andPath_, + path1.pointer, path2.pointer); + } + + /// displayNameAtPath: + objc.NSString displayNameAtPath_(objc.NSString path) { + final _ret = + _objc_msgSend_306(this.pointer, _sel_displayNameAtPath_, path.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// componentsToDisplayForPath: + objc.NSArray? componentsToDisplayForPath_(objc.NSString path) { + final _ret = _objc_msgSend_299( + this.pointer, _sel_componentsToDisplayForPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// enumeratorAtPath: + objc.ObjCObjectBase? enumeratorAtPath_(objc.NSString path) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_enumeratorAtPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// enumeratorAtURL:includingPropertiesForKeys:options:errorHandler: + objc.ObjCObjectBase? + enumeratorAtURL_includingPropertiesForKeys_options_errorHandler_( + objc.NSURL url, + objc.NSArray? keys, + NSDirectoryEnumerationOptions mask, + ObjCBlock_bool_NSURL_NSError? handler) { + final _ret = _objc_msgSend_307( + this.pointer, + _sel_enumeratorAtURL_includingPropertiesForKeys_options_errorHandler_, + url.pointer, + keys?.pointer ?? ffi.nullptr, + mask.value, + handler?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// subpathsAtPath: + objc.NSArray? subpathsAtPath_(objc.NSString path) { + final _ret = + _objc_msgSend_299(this.pointer, _sel_subpathsAtPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// contentsAtPath: + objc.NSData? contentsAtPath_(objc.NSString path) { + final _ret = + _objc_msgSend_308(this.pointer, _sel_contentsAtPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// createFileAtPath:contents:attributes: + bool createFileAtPath_contents_attributes_( + objc.NSString path, objc.NSData? data, objc.NSDictionary? attr) { + return _objc_msgSend_309( + this.pointer, + _sel_createFileAtPath_contents_attributes_, + path.pointer, + data?.pointer ?? ffi.nullptr, + attr?.pointer ?? ffi.nullptr); + } + + /// fileSystemRepresentationWithPath: + ffi.Pointer fileSystemRepresentationWithPath_(objc.NSString path) { + return _objc_msgSend_310( + this.pointer, _sel_fileSystemRepresentationWithPath_, path.pointer); + } + + /// stringWithFileSystemRepresentation:length: + objc.NSString stringWithFileSystemRepresentation_length_( + ffi.Pointer str, int len) { + final _ret = _objc_msgSend_311(this.pointer, + _sel_stringWithFileSystemRepresentation_length_, str, len); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error: + bool + replaceItemAtURL_withItemAtURL_backupItemName_options_resultingItemURL_error_( + objc.NSURL originalItemURL, + objc.NSURL newItemURL, + objc.NSString? backupItemName, + NSFileManagerItemReplacementOptions options, + ffi.Pointer> resultingURL, + ffi.Pointer> error) { + return _objc_msgSend_312( + this.pointer, + _sel_replaceItemAtURL_withItemAtURL_backupItemName_options_resultingItemURL_error_, + originalItemURL.pointer, + newItemURL.pointer, + backupItemName?.pointer ?? ffi.nullptr, + options.value, + resultingURL, + error); + } + + /// setUbiquitous:itemAtURL:destinationURL:error: + bool setUbiquitous_itemAtURL_destinationURL_error_( + bool flag, + objc.NSURL url, + objc.NSURL destinationURL, + ffi.Pointer> error) { + return _objc_msgSend_313( + this.pointer, + _sel_setUbiquitous_itemAtURL_destinationURL_error_, + flag, + url.pointer, + destinationURL.pointer, + error); + } + + /// isUbiquitousItemAtURL: + bool isUbiquitousItemAtURL_(objc.NSURL url) { + return _objc_msgSend_314( + this.pointer, _sel_isUbiquitousItemAtURL_, url.pointer); + } + + /// startDownloadingUbiquitousItemAtURL:error: + bool startDownloadingUbiquitousItemAtURL_error_( + objc.NSURL url, ffi.Pointer> error) { + return _objc_msgSend_295(this.pointer, + _sel_startDownloadingUbiquitousItemAtURL_error_, url.pointer, error); + } + + /// evictUbiquitousItemAtURL:error: + bool evictUbiquitousItemAtURL_error_( + objc.NSURL url, ffi.Pointer> error) { + return _objc_msgSend_295( + this.pointer, _sel_evictUbiquitousItemAtURL_error_, url.pointer, error); + } + + /// URLForUbiquityContainerIdentifier: + objc.NSURL? URLForUbiquityContainerIdentifier_( + objc.NSString? containerIdentifier) { + final _ret = _objc_msgSend_315( + this.pointer, + _sel_URLForUbiquityContainerIdentifier_, + containerIdentifier?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// URLForPublishingUbiquitousItemAtURL:expirationDate:error: + objc.NSURL? URLForPublishingUbiquitousItemAtURL_expirationDate_error_( + objc.NSURL url, + ffi.Pointer> outDate, + ffi.Pointer> error) { + final _ret = _objc_msgSend_316( + this.pointer, + _sel_URLForPublishingUbiquitousItemAtURL_expirationDate_error_, + url.pointer, + outDate, + error); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// ubiquityIdentityToken + objc.ObjCObjectBase? get ubiquityIdentityToken { + final _ret = _objc_msgSend_83(this.pointer, _sel_ubiquityIdentityToken); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// getFileProviderServicesForItemAtURL:completionHandler: + void getFileProviderServicesForItemAtURL_completionHandler_(objc.NSURL url, + ObjCBlock_ffiVoid_NSDictionary_NSError completionHandler) { + _objc_msgSend_317( + this.pointer, + _sel_getFileProviderServicesForItemAtURL_completionHandler_, + url.pointer, + completionHandler.pointer); + } + + /// containerURLForSecurityApplicationGroupIdentifier: + objc.NSURL? containerURLForSecurityApplicationGroupIdentifier_( + objc.NSString groupIdentifier) { + final _ret = _objc_msgSend_41( + this.pointer, + _sel_containerURLForSecurityApplicationGroupIdentifier_, + groupIdentifier.pointer); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// homeDirectoryForCurrentUser + objc.NSURL get homeDirectoryForCurrentUser { + final _ret = + _objc_msgSend_40(this.pointer, _sel_homeDirectoryForCurrentUser); + return objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// temporaryDirectory + objc.NSURL get temporaryDirectory { + final _ret = _objc_msgSend_40(this.pointer, _sel_temporaryDirectory); + return objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// homeDirectoryForUser: + objc.NSURL? homeDirectoryForUser_(objc.NSString userName) { + final _ret = _objc_msgSend_41( + this.pointer, _sel_homeDirectoryForUser_, userName.pointer); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSFileManager init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSFileManager.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSFileManager new1() { + final _ret = _objc_msgSend_19(_class_NSFileManager, _sel_new); + return NSFileManager.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSFileManager allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSFileManager, _sel_allocWithZone_, zone); + return NSFileManager.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSFileManager alloc() { + final _ret = _objc_msgSend_19(_class_NSFileManager, _sel_alloc); + return NSFileManager.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSFileManager, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSFileManager, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSFileManager, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSFileManager, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSFileManager, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSFileManager, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSFileManager, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSFileManager, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSFileManager, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSFileManager = objc.getClass("classes.NSFileManager"); +late final _sel_defaultManager = objc.registerName("defaultManager"); +final _objc_msgSend_278 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); + +enum NSVolumeEnumerationOptions { + NSVolumeEnumerationSkipHiddenVolumes(2), + NSVolumeEnumerationProduceFileReferenceURLs(4); + + final int value; + const NSVolumeEnumerationOptions(this.value); + + static NSVolumeEnumerationOptions fromValue(int value) => switch (value) { + 2 => NSVolumeEnumerationSkipHiddenVolumes, + 4 => NSVolumeEnumerationProduceFileReferenceURLs, + _ => throw ArgumentError( + "Unknown value for NSVolumeEnumerationOptions: $value"), + }; +} + +late final _sel_mountedVolumeURLsIncludingResourceValuesForKeys_options_ = objc + .registerName("mountedVolumeURLsIncludingResourceValuesForKeys:options:"); +final _objc_msgSend_279 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); + +enum NSFileManagerUnmountOptions { + NSFileManagerUnmountAllPartitionsAndEjectDisk(1), + NSFileManagerUnmountWithoutUI(2); + + final int value; + const NSFileManagerUnmountOptions(this.value); + + static NSFileManagerUnmountOptions fromValue(int value) => switch (value) { + 1 => NSFileManagerUnmountAllPartitionsAndEjectDisk, + 2 => NSFileManagerUnmountWithoutUI, + _ => throw ArgumentError( + "Unknown value for NSFileManagerUnmountOptions: $value"), + }; +} + +void _ObjCBlock_ffiVoid_NSError_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSError_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSError extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSError._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSError.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSError_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSError.fromFunction(void Function(objc.NSError?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSError_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSError.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSError.listener(void Function(objc.NSError?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSError(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSError_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSError.castFromPointer(arg0, + retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(objc.NSError? arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr); +} + +late final _sel_unmountVolumeAtURL_options_completionHandler_ = + objc.registerName("unmountVolumeAtURL:options:completionHandler:"); +final _objc_msgSend_280 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); + +enum NSDirectoryEnumerationOptions { + NSDirectoryEnumerationSkipsSubdirectoryDescendants(1), + NSDirectoryEnumerationSkipsPackageDescendants(2), + NSDirectoryEnumerationSkipsHiddenFiles(4), + NSDirectoryEnumerationIncludesDirectoriesPostOrder(8), + NSDirectoryEnumerationProducesRelativePathURLs(16); + + final int value; + const NSDirectoryEnumerationOptions(this.value); + + static NSDirectoryEnumerationOptions fromValue(int value) => switch (value) { + 1 => NSDirectoryEnumerationSkipsSubdirectoryDescendants, + 2 => NSDirectoryEnumerationSkipsPackageDescendants, + 4 => NSDirectoryEnumerationSkipsHiddenFiles, + 8 => NSDirectoryEnumerationIncludesDirectoriesPostOrder, + 16 => NSDirectoryEnumerationProducesRelativePathURLs, + _ => throw ArgumentError( + "Unknown value for NSDirectoryEnumerationOptions: $value"), + }; +} + +late final _sel_contentsOfDirectoryAtURL_includingPropertiesForKeys_options_error_ = + objc.registerName( + "contentsOfDirectoryAtURL:includingPropertiesForKeys:options:error:"); +final _objc_msgSend_281 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); + +enum NSSearchPathDirectory { + NSApplicationDirectory(1), + NSDemoApplicationDirectory(2), + NSDeveloperApplicationDirectory(3), + NSAdminApplicationDirectory(4), + NSLibraryDirectory(5), + NSDeveloperDirectory(6), + NSUserDirectory(7), + NSDocumentationDirectory(8), + NSDocumentDirectory(9), + NSCoreServiceDirectory(10), + NSAutosavedInformationDirectory(11), + NSDesktopDirectory(12), + NSCachesDirectory(13), + NSApplicationSupportDirectory(14), + NSDownloadsDirectory(15), + NSInputMethodsDirectory(16), + NSMoviesDirectory(17), + NSMusicDirectory(18), + NSPicturesDirectory(19), + NSPrinterDescriptionDirectory(20), + NSSharedPublicDirectory(21), + NSPreferencePanesDirectory(22), + NSApplicationScriptsDirectory(23), + NSItemReplacementDirectory(99), + NSAllApplicationsDirectory(100), + NSAllLibrariesDirectory(101), + NSTrashDirectory(102); + + final int value; + const NSSearchPathDirectory(this.value); + + static NSSearchPathDirectory fromValue(int value) => switch (value) { + 1 => NSApplicationDirectory, + 2 => NSDemoApplicationDirectory, + 3 => NSDeveloperApplicationDirectory, + 4 => NSAdminApplicationDirectory, + 5 => NSLibraryDirectory, + 6 => NSDeveloperDirectory, + 7 => NSUserDirectory, + 8 => NSDocumentationDirectory, + 9 => NSDocumentDirectory, + 10 => NSCoreServiceDirectory, + 11 => NSAutosavedInformationDirectory, + 12 => NSDesktopDirectory, + 13 => NSCachesDirectory, + 14 => NSApplicationSupportDirectory, + 15 => NSDownloadsDirectory, + 16 => NSInputMethodsDirectory, + 17 => NSMoviesDirectory, + 18 => NSMusicDirectory, + 19 => NSPicturesDirectory, + 20 => NSPrinterDescriptionDirectory, + 21 => NSSharedPublicDirectory, + 22 => NSPreferencePanesDirectory, + 23 => NSApplicationScriptsDirectory, + 99 => NSItemReplacementDirectory, + 100 => NSAllApplicationsDirectory, + 101 => NSAllLibrariesDirectory, + 102 => NSTrashDirectory, + _ => throw ArgumentError( + "Unknown value for NSSearchPathDirectory: $value"), + }; +} + +enum NSSearchPathDomainMask { + NSUserDomainMask(1), + NSLocalDomainMask(2), + NSNetworkDomainMask(4), + NSSystemDomainMask(8), + NSAllDomainsMask(65535); + + final int value; + const NSSearchPathDomainMask(this.value); + + static NSSearchPathDomainMask fromValue(int value) => switch (value) { + 1 => NSUserDomainMask, + 2 => NSLocalDomainMask, + 4 => NSNetworkDomainMask, + 8 => NSSystemDomainMask, + 65535 => NSAllDomainsMask, + _ => throw ArgumentError( + "Unknown value for NSSearchPathDomainMask: $value"), + }; +} + +late final _sel_URLsForDirectory_inDomains_ = + objc.registerName("URLsForDirectory:inDomains:"); +final _objc_msgSend_282 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int, int)>(); +late final _sel_URLForDirectory_inDomain_appropriateForURL_create_error_ = objc + .registerName("URLForDirectory:inDomain:appropriateForURL:create:error:"); +final _objc_msgSend_283 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Pointer, + ffi.Bool, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer, + bool, + ffi.Pointer>)>(); + +enum NSURLRelationship { + NSURLRelationshipContains(0), + NSURLRelationshipSame(1), + NSURLRelationshipOther(2); + + final int value; + const NSURLRelationship(this.value); + + static NSURLRelationship fromValue(int value) => switch (value) { + 0 => NSURLRelationshipContains, + 1 => NSURLRelationshipSame, + 2 => NSURLRelationshipOther, + _ => throw ArgumentError("Unknown value for NSURLRelationship: $value"), + }; +} + +late final _sel_getRelationship_ofDirectoryAtURL_toItemAtURL_error_ = + objc.registerName("getRelationship:ofDirectoryAtURL:toItemAtURL:error:"); +final _objc_msgSend_284 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_getRelationship_ofDirectory_inDomain_toItemAtURL_error_ = objc + .registerName("getRelationship:ofDirectory:inDomain:toItemAtURL:error:"); +final _objc_msgSend_285 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_createDirectoryAtURL_withIntermediateDirectories_attributes_error_ = + objc.registerName( + "createDirectoryAtURL:withIntermediateDirectories:attributes:error:"); +final _objc_msgSend_286 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_createSymbolicLinkAtURL_withDestinationURL_error_ = + objc.registerName("createSymbolicLinkAtURL:withDestinationURL:error:"); +final _objc_msgSend_287 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_setAttributes_ofItemAtPath_error_ = + objc.registerName("setAttributes:ofItemAtPath:error:"); +final _objc_msgSend_288 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_createDirectoryAtPath_withIntermediateDirectories_attributes_error_ = + objc.registerName( + "createDirectoryAtPath:withIntermediateDirectories:attributes:error:"); +final _objc_msgSend_289 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_contentsOfDirectoryAtPath_error_ = + objc.registerName("contentsOfDirectoryAtPath:error:"); +final _objc_msgSend_290 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_subpathsOfDirectoryAtPath_error_ = + objc.registerName("subpathsOfDirectoryAtPath:error:"); +late final _sel_attributesOfItemAtPath_error_ = + objc.registerName("attributesOfItemAtPath:error:"); +final _objc_msgSend_291 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_attributesOfFileSystemForPath_error_ = + objc.registerName("attributesOfFileSystemForPath:error:"); +late final _sel_createSymbolicLinkAtPath_withDestinationPath_error_ = + objc.registerName("createSymbolicLinkAtPath:withDestinationPath:error:"); +final _objc_msgSend_292 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_destinationOfSymbolicLinkAtPath_error_ = + objc.registerName("destinationOfSymbolicLinkAtPath:error:"); +final _objc_msgSend_293 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_copyItemAtPath_toPath_error_ = + objc.registerName("copyItemAtPath:toPath:error:"); +late final _sel_moveItemAtPath_toPath_error_ = + objc.registerName("moveItemAtPath:toPath:error:"); +late final _sel_linkItemAtPath_toPath_error_ = + objc.registerName("linkItemAtPath:toPath:error:"); +late final _sel_removeItemAtPath_error_ = + objc.registerName("removeItemAtPath:error:"); +final _objc_msgSend_294 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_copyItemAtURL_toURL_error_ = + objc.registerName("copyItemAtURL:toURL:error:"); +late final _sel_moveItemAtURL_toURL_error_ = + objc.registerName("moveItemAtURL:toURL:error:"); +late final _sel_linkItemAtURL_toURL_error_ = + objc.registerName("linkItemAtURL:toURL:error:"); +late final _sel_removeItemAtURL_error_ = + objc.registerName("removeItemAtURL:error:"); +final _objc_msgSend_295 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_trashItemAtURL_resultingItemURL_error_ = + objc.registerName("trashItemAtURL:resultingItemURL:error:"); +final _objc_msgSend_296 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>(); +late final _sel_fileAttributesAtPath_traverseLink_ = + objc.registerName("fileAttributesAtPath:traverseLink:"); +final _objc_msgSend_297 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_changeFileAttributes_atPath_ = + objc.registerName("changeFileAttributes:atPath:"); +final _objc_msgSend_298 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_directoryContentsAtPath_ = + objc.registerName("directoryContentsAtPath:"); +final _objc_msgSend_299 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_fileSystemAttributesAtPath_ = + objc.registerName("fileSystemAttributesAtPath:"); +final _objc_msgSend_300 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_pathContentOfSymbolicLinkAtPath_ = + objc.registerName("pathContentOfSymbolicLinkAtPath:"); +late final _sel_createSymbolicLinkAtPath_pathContent_ = + objc.registerName("createSymbolicLinkAtPath:pathContent:"); +final _objc_msgSend_301 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_createDirectoryAtPath_attributes_ = + objc.registerName("createDirectoryAtPath:attributes:"); +final _objc_msgSend_302 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_linkPath_toPath_handler_ = + objc.registerName("linkPath:toPath:handler:"); +final _objc_msgSend_303 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_copyPath_toPath_handler_ = + objc.registerName("copyPath:toPath:handler:"); +late final _sel_movePath_toPath_handler_ = + objc.registerName("movePath:toPath:handler:"); +late final _sel_removeFileAtPath_handler_ = + objc.registerName("removeFileAtPath:handler:"); +final _objc_msgSend_304 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_currentDirectoryPath = + objc.registerName("currentDirectoryPath"); +late final _sel_changeCurrentDirectoryPath_ = + objc.registerName("changeCurrentDirectoryPath:"); +late final _sel_fileExistsAtPath_ = objc.registerName("fileExistsAtPath:"); +late final _sel_fileExistsAtPath_isDirectory_ = + objc.registerName("fileExistsAtPath:isDirectory:"); +final _objc_msgSend_305 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_isReadableFileAtPath_ = + objc.registerName("isReadableFileAtPath:"); +late final _sel_isWritableFileAtPath_ = + objc.registerName("isWritableFileAtPath:"); +late final _sel_isExecutableFileAtPath_ = + objc.registerName("isExecutableFileAtPath:"); +late final _sel_isDeletableFileAtPath_ = + objc.registerName("isDeletableFileAtPath:"); +late final _sel_contentsEqualAtPath_andPath_ = + objc.registerName("contentsEqualAtPath:andPath:"); +late final _sel_displayNameAtPath_ = objc.registerName("displayNameAtPath:"); +final _objc_msgSend_306 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_componentsToDisplayForPath_ = + objc.registerName("componentsToDisplayForPath:"); +late final _sel_enumeratorAtPath_ = objc.registerName("enumeratorAtPath:"); +bool _ObjCBlock_bool_NSURL_NSError_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer arg0, + ffi.Pointer arg1)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer)>()(arg0, arg1); +bool _ObjCBlock_bool_NSURL_NSError_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1) => + (objc.getBlockClosure(block) as bool Function(ffi.Pointer, + ffi.Pointer))(arg0, arg1); + +class ObjCBlock_bool_NSURL_NSError extends objc.ObjCBlockBase { + ObjCBlock_bool_NSURL_NSError._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_bool_NSURL_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_bool_NSURL_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_bool_NSURL_NSError.fromFunctionPointer( + ffi.Pointer arg0, ffi.Pointer arg1)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_bool_NSURL_NSError_fnPtrTrampoline, false) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_bool_NSURL_NSError.fromFunction( + bool Function(objc.NSURL, objc.NSError) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_bool_NSURL_NSError_closureTrampoline, false) + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1) => fn( + objc.NSURL.castFromPointer(arg0, retain: true, release: true), + objc.NSError.castFromPointer(arg1, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + bool call(objc.NSURL arg0, objc.NSError arg1) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()( + pointer, arg0.pointer, arg1.pointer); +} + +late final _sel_enumeratorAtURL_includingPropertiesForKeys_options_errorHandler_ = + objc.registerName( + "enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:"); +final _objc_msgSend_307 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_subpathsAtPath_ = objc.registerName("subpathsAtPath:"); +late final _sel_contentsAtPath_ = objc.registerName("contentsAtPath:"); +final _objc_msgSend_308 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_createFileAtPath_contents_attributes_ = + objc.registerName("createFileAtPath:contents:attributes:"); +final _objc_msgSend_309 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_fileSystemRepresentationWithPath_ = + objc.registerName("fileSystemRepresentationWithPath:"); +final _objc_msgSend_310 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_stringWithFileSystemRepresentation_length_ = + objc.registerName("stringWithFileSystemRepresentation:length:"); +final _objc_msgSend_311 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer, int)>(); + +enum NSFileManagerItemReplacementOptions { + NSFileManagerItemReplacementUsingNewMetadataOnly(1), + NSFileManagerItemReplacementWithoutDeletingBackupItem(2); + + final int value; + const NSFileManagerItemReplacementOptions(this.value); + + static NSFileManagerItemReplacementOptions fromValue(int value) => + switch (value) { + 1 => NSFileManagerItemReplacementUsingNewMetadataOnly, + 2 => NSFileManagerItemReplacementWithoutDeletingBackupItem, + _ => throw ArgumentError( + "Unknown value for NSFileManagerItemReplacementOptions: $value"), + }; +} + +late final _sel_replaceItemAtURL_withItemAtURL_backupItemName_options_resultingItemURL_error_ = + objc.registerName( + "replaceItemAtURL:withItemAtURL:backupItemName:options:resultingItemURL:error:"); +final _objc_msgSend_312 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>, + ffi.Pointer>)>(); +late final _sel_setUbiquitous_itemAtURL_destinationURL_error_ = + objc.registerName("setUbiquitous:itemAtURL:destinationURL:error:"); +final _objc_msgSend_313 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + bool, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_isUbiquitousItemAtURL_ = + objc.registerName("isUbiquitousItemAtURL:"); +final _objc_msgSend_314 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_startDownloadingUbiquitousItemAtURL_error_ = + objc.registerName("startDownloadingUbiquitousItemAtURL:error:"); +late final _sel_evictUbiquitousItemAtURL_error_ = + objc.registerName("evictUbiquitousItemAtURL:error:"); +late final _sel_URLForUbiquityContainerIdentifier_ = + objc.registerName("URLForUbiquityContainerIdentifier:"); +final _objc_msgSend_315 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_URLForPublishingUbiquitousItemAtURL_expirationDate_error_ = objc + .registerName("URLForPublishingUbiquitousItemAtURL:expirationDate:error:"); +final _objc_msgSend_316 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>(); +late final _sel_ubiquityIdentityToken = + objc.registerName("ubiquityIdentityToken"); +void _ObjCBlock_ffiVoid_NSDictionary_NSError_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Pointer arg1)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer)>()(arg0, arg1); +void _ObjCBlock_ffiVoid_NSDictionary_NSError_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1) => + (objc.getBlockClosure(block) as void Function(ffi.Pointer, + ffi.Pointer))(arg0, arg1); + +class ObjCBlock_ffiVoid_NSDictionary_NSError extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSDictionary_NSError._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSDictionary_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSDictionary_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDictionary_NSError.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Pointer arg1)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDictionary_NSError_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDictionary_NSError.fromFunction( + void Function(objc.NSDictionary?, objc.NSError?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDictionary_NSError_closureTrampoline) + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1) => fn( + arg0.address == 0 + ? null + : objc.NSDictionary.castFromPointer(arg0, retain: true, release: true), + arg1.address == 0 ? null : objc.NSError.castFromPointer(arg1, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSDictionary_NSError.listener( + void Function(objc.NSDictionary?, objc.NSError?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSDictionary_NSError(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= + ffi.NativeCallable, ffi.Pointer, ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSDictionary_NSError_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1) => fn( + arg0.address == 0 + ? null + : objc.NSDictionary.castFromPointer(arg0, + retain: false, release: true), + arg1.address == 0 + ? null + : objc.NSError.castFromPointer(arg1, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(objc.NSDictionary? arg0, objc.NSError? arg1) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr, arg1?.pointer ?? ffi.nullptr); +} + +late final _sel_getFileProviderServicesForItemAtURL_completionHandler_ = + objc.registerName("getFileProviderServicesForItemAtURL:completionHandler:"); +final _objc_msgSend_317 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_containerURLForSecurityApplicationGroupIdentifier_ = + objc.registerName("containerURLForSecurityApplicationGroupIdentifier:"); +late final _sel_homeDirectoryForCurrentUser = + objc.registerName("homeDirectoryForCurrentUser"); +late final _sel_temporaryDirectory = objc.registerName("temporaryDirectory"); +late final _sel_homeDirectoryForUser_ = + objc.registerName("homeDirectoryForUser:"); + +/// NSHTTPCookieStorage +class NSHTTPCookieStorage extends objc.NSObject { + NSHTTPCookieStorage._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSHTTPCookieStorage] that points to the same underlying object as [other]. + NSHTTPCookieStorage.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSHTTPCookieStorage] that wraps the given raw object pointer. + NSHTTPCookieStorage.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSHTTPCookieStorage]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSHTTPCookieStorage); + } + + /// sharedHTTPCookieStorage + static NSHTTPCookieStorage getSharedHTTPCookieStorage() { + final _ret = _objc_msgSend_318( + _class_NSHTTPCookieStorage, _sel_sharedHTTPCookieStorage); + return NSHTTPCookieStorage.castFromPointer(_ret, + retain: true, release: true); + } + + /// sharedCookieStorageForGroupContainerIdentifier: + static NSHTTPCookieStorage sharedCookieStorageForGroupContainerIdentifier_( + objc.NSString identifier) { + final _ret = _objc_msgSend_319( + _class_NSHTTPCookieStorage, + _sel_sharedCookieStorageForGroupContainerIdentifier_, + identifier.pointer); + return NSHTTPCookieStorage.castFromPointer(_ret, + retain: true, release: true); + } + + /// cookies + objc.NSArray? get cookies { + final _ret = _objc_msgSend_86(this.pointer, _sel_cookies); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setCookie: + void setCookie_(NSHTTPCookie cookie) { + _objc_msgSend_324(this.pointer, _sel_setCookie_, cookie.pointer); + } + + /// deleteCookie: + void deleteCookie_(NSHTTPCookie cookie) { + _objc_msgSend_324(this.pointer, _sel_deleteCookie_, cookie.pointer); + } + + /// removeCookiesSinceDate: + void removeCookiesSinceDate_(objc.NSDate date) { + _objc_msgSend_255(this.pointer, _sel_removeCookiesSinceDate_, date.pointer); + } + + /// cookiesForURL: + objc.NSArray? cookiesForURL_(objc.NSURL URL) { + final _ret = + _objc_msgSend_325(this.pointer, _sel_cookiesForURL_, URL.pointer); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setCookies:forURL:mainDocumentURL: + void setCookies_forURL_mainDocumentURL_( + objc.NSArray cookies, objc.NSURL? URL, objc.NSURL? mainDocumentURL) { + _objc_msgSend_326( + this.pointer, + _sel_setCookies_forURL_mainDocumentURL_, + cookies.pointer, + URL?.pointer ?? ffi.nullptr, + mainDocumentURL?.pointer ?? ffi.nullptr); + } + + /// cookieAcceptPolicy + NSHTTPCookieAcceptPolicy get cookieAcceptPolicy { + final _ret = _objc_msgSend_327(this.pointer, _sel_cookieAcceptPolicy); + return NSHTTPCookieAcceptPolicy.fromValue(_ret); + } + + /// setCookieAcceptPolicy: + set cookieAcceptPolicy(NSHTTPCookieAcceptPolicy value) { + return _objc_msgSend_328( + this.pointer, _sel_setCookieAcceptPolicy_, value.value); + } + + /// sortedCookiesUsingDescriptors: + objc.NSArray sortedCookiesUsingDescriptors_(objc.NSArray sortOrder) { + final _ret = _objc_msgSend_84( + this.pointer, _sel_sortedCookiesUsingDescriptors_, sortOrder.pointer); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// storeCookies:forTask: + void storeCookies_forTask_(objc.NSArray cookies, NSURLSessionTask task) { + _objc_msgSend_360(this.pointer, _sel_storeCookies_forTask_, cookies.pointer, + task.pointer); + } + + /// getCookiesForTask:completionHandler: + void getCookiesForTask_completionHandler_( + NSURLSessionTask task, ObjCBlock_ffiVoid_NSArray completionHandler) { + _objc_msgSend_361(this.pointer, _sel_getCookiesForTask_completionHandler_, + task.pointer, completionHandler.pointer); + } + + /// init + NSHTTPCookieStorage init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSHTTPCookieStorage.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSHTTPCookieStorage new1() { + final _ret = _objc_msgSend_19(_class_NSHTTPCookieStorage, _sel_new); + return NSHTTPCookieStorage.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSHTTPCookieStorage allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSHTTPCookieStorage, _sel_allocWithZone_, zone); + return NSHTTPCookieStorage.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSHTTPCookieStorage alloc() { + final _ret = _objc_msgSend_19(_class_NSHTTPCookieStorage, _sel_alloc); + return NSHTTPCookieStorage.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSHTTPCookieStorage, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSHTTPCookieStorage, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSHTTPCookieStorage, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSHTTPCookieStorage, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSHTTPCookieStorage, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSHTTPCookieStorage, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSHTTPCookieStorage, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSHTTPCookieStorage, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSHTTPCookieStorage, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSHTTPCookieStorage = + objc.getClass("classes.NSHTTPCookieStorage"); +late final _sel_sharedHTTPCookieStorage = + objc.registerName("sharedHTTPCookieStorage"); +final _objc_msgSend_318 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_sharedCookieStorageForGroupContainerIdentifier_ = + objc.registerName("sharedCookieStorageForGroupContainerIdentifier:"); +final _objc_msgSend_319 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_cookies = objc.registerName("cookies"); + +/// NSHTTPCookie +class NSHTTPCookie extends objc.NSObject { + NSHTTPCookie._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSHTTPCookie] that points to the same underlying object as [other]. + NSHTTPCookie.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSHTTPCookie] that wraps the given raw object pointer. + NSHTTPCookie.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSHTTPCookie]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSHTTPCookie); + } + + /// initWithProperties: + NSHTTPCookie? initWithProperties_(objc.NSDictionary properties) { + final _ret = _objc_msgSend_320( + this.pointer, _sel_initWithProperties_, properties.pointer); + return _ret.address == 0 + ? null + : NSHTTPCookie.castFromPointer(_ret, retain: true, release: true); + } + + /// cookieWithProperties: + static NSHTTPCookie? cookieWithProperties_(objc.NSDictionary properties) { + final _ret = _objc_msgSend_321( + _class_NSHTTPCookie, _sel_cookieWithProperties_, properties.pointer); + return _ret.address == 0 + ? null + : NSHTTPCookie.castFromPointer(_ret, retain: true, release: true); + } + + /// requestHeaderFieldsWithCookies: + static objc.NSDictionary requestHeaderFieldsWithCookies_( + objc.NSArray cookies) { + final _ret = _objc_msgSend_322(_class_NSHTTPCookie, + _sel_requestHeaderFieldsWithCookies_, cookies.pointer); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// cookiesWithResponseHeaderFields:forURL: + static objc.NSArray cookiesWithResponseHeaderFields_forURL_( + objc.NSDictionary headerFields, objc.NSURL URL) { + final _ret = _objc_msgSend_323( + _class_NSHTTPCookie, + _sel_cookiesWithResponseHeaderFields_forURL_, + headerFields.pointer, + URL.pointer); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// properties + objc.NSDictionary? get properties { + final _ret = _objc_msgSend_82(this.pointer, _sel_properties); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// version + int get version { + return _objc_msgSend_57(this.pointer, _sel_version); + } + + /// name + objc.NSString get name { + final _ret = _objc_msgSend_11(this.pointer, _sel_name); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// value + objc.NSString get value { + final _ret = _objc_msgSend_11(this.pointer, _sel_value); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// expiresDate + objc.NSDate? get expiresDate { + final _ret = _objc_msgSend_124(this.pointer, _sel_expiresDate); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// isSessionOnly + bool get sessionOnly { + return _objc_msgSend_13(this.pointer, _sel_isSessionOnly); + } + + /// domain + objc.NSString get domain { + final _ret = _objc_msgSend_11(this.pointer, _sel_domain); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// path + objc.NSString get path { + final _ret = _objc_msgSend_11(this.pointer, _sel_path); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// isSecure + bool get secure { + return _objc_msgSend_13(this.pointer, _sel_isSecure); + } + + /// isHTTPOnly + bool get HTTPOnly { + return _objc_msgSend_13(this.pointer, _sel_isHTTPOnly); + } + + /// comment + objc.NSString? get comment { + final _ret = _objc_msgSend_20(this.pointer, _sel_comment); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// commentURL + objc.NSURL? get commentURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_commentURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// portList + objc.NSArray? get portList { + final _ret = _objc_msgSend_86(this.pointer, _sel_portList); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// sameSitePolicy + objc.NSString? get sameSitePolicy { + final _ret = _objc_msgSend_20(this.pointer, _sel_sameSitePolicy); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSHTTPCookie init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSHTTPCookie.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSHTTPCookie new1() { + final _ret = _objc_msgSend_19(_class_NSHTTPCookie, _sel_new); + return NSHTTPCookie.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSHTTPCookie allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSHTTPCookie, _sel_allocWithZone_, zone); + return NSHTTPCookie.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSHTTPCookie alloc() { + final _ret = _objc_msgSend_19(_class_NSHTTPCookie, _sel_alloc); + return NSHTTPCookie.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSHTTPCookie, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSHTTPCookie, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSHTTPCookie, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSHTTPCookie, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSHTTPCookie, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSHTTPCookie, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSHTTPCookie, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSHTTPCookie, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSHTTPCookie, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSHTTPCookie = objc.getClass("classes.NSHTTPCookie"); +late final _sel_initWithProperties_ = objc.registerName("initWithProperties:"); +final _objc_msgSend_320 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_cookieWithProperties_ = + objc.registerName("cookieWithProperties:"); +final _objc_msgSend_321 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_requestHeaderFieldsWithCookies_ = + objc.registerName("requestHeaderFieldsWithCookies:"); +final _objc_msgSend_322 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_cookiesWithResponseHeaderFields_forURL_ = + objc.registerName("cookiesWithResponseHeaderFields:forURL:"); +final _objc_msgSend_323 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_properties = objc.registerName("properties"); +late final _sel_version = objc.registerName("version"); +late final _sel_value = objc.registerName("value"); +late final _sel_expiresDate = objc.registerName("expiresDate"); +late final _sel_isSessionOnly = objc.registerName("isSessionOnly"); +late final _sel_domain = objc.registerName("domain"); +late final _sel_path = objc.registerName("path"); +late final _sel_isSecure = objc.registerName("isSecure"); +late final _sel_isHTTPOnly = objc.registerName("isHTTPOnly"); +late final _sel_comment = objc.registerName("comment"); +late final _sel_commentURL = objc.registerName("commentURL"); +late final _sel_portList = objc.registerName("portList"); +late final _sel_sameSitePolicy = objc.registerName("sameSitePolicy"); +late final _sel_setCookie_ = objc.registerName("setCookie:"); +final _objc_msgSend_324 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_deleteCookie_ = objc.registerName("deleteCookie:"); +late final _sel_removeCookiesSinceDate_ = + objc.registerName("removeCookiesSinceDate:"); +late final _sel_cookiesForURL_ = objc.registerName("cookiesForURL:"); +final _objc_msgSend_325 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCookies_forURL_mainDocumentURL_ = + objc.registerName("setCookies:forURL:mainDocumentURL:"); +final _objc_msgSend_326 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +enum NSHTTPCookieAcceptPolicy { + NSHTTPCookieAcceptPolicyAlways(0), + NSHTTPCookieAcceptPolicyNever(1), + NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain(2); + + final int value; + const NSHTTPCookieAcceptPolicy(this.value); + + static NSHTTPCookieAcceptPolicy fromValue(int value) => switch (value) { + 0 => NSHTTPCookieAcceptPolicyAlways, + 1 => NSHTTPCookieAcceptPolicyNever, + 2 => NSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomain, + _ => throw ArgumentError( + "Unknown value for NSHTTPCookieAcceptPolicy: $value"), + }; +} + +late final _sel_cookieAcceptPolicy = objc.registerName("cookieAcceptPolicy"); +final _objc_msgSend_327 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCookieAcceptPolicy_ = + objc.registerName("setCookieAcceptPolicy:"); +final _objc_msgSend_328 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_sortedCookiesUsingDescriptors_ = + objc.registerName("sortedCookiesUsingDescriptors:"); + +/// NSURLSessionTask +class NSURLSessionTask extends objc.NSObject { + NSURLSessionTask._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionTask] that points to the same underlying object as [other]. + NSURLSessionTask.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionTask] that wraps the given raw object pointer. + NSURLSessionTask.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionTask]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionTask); + } + + /// taskIdentifier + int get taskIdentifier { + return _objc_msgSend_57(this.pointer, _sel_taskIdentifier); + } + + /// originalRequest + NSURLRequest? get originalRequest { + final _ret = _objc_msgSend_352(this.pointer, _sel_originalRequest); + return _ret.address == 0 + ? null + : NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// currentRequest + NSURLRequest? get currentRequest { + final _ret = _objc_msgSend_352(this.pointer, _sel_currentRequest); + return _ret.address == 0 + ? null + : NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// response + NSURLResponse? get response { + final _ret = _objc_msgSend_355(this.pointer, _sel_response); + return _ret.address == 0 + ? null + : NSURLResponse.castFromPointer(_ret, retain: true, release: true); + } + + /// delegate + objc.ObjCObjectBase? get delegate { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setDelegate: + set delegate(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setDelegate_, value?.pointer ?? ffi.nullptr); + } + + /// progress + NSProgress get progress { + final _ret = _objc_msgSend_356(this.pointer, _sel_progress); + return NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// earliestBeginDate + objc.NSDate? get earliestBeginDate { + final _ret = _objc_msgSend_124(this.pointer, _sel_earliestBeginDate); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// setEarliestBeginDate: + set earliestBeginDate(objc.NSDate? value) { + return _objc_msgSend_170(this.pointer, _sel_setEarliestBeginDate_, + value?.pointer ?? ffi.nullptr); + } + + /// countOfBytesClientExpectsToSend + int get countOfBytesClientExpectsToSend { + return _objc_msgSend_9(this.pointer, _sel_countOfBytesClientExpectsToSend); + } + + /// setCountOfBytesClientExpectsToSend: + set countOfBytesClientExpectsToSend(int value) { + return _objc_msgSend_10( + this.pointer, _sel_setCountOfBytesClientExpectsToSend_, value); + } + + /// countOfBytesClientExpectsToReceive + int get countOfBytesClientExpectsToReceive { + return _objc_msgSend_9( + this.pointer, _sel_countOfBytesClientExpectsToReceive); + } + + /// setCountOfBytesClientExpectsToReceive: + set countOfBytesClientExpectsToReceive(int value) { + return _objc_msgSend_10( + this.pointer, _sel_setCountOfBytesClientExpectsToReceive_, value); + } + + /// countOfBytesSent + int get countOfBytesSent { + return _objc_msgSend_9(this.pointer, _sel_countOfBytesSent); + } + + /// countOfBytesReceived + int get countOfBytesReceived { + return _objc_msgSend_9(this.pointer, _sel_countOfBytesReceived); + } + + /// countOfBytesExpectedToSend + int get countOfBytesExpectedToSend { + return _objc_msgSend_9(this.pointer, _sel_countOfBytesExpectedToSend); + } + + /// countOfBytesExpectedToReceive + int get countOfBytesExpectedToReceive { + return _objc_msgSend_9(this.pointer, _sel_countOfBytesExpectedToReceive); + } + + /// taskDescription + objc.NSString? get taskDescription { + final _ret = _objc_msgSend_20(this.pointer, _sel_taskDescription); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setTaskDescription: + set taskDescription(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setTaskDescription_, value?.pointer ?? ffi.nullptr); + } + + /// cancel + void cancel() { + _objc_msgSend_7(this.pointer, _sel_cancel); + } + + /// state + NSURLSessionTaskState get state { + final _ret = _objc_msgSend_357(this.pointer, _sel_state); + return NSURLSessionTaskState.fromValue(_ret); + } + + /// error + objc.NSError? get error { + final _ret = _objc_msgSend_341(this.pointer, _sel_error); + return _ret.address == 0 + ? null + : objc.NSError.castFromPointer(_ret, retain: true, release: true); + } + + /// suspend + void suspend() { + _objc_msgSend_7(this.pointer, _sel_suspend); + } + + /// resume + void resume() { + _objc_msgSend_7(this.pointer, _sel_resume); + } + + /// priority + double get priority { + return objc.useMsgSendVariants + ? _objc_msgSend_358Fpret(this.pointer, _sel_priority) + : _objc_msgSend_358(this.pointer, _sel_priority); + } + + /// setPriority: + set priority(double value) { + return _objc_msgSend_359(this.pointer, _sel_setPriority_, value); + } + + /// prefersIncrementalDelivery + bool get prefersIncrementalDelivery { + return _objc_msgSend_13(this.pointer, _sel_prefersIncrementalDelivery); + } + + /// setPrefersIncrementalDelivery: + set prefersIncrementalDelivery(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setPrefersIncrementalDelivery_, value); + } + + /// init + NSURLSessionTask init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionTask.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLSessionTask new1() { + final _ret = _objc_msgSend_19(_class_NSURLSessionTask, _sel_new); + return NSURLSessionTask.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSURLSessionTask allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSURLSessionTask, _sel_allocWithZone_, zone); + return NSURLSessionTask.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLSessionTask alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSessionTask, _sel_alloc); + return NSURLSessionTask.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionTask, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionTask, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSessionTask, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLSessionTask, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionTask, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionTask, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionTask, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSessionTask, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLSessionTask, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionTask = objc.getClass("classes.NSURLSessionTask"); +late final _sel_taskIdentifier = objc.registerName("taskIdentifier"); + +/// NSURLRequest +class NSURLRequest extends objc.NSObject { + NSURLRequest._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLRequest] that points to the same underlying object as [other]. + NSURLRequest.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLRequest] that wraps the given raw object pointer. + NSURLRequest.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLRequest]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLRequest); + } + + /// requestWithURL: + static NSURLRequest requestWithURL_(objc.NSURL URL) { + final _ret = _objc_msgSend_329( + _class_NSURLRequest, _sel_requestWithURL_, URL.pointer); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// supportsSecureCoding + static bool getSupportsSecureCoding() { + return _objc_msgSend_13(_class_NSURLRequest, _sel_supportsSecureCoding); + } + + /// requestWithURL:cachePolicy:timeoutInterval: + static NSURLRequest requestWithURL_cachePolicy_timeoutInterval_( + objc.NSURL URL, + NSURLRequestCachePolicy cachePolicy, + double timeoutInterval) { + final _ret = _objc_msgSend_330( + _class_NSURLRequest, + _sel_requestWithURL_cachePolicy_timeoutInterval_, + URL.pointer, + cachePolicy.value, + timeoutInterval); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithURL: + NSURLRequest initWithURL_(objc.NSURL URL) { + final _ret = + _objc_msgSend_329(this.pointer, _sel_initWithURL_, URL.pointer); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithURL:cachePolicy:timeoutInterval: + NSURLRequest initWithURL_cachePolicy_timeoutInterval_(objc.NSURL URL, + NSURLRequestCachePolicy cachePolicy, double timeoutInterval) { + final _ret = _objc_msgSend_330( + this.pointer, + _sel_initWithURL_cachePolicy_timeoutInterval_, + URL.pointer, + cachePolicy.value, + timeoutInterval); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// URL + objc.NSURL? get URL { + final _ret = _objc_msgSend_24(this.pointer, _sel_URL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// cachePolicy + NSURLRequestCachePolicy get cachePolicy { + final _ret = _objc_msgSend_331(this.pointer, _sel_cachePolicy); + return NSURLRequestCachePolicy.fromValue(_ret); + } + + /// timeoutInterval + double get timeoutInterval { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_timeoutInterval) + : _objc_msgSend_18(this.pointer, _sel_timeoutInterval); + } + + /// mainDocumentURL + objc.NSURL? get mainDocumentURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_mainDocumentURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// networkServiceType + NSURLRequestNetworkServiceType get networkServiceType { + final _ret = _objc_msgSend_332(this.pointer, _sel_networkServiceType); + return NSURLRequestNetworkServiceType.fromValue(_ret); + } + + /// allowsCellularAccess + bool get allowsCellularAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsCellularAccess); + } + + /// allowsExpensiveNetworkAccess + bool get allowsExpensiveNetworkAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsExpensiveNetworkAccess); + } + + /// allowsConstrainedNetworkAccess + bool get allowsConstrainedNetworkAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsConstrainedNetworkAccess); + } + + /// assumesHTTP3Capable + bool get assumesHTTP3Capable { + return _objc_msgSend_13(this.pointer, _sel_assumesHTTP3Capable); + } + + /// attribution + NSURLRequestAttribution get attribution { + final _ret = _objc_msgSend_333(this.pointer, _sel_attribution); + return NSURLRequestAttribution.fromValue(_ret); + } + + /// requiresDNSSECValidation + bool get requiresDNSSECValidation { + return _objc_msgSend_13(this.pointer, _sel_requiresDNSSECValidation); + } + + /// HTTPMethod + objc.NSString? get HTTPMethod { + final _ret = _objc_msgSend_20(this.pointer, _sel_HTTPMethod); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// allHTTPHeaderFields + objc.NSDictionary? get allHTTPHeaderFields { + final _ret = _objc_msgSend_82(this.pointer, _sel_allHTTPHeaderFields); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// valueForHTTPHeaderField: + objc.NSString? valueForHTTPHeaderField_(objc.NSString field) { + final _ret = _objc_msgSend_42( + this.pointer, _sel_valueForHTTPHeaderField_, field.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// HTTPBody + objc.NSData? get HTTPBody { + final _ret = _objc_msgSend_334(this.pointer, _sel_HTTPBody); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// HTTPBodyStream + NSInputStream? get HTTPBodyStream { + final _ret = _objc_msgSend_351(this.pointer, _sel_HTTPBodyStream); + return _ret.address == 0 + ? null + : NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// HTTPShouldHandleCookies + bool get HTTPShouldHandleCookies { + return _objc_msgSend_13(this.pointer, _sel_HTTPShouldHandleCookies); + } + + /// HTTPShouldUsePipelining + bool get HTTPShouldUsePipelining { + return _objc_msgSend_13(this.pointer, _sel_HTTPShouldUsePipelining); + } + + /// init + NSURLRequest init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLRequest new1() { + final _ret = _objc_msgSend_19(_class_NSURLRequest, _sel_new); + return NSURLRequest.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSURLRequest allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSURLRequest, _sel_allocWithZone_, zone); + return NSURLRequest.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLRequest alloc() { + final _ret = _objc_msgSend_19(_class_NSURLRequest, _sel_alloc); + return NSURLRequest.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLRequest, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLRequest, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLRequest, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLRequest, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLRequest, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLRequest, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLRequest, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLRequest, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLRequest, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLRequest = objc.getClass("classes.NSURLRequest"); +late final _sel_requestWithURL_ = objc.registerName("requestWithURL:"); +final _objc_msgSend_329 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_supportsSecureCoding = + objc.registerName("supportsSecureCoding"); + +enum NSURLRequestCachePolicy { + NSURLRequestUseProtocolCachePolicy(0), + NSURLRequestReloadIgnoringLocalCacheData(1), + NSURLRequestReloadIgnoringLocalAndRemoteCacheData(4), + NSURLRequestReturnCacheDataElseLoad(2), + NSURLRequestReturnCacheDataDontLoad(3), + NSURLRequestReloadRevalidatingCacheData(5); + + static const NSURLRequestReloadIgnoringCacheData = + NSURLRequestReloadIgnoringLocalCacheData; + + final int value; + const NSURLRequestCachePolicy(this.value); + + static NSURLRequestCachePolicy fromValue(int value) => switch (value) { + 0 => NSURLRequestUseProtocolCachePolicy, + 1 => NSURLRequestReloadIgnoringLocalCacheData, + 4 => NSURLRequestReloadIgnoringLocalAndRemoteCacheData, + 2 => NSURLRequestReturnCacheDataElseLoad, + 3 => NSURLRequestReturnCacheDataDontLoad, + 5 => NSURLRequestReloadRevalidatingCacheData, + _ => throw ArgumentError( + "Unknown value for NSURLRequestCachePolicy: $value"), + }; + + @override + String toString() { + if (this == NSURLRequestReloadIgnoringLocalCacheData) + return "NSURLRequestCachePolicy.NSURLRequestReloadIgnoringLocalCacheData, NSURLRequestCachePolicy.NSURLRequestReloadIgnoringCacheData"; + return super.toString(); + } +} + +late final _sel_requestWithURL_cachePolicy_timeoutInterval_ = + objc.registerName("requestWithURL:cachePolicy:timeoutInterval:"); +final _objc_msgSend_330 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Double)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + double)>(); +late final _sel_initWithURL_cachePolicy_timeoutInterval_ = + objc.registerName("initWithURL:cachePolicy:timeoutInterval:"); +late final _sel_URL = objc.registerName("URL"); +late final _sel_cachePolicy = objc.registerName("cachePolicy"); +final _objc_msgSend_331 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_timeoutInterval = objc.registerName("timeoutInterval"); +late final _sel_mainDocumentURL = objc.registerName("mainDocumentURL"); + +enum NSURLRequestNetworkServiceType { + NSURLNetworkServiceTypeDefault(0), + NSURLNetworkServiceTypeVoIP(1), + NSURLNetworkServiceTypeVideo(2), + NSURLNetworkServiceTypeBackground(3), + NSURLNetworkServiceTypeVoice(4), + NSURLNetworkServiceTypeResponsiveData(6), + NSURLNetworkServiceTypeAVStreaming(8), + NSURLNetworkServiceTypeResponsiveAV(9), + NSURLNetworkServiceTypeCallSignaling(11); + + final int value; + const NSURLRequestNetworkServiceType(this.value); + + static NSURLRequestNetworkServiceType fromValue(int value) => switch (value) { + 0 => NSURLNetworkServiceTypeDefault, + 1 => NSURLNetworkServiceTypeVoIP, + 2 => NSURLNetworkServiceTypeVideo, + 3 => NSURLNetworkServiceTypeBackground, + 4 => NSURLNetworkServiceTypeVoice, + 6 => NSURLNetworkServiceTypeResponsiveData, + 8 => NSURLNetworkServiceTypeAVStreaming, + 9 => NSURLNetworkServiceTypeResponsiveAV, + 11 => NSURLNetworkServiceTypeCallSignaling, + _ => throw ArgumentError( + "Unknown value for NSURLRequestNetworkServiceType: $value"), + }; +} + +late final _sel_networkServiceType = objc.registerName("networkServiceType"); +final _objc_msgSend_332 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_allowsCellularAccess = + objc.registerName("allowsCellularAccess"); +late final _sel_allowsExpensiveNetworkAccess = + objc.registerName("allowsExpensiveNetworkAccess"); +late final _sel_allowsConstrainedNetworkAccess = + objc.registerName("allowsConstrainedNetworkAccess"); +late final _sel_assumesHTTP3Capable = objc.registerName("assumesHTTP3Capable"); + +enum NSURLRequestAttribution { + NSURLRequestAttributionDeveloper(0), + NSURLRequestAttributionUser(1); + + final int value; + const NSURLRequestAttribution(this.value); + + static NSURLRequestAttribution fromValue(int value) => switch (value) { + 0 => NSURLRequestAttributionDeveloper, + 1 => NSURLRequestAttributionUser, + _ => throw ArgumentError( + "Unknown value for NSURLRequestAttribution: $value"), + }; +} + +late final _sel_attribution = objc.registerName("attribution"); +final _objc_msgSend_333 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_requiresDNSSECValidation = + objc.registerName("requiresDNSSECValidation"); +late final _sel_HTTPMethod = objc.registerName("HTTPMethod"); +late final _sel_allHTTPHeaderFields = objc.registerName("allHTTPHeaderFields"); +late final _sel_valueForHTTPHeaderField_ = + objc.registerName("valueForHTTPHeaderField:"); +late final _sel_HTTPBody = objc.registerName("HTTPBody"); +final _objc_msgSend_334 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); + +/// NSInputStream +class NSInputStream extends NSStream { + NSInputStream._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSInputStream] that points to the same underlying object as [other]. + NSInputStream.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSInputStream] that wraps the given raw object pointer. + NSInputStream.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSInputStream]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSInputStream); + } + + /// read:maxLength: + int read_maxLength_(ffi.Pointer buffer, int len) { + return _objc_msgSend_335(this.pointer, _sel_read_maxLength_, buffer, len); + } + + /// getBuffer:length: + bool getBuffer_length_(ffi.Pointer> buffer, + ffi.Pointer len) { + return _objc_msgSend_336(this.pointer, _sel_getBuffer_length_, buffer, len); + } + + /// hasBytesAvailable + bool get hasBytesAvailable { + return _objc_msgSend_13(this.pointer, _sel_hasBytesAvailable); + } + + /// initWithData: + NSInputStream initWithData_(objc.NSData data) { + final _ret = + _objc_msgSend_337(this.pointer, _sel_initWithData_, data.pointer); + return NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithURL: + NSInputStream? initWithURL_(objc.NSURL url) { + final _ret = _objc_msgSend_36(this.pointer, _sel_initWithURL_, url.pointer); + return _ret.address == 0 + ? null + : NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithFileAtPath: + NSInputStream? initWithFileAtPath_(objc.NSString path) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_initWithFileAtPath_, path.pointer); + return _ret.address == 0 + ? null + : NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// inputStreamWithData: + static NSInputStream? inputStreamWithData_(objc.NSData data) { + final _ret = _objc_msgSend_338( + _class_NSInputStream, _sel_inputStreamWithData_, data.pointer); + return _ret.address == 0 + ? null + : NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// inputStreamWithFileAtPath: + static NSInputStream? inputStreamWithFileAtPath_(objc.NSString path) { + final _ret = _objc_msgSend_35( + _class_NSInputStream, _sel_inputStreamWithFileAtPath_, path.pointer); + return _ret.address == 0 + ? null + : NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// inputStreamWithURL: + static NSInputStream? inputStreamWithURL_(objc.NSURL url) { + final _ret = _objc_msgSend_36( + _class_NSInputStream, _sel_inputStreamWithURL_, url.pointer); + return _ret.address == 0 + ? null + : NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// getStreamsToHostWithName:port:inputStream:outputStream: + static void getStreamsToHostWithName_port_inputStream_outputStream_( + objc.NSString hostname, + int port, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_345( + _class_NSInputStream, + _sel_getStreamsToHostWithName_port_inputStream_outputStream_, + hostname.pointer, + port, + inputStream, + outputStream); + } + + /// getStreamsToHost:port:inputStream:outputStream: + static void getStreamsToHost_port_inputStream_outputStream_( + NSHost host, + int port, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_349( + _class_NSInputStream, + _sel_getStreamsToHost_port_inputStream_outputStream_, + host.pointer, + port, + inputStream, + outputStream); + } + + /// getBoundStreamsWithBufferSize:inputStream:outputStream: + static void getBoundStreamsWithBufferSize_inputStream_outputStream_( + int bufferSize, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_350( + _class_NSInputStream, + _sel_getBoundStreamsWithBufferSize_inputStream_outputStream_, + bufferSize, + inputStream, + outputStream); + } + + /// init + NSInputStream init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSInputStream new1() { + final _ret = _objc_msgSend_19(_class_NSInputStream, _sel_new); + return NSInputStream.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSInputStream allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSInputStream, _sel_allocWithZone_, zone); + return NSInputStream.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSInputStream alloc() { + final _ret = _objc_msgSend_19(_class_NSInputStream, _sel_alloc); + return NSInputStream.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSInputStream, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSInputStream, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSInputStream, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSInputStream, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSInputStream, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSInputStream, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSInputStream, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSInputStream, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSInputStream, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSInputStream = objc.getClass("classes.NSInputStream"); +late final _sel_read_maxLength_ = objc.registerName("read:maxLength:"); +final _objc_msgSend_335 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer, int)>(); +late final _sel_getBuffer_length_ = objc.registerName("getBuffer:length:"); +final _objc_msgSend_336 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer)>(); +late final _sel_hasBytesAvailable = objc.registerName("hasBytesAvailable"); +late final _sel_initWithData_ = objc.registerName("initWithData:"); +final _objc_msgSend_337 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithFileAtPath_ = objc.registerName("initWithFileAtPath:"); +late final _sel_inputStreamWithData_ = + objc.registerName("inputStreamWithData:"); +final _objc_msgSend_338 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_inputStreamWithFileAtPath_ = + objc.registerName("inputStreamWithFileAtPath:"); +late final _sel_inputStreamWithURL_ = objc.registerName("inputStreamWithURL:"); + +/// NSStream +class NSStream extends objc.NSObject { + NSStream._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSStream] that points to the same underlying object as [other]. + NSStream.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSStream] that wraps the given raw object pointer. + NSStream.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSStream]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSStream); + } + + /// open + void open() { + _objc_msgSend_7(this.pointer, _sel_open); + } + + /// close + void close() { + _objc_msgSend_7(this.pointer, _sel_close); + } + + /// delegate + objc.ObjCObjectBase? get delegate { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setDelegate: + set delegate(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setDelegate_, value?.pointer ?? ffi.nullptr); + } + + /// propertyForKey: + objc.ObjCObjectBase? propertyForKey_(objc.NSString key) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_propertyForKey_, key.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setProperty:forKey: + bool setProperty_forKey_(objc.ObjCObjectBase? property, objc.NSString key) { + return _objc_msgSend_339(this.pointer, _sel_setProperty_forKey_, + property?.pointer ?? ffi.nullptr, key.pointer); + } + + /// scheduleInRunLoop:forMode: + void scheduleInRunLoop_forMode_(NSRunLoop aRunLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_scheduleInRunLoop_forMode_, + aRunLoop.pointer, mode.pointer); + } + + /// removeFromRunLoop:forMode: + void removeFromRunLoop_forMode_(NSRunLoop aRunLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_removeFromRunLoop_forMode_, + aRunLoop.pointer, mode.pointer); + } + + /// streamStatus + NSStreamStatus get streamStatus { + final _ret = _objc_msgSend_340(this.pointer, _sel_streamStatus); + return NSStreamStatus.fromValue(_ret); + } + + /// streamError + objc.NSError? get streamError { + final _ret = _objc_msgSend_341(this.pointer, _sel_streamError); + return _ret.address == 0 + ? null + : objc.NSError.castFromPointer(_ret, retain: true, release: true); + } + + /// getStreamsToHostWithName:port:inputStream:outputStream: + static void getStreamsToHostWithName_port_inputStream_outputStream_( + objc.NSString hostname, + int port, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_345( + _class_NSStream, + _sel_getStreamsToHostWithName_port_inputStream_outputStream_, + hostname.pointer, + port, + inputStream, + outputStream); + } + + /// getStreamsToHost:port:inputStream:outputStream: + static void getStreamsToHost_port_inputStream_outputStream_( + NSHost host, + int port, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_349( + _class_NSStream, + _sel_getStreamsToHost_port_inputStream_outputStream_, + host.pointer, + port, + inputStream, + outputStream); + } + + /// getBoundStreamsWithBufferSize:inputStream:outputStream: + static void getBoundStreamsWithBufferSize_inputStream_outputStream_( + int bufferSize, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_350( + _class_NSStream, + _sel_getBoundStreamsWithBufferSize_inputStream_outputStream_, + bufferSize, + inputStream, + outputStream); + } + + /// init + NSStream init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSStream.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSStream new1() { + final _ret = _objc_msgSend_19(_class_NSStream, _sel_new); + return NSStream.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSStream allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSStream, _sel_allocWithZone_, zone); + return NSStream.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSStream alloc() { + final _ret = _objc_msgSend_19(_class_NSStream, _sel_alloc); + return NSStream.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSStream, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSStream, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSStream, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSStream, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSStream, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSStream, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSStream, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSStream, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSStream, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSStream = objc.getClass("classes.NSStream"); +late final _sel_open = objc.registerName("open"); +late final _sel_close = objc.registerName("close"); +late final _sel_propertyForKey_ = objc.registerName("propertyForKey:"); +late final _sel_setProperty_forKey_ = objc.registerName("setProperty:forKey:"); +final _objc_msgSend_339 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +enum NSStreamStatus { + NSStreamStatusNotOpen(0), + NSStreamStatusOpening(1), + NSStreamStatusOpen(2), + NSStreamStatusReading(3), + NSStreamStatusWriting(4), + NSStreamStatusAtEnd(5), + NSStreamStatusClosed(6), + NSStreamStatusError(7); + + final int value; + const NSStreamStatus(this.value); + + static NSStreamStatus fromValue(int value) => switch (value) { + 0 => NSStreamStatusNotOpen, + 1 => NSStreamStatusOpening, + 2 => NSStreamStatusOpen, + 3 => NSStreamStatusReading, + 4 => NSStreamStatusWriting, + 5 => NSStreamStatusAtEnd, + 6 => NSStreamStatusClosed, + 7 => NSStreamStatusError, + _ => throw ArgumentError("Unknown value for NSStreamStatus: $value"), + }; +} + +late final _sel_streamStatus = objc.registerName("streamStatus"); +final _objc_msgSend_340 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_streamError = objc.registerName("streamError"); +final _objc_msgSend_341 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); + +/// NSOutputStream +class NSOutputStream extends NSStream { + NSOutputStream._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSOutputStream] that points to the same underlying object as [other]. + NSOutputStream.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSOutputStream] that wraps the given raw object pointer. + NSOutputStream.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSOutputStream]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSOutputStream); + } + + /// write:maxLength: + int write_maxLength_(ffi.Pointer buffer, int len) { + return _objc_msgSend_335(this.pointer, _sel_write_maxLength_, buffer, len); + } + + /// hasSpaceAvailable + bool get hasSpaceAvailable { + return _objc_msgSend_13(this.pointer, _sel_hasSpaceAvailable); + } + + /// initToMemory + NSOutputStream initToMemory() { + final _ret = _objc_msgSend_19(this.pointer, _sel_initToMemory); + return NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// initToBuffer:capacity: + NSOutputStream initToBuffer_capacity_( + ffi.Pointer buffer, int capacity) { + final _ret = _objc_msgSend_342( + this.pointer, _sel_initToBuffer_capacity_, buffer, capacity); + return NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithURL:append: + NSOutputStream? initWithURL_append_(objc.NSURL url, bool shouldAppend) { + final _ret = _objc_msgSend_343( + this.pointer, _sel_initWithURL_append_, url.pointer, shouldAppend); + return _ret.address == 0 + ? null + : NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// initToFileAtPath:append: + NSOutputStream? initToFileAtPath_append_( + objc.NSString path, bool shouldAppend) { + final _ret = _objc_msgSend_344(this.pointer, _sel_initToFileAtPath_append_, + path.pointer, shouldAppend); + return _ret.address == 0 + ? null + : NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// outputStreamToMemory + static NSOutputStream outputStreamToMemory() { + final _ret = + _objc_msgSend_19(_class_NSOutputStream, _sel_outputStreamToMemory); + return NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// outputStreamToBuffer:capacity: + static NSOutputStream outputStreamToBuffer_capacity_( + ffi.Pointer buffer, int capacity) { + final _ret = _objc_msgSend_342(_class_NSOutputStream, + _sel_outputStreamToBuffer_capacity_, buffer, capacity); + return NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// outputStreamToFileAtPath:append: + static NSOutputStream outputStreamToFileAtPath_append_( + objc.NSString path, bool shouldAppend) { + final _ret = _objc_msgSend_172(_class_NSOutputStream, + _sel_outputStreamToFileAtPath_append_, path.pointer, shouldAppend); + return NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// outputStreamWithURL:append: + static NSOutputStream? outputStreamWithURL_append_( + objc.NSURL url, bool shouldAppend) { + final _ret = _objc_msgSend_343(_class_NSOutputStream, + _sel_outputStreamWithURL_append_, url.pointer, shouldAppend); + return _ret.address == 0 + ? null + : NSOutputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// getStreamsToHostWithName:port:inputStream:outputStream: + static void getStreamsToHostWithName_port_inputStream_outputStream_( + objc.NSString hostname, + int port, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_345( + _class_NSOutputStream, + _sel_getStreamsToHostWithName_port_inputStream_outputStream_, + hostname.pointer, + port, + inputStream, + outputStream); + } + + /// getStreamsToHost:port:inputStream:outputStream: + static void getStreamsToHost_port_inputStream_outputStream_( + NSHost host, + int port, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_349( + _class_NSOutputStream, + _sel_getStreamsToHost_port_inputStream_outputStream_, + host.pointer, + port, + inputStream, + outputStream); + } + + /// getBoundStreamsWithBufferSize:inputStream:outputStream: + static void getBoundStreamsWithBufferSize_inputStream_outputStream_( + int bufferSize, + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + _objc_msgSend_350( + _class_NSOutputStream, + _sel_getBoundStreamsWithBufferSize_inputStream_outputStream_, + bufferSize, + inputStream, + outputStream); + } +} + +late final _class_NSOutputStream = objc.getClass("classes.NSOutputStream"); +late final _sel_write_maxLength_ = objc.registerName("write:maxLength:"); +late final _sel_hasSpaceAvailable = objc.registerName("hasSpaceAvailable"); +late final _sel_initToMemory = objc.registerName("initToMemory"); +late final _sel_initToBuffer_capacity_ = + objc.registerName("initToBuffer:capacity:"); +final _objc_msgSend_342 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer, int)>(); +late final _sel_initWithURL_append_ = objc.registerName("initWithURL:append:"); +final _objc_msgSend_343 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_initToFileAtPath_append_ = + objc.registerName("initToFileAtPath:append:"); +final _objc_msgSend_344 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_outputStreamToMemory = + objc.registerName("outputStreamToMemory"); +late final _sel_outputStreamToBuffer_capacity_ = + objc.registerName("outputStreamToBuffer:capacity:"); +late final _sel_outputStreamToFileAtPath_append_ = + objc.registerName("outputStreamToFileAtPath:append:"); +late final _sel_outputStreamWithURL_append_ = + objc.registerName("outputStreamWithURL:append:"); +late final _sel_getStreamsToHostWithName_port_inputStream_outputStream_ = objc + .registerName("getStreamsToHostWithName:port:inputStream:outputStream:"); +final _objc_msgSend_345 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>, + ffi.Pointer>)>(); + +/// NSHost +class NSHost extends objc.NSObject { + NSHost._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSHost] that points to the same underlying object as [other]. + NSHost.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSHost] that wraps the given raw object pointer. + NSHost.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSHost]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSHost); + } + + /// currentHost + static NSHost currentHost() { + final _ret = _objc_msgSend_19(_class_NSHost, _sel_currentHost); + return NSHost.castFromPointer(_ret, retain: true, release: true); + } + + /// hostWithName: + static NSHost hostWithName_(objc.NSString? name) { + final _ret = _objc_msgSend_346( + _class_NSHost, _sel_hostWithName_, name?.pointer ?? ffi.nullptr); + return NSHost.castFromPointer(_ret, retain: true, release: true); + } + + /// hostWithAddress: + static NSHost hostWithAddress_(objc.NSString address) { + final _ret = + _objc_msgSend_63(_class_NSHost, _sel_hostWithAddress_, address.pointer); + return NSHost.castFromPointer(_ret, retain: true, release: true); + } + + /// isEqualToHost: + bool isEqualToHost_(NSHost aHost) { + return _objc_msgSend_347(this.pointer, _sel_isEqualToHost_, aHost.pointer); + } + + /// name + objc.NSString? get name { + final _ret = _objc_msgSend_20(this.pointer, _sel_name); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// names + objc.NSArray get names { + final _ret = _objc_msgSend_33(this.pointer, _sel_names); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// address + objc.NSString? get address { + final _ret = _objc_msgSend_20(this.pointer, _sel_address); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// addresses + objc.NSArray get addresses { + final _ret = _objc_msgSend_33(this.pointer, _sel_addresses); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// localizedName + objc.NSString? get localizedName { + final _ret = _objc_msgSend_20(this.pointer, _sel_localizedName); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setHostCacheEnabled: + static void setHostCacheEnabled_(bool flag) { + _objc_msgSend_348(_class_NSHost, _sel_setHostCacheEnabled_, flag); + } + + /// isHostCacheEnabled + static bool isHostCacheEnabled() { + return _objc_msgSend_13(_class_NSHost, _sel_isHostCacheEnabled); + } + + /// flushHostCache + static void flushHostCache() { + _objc_msgSend_7(_class_NSHost, _sel_flushHostCache); + } + + /// init + NSHost init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSHost.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSHost new1() { + final _ret = _objc_msgSend_19(_class_NSHost, _sel_new); + return NSHost.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSHost allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSHost, _sel_allocWithZone_, zone); + return NSHost.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSHost alloc() { + final _ret = _objc_msgSend_19(_class_NSHost, _sel_alloc); + return NSHost.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSHost, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSHost, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSHost, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSHost, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSHost, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31( + _class_NSHost, _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSHost, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSHost, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19(_class_NSHost, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSHost = objc.getClass("classes.NSHost"); +late final _sel_currentHost = objc.registerName("currentHost"); +late final _sel_hostWithName_ = objc.registerName("hostWithName:"); +final _objc_msgSend_346 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_hostWithAddress_ = objc.registerName("hostWithAddress:"); +late final _sel_isEqualToHost_ = objc.registerName("isEqualToHost:"); +final _objc_msgSend_347 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_names = objc.registerName("names"); +late final _sel_address = objc.registerName("address"); +late final _sel_addresses = objc.registerName("addresses"); +late final _sel_localizedName = objc.registerName("localizedName"); +late final _sel_setHostCacheEnabled_ = + objc.registerName("setHostCacheEnabled:"); +final _objc_msgSend_348 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Bool)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, bool)>(); +late final _sel_isHostCacheEnabled = objc.registerName("isHostCacheEnabled"); +late final _sel_flushHostCache = objc.registerName("flushHostCache"); +late final _sel_getStreamsToHost_port_inputStream_outputStream_ = + objc.registerName("getStreamsToHost:port:inputStream:outputStream:"); +final _objc_msgSend_349 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>, + ffi.Pointer>)>(); +late final _sel_getBoundStreamsWithBufferSize_inputStream_outputStream_ = objc + .registerName("getBoundStreamsWithBufferSize:inputStream:outputStream:"); +final _objc_msgSend_350 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>, + ffi.Pointer>)>(); +late final _sel_HTTPBodyStream = objc.registerName("HTTPBodyStream"); +final _objc_msgSend_351 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_HTTPShouldHandleCookies = + objc.registerName("HTTPShouldHandleCookies"); +late final _sel_HTTPShouldUsePipelining = + objc.registerName("HTTPShouldUsePipelining"); +late final _sel_originalRequest = objc.registerName("originalRequest"); +final _objc_msgSend_352 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_currentRequest = objc.registerName("currentRequest"); + +/// NSURLResponse +class NSURLResponse extends objc.NSObject { + NSURLResponse._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLResponse] that points to the same underlying object as [other]. + NSURLResponse.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLResponse] that wraps the given raw object pointer. + NSURLResponse.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLResponse]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLResponse); + } + + /// initWithURL:MIMEType:expectedContentLength:textEncodingName: + NSURLResponse initWithURL_MIMEType_expectedContentLength_textEncodingName_( + objc.NSURL URL, + objc.NSString? MIMEType, + int length, + objc.NSString? name) { + final _ret = _objc_msgSend_353( + this.pointer, + _sel_initWithURL_MIMEType_expectedContentLength_textEncodingName_, + URL.pointer, + MIMEType?.pointer ?? ffi.nullptr, + length, + name?.pointer ?? ffi.nullptr); + return NSURLResponse.castFromPointer(_ret, retain: true, release: true); + } + + /// URL + objc.NSURL? get URL { + final _ret = _objc_msgSend_24(this.pointer, _sel_URL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// MIMEType + objc.NSString? get MIMEType { + final _ret = _objc_msgSend_20(this.pointer, _sel_MIMEType); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// expectedContentLength + int get expectedContentLength { + return _objc_msgSend_354(this.pointer, _sel_expectedContentLength); + } + + /// textEncodingName + objc.NSString? get textEncodingName { + final _ret = _objc_msgSend_20(this.pointer, _sel_textEncodingName); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// suggestedFilename + objc.NSString? get suggestedFilename { + final _ret = _objc_msgSend_20(this.pointer, _sel_suggestedFilename); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSURLResponse init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLResponse.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLResponse new1() { + final _ret = _objc_msgSend_19(_class_NSURLResponse, _sel_new); + return NSURLResponse.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSURLResponse allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSURLResponse, _sel_allocWithZone_, zone); + return NSURLResponse.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLResponse alloc() { + final _ret = _objc_msgSend_19(_class_NSURLResponse, _sel_alloc); + return NSURLResponse.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLResponse, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLResponse, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLResponse, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLResponse, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLResponse, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLResponse, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLResponse, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLResponse, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLResponse, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLResponse = objc.getClass("classes.NSURLResponse"); +late final _sel_initWithURL_MIMEType_expectedContentLength_textEncodingName_ = + objc.registerName( + "initWithURL:MIMEType:expectedContentLength:textEncodingName:"); +final _objc_msgSend_353 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_MIMEType = objc.registerName("MIMEType"); +late final _sel_expectedContentLength = + objc.registerName("expectedContentLength"); +final _objc_msgSend_354 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.LongLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_textEncodingName = objc.registerName("textEncodingName"); +late final _sel_suggestedFilename = objc.registerName("suggestedFilename"); +late final _sel_response = objc.registerName("response"); +final _objc_msgSend_355 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_progress = objc.registerName("progress"); +final _objc_msgSend_356 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_earliestBeginDate = objc.registerName("earliestBeginDate"); +late final _sel_setEarliestBeginDate_ = + objc.registerName("setEarliestBeginDate:"); +late final _sel_countOfBytesClientExpectsToSend = + objc.registerName("countOfBytesClientExpectsToSend"); +late final _sel_setCountOfBytesClientExpectsToSend_ = + objc.registerName("setCountOfBytesClientExpectsToSend:"); +late final _sel_countOfBytesClientExpectsToReceive = + objc.registerName("countOfBytesClientExpectsToReceive"); +late final _sel_setCountOfBytesClientExpectsToReceive_ = + objc.registerName("setCountOfBytesClientExpectsToReceive:"); +late final _sel_countOfBytesSent = objc.registerName("countOfBytesSent"); +late final _sel_countOfBytesReceived = + objc.registerName("countOfBytesReceived"); +late final _sel_countOfBytesExpectedToSend = + objc.registerName("countOfBytesExpectedToSend"); +late final _sel_countOfBytesExpectedToReceive = + objc.registerName("countOfBytesExpectedToReceive"); +late final _sel_taskDescription = objc.registerName("taskDescription"); +late final _sel_setTaskDescription_ = objc.registerName("setTaskDescription:"); + +enum NSURLSessionTaskState { + NSURLSessionTaskStateRunning(0), + NSURLSessionTaskStateSuspended(1), + NSURLSessionTaskStateCanceling(2), + NSURLSessionTaskStateCompleted(3); + + final int value; + const NSURLSessionTaskState(this.value); + + static NSURLSessionTaskState fromValue(int value) => switch (value) { + 0 => NSURLSessionTaskStateRunning, + 1 => NSURLSessionTaskStateSuspended, + 2 => NSURLSessionTaskStateCanceling, + 3 => NSURLSessionTaskStateCompleted, + _ => throw ArgumentError( + "Unknown value for NSURLSessionTaskState: $value"), + }; +} + +late final _sel_state = objc.registerName("state"); +final _objc_msgSend_357 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_error = objc.registerName("error"); +late final _sel_suspend = objc.registerName("suspend"); +late final _sel_priority = objc.registerName("priority"); +final _objc_msgSend_358 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Float Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_358Fpret = objc.msgSendFpretPointer + .cast< + ffi.NativeFunction< + ffi.Float Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + double Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setPriority_ = objc.registerName("setPriority:"); +final _objc_msgSend_359 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Float)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, double)>(); +late final _sel_prefersIncrementalDelivery = + objc.registerName("prefersIncrementalDelivery"); +late final _sel_setPrefersIncrementalDelivery_ = + objc.registerName("setPrefersIncrementalDelivery:"); +late final _sel_storeCookies_forTask_ = + objc.registerName("storeCookies:forTask:"); +final _objc_msgSend_360 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSArray_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSArray_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSArray extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSArray._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSArray castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSArray._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSArray.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSArray_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSArray.fromFunction(void Function(objc.NSArray?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSArray_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSArray.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSArray.listener(void Function(objc.NSArray?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSArray(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSArray_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSArray.castFromPointer(arg0, + retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(objc.NSArray? arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr); +} + +late final _sel_getCookiesForTask_completionHandler_ = + objc.registerName("getCookiesForTask:completionHandler:"); +final _objc_msgSend_361 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSIndexPath +class NSIndexPath extends objc.NSObject { + NSIndexPath._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSIndexPath] that points to the same underlying object as [other]. + NSIndexPath.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSIndexPath] that wraps the given raw object pointer. + NSIndexPath.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSIndexPath]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSIndexPath); + } + + /// indexPathWithIndex: + static NSIndexPath indexPathWithIndex_(int index) { + final _ret = + _objc_msgSend_362(_class_NSIndexPath, _sel_indexPathWithIndex_, index); + return NSIndexPath.castFromPointer(_ret, retain: true, release: true); + } + + /// indexPathWithIndexes:length: + static NSIndexPath indexPathWithIndexes_length_( + ffi.Pointer indexes, int length) { + final _ret = _objc_msgSend_363( + _class_NSIndexPath, _sel_indexPathWithIndexes_length_, indexes, length); + return NSIndexPath.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithIndexes:length: + NSIndexPath initWithIndexes_length_( + ffi.Pointer indexes, int length) { + final _ret = _objc_msgSend_363( + this.pointer, _sel_initWithIndexes_length_, indexes, length); + return NSIndexPath.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithIndex: + NSIndexPath initWithIndex_(int index) { + final _ret = _objc_msgSend_362(this.pointer, _sel_initWithIndex_, index); + return NSIndexPath.castFromPointer(_ret, retain: true, release: true); + } + + /// indexPathByAddingIndex: + NSIndexPath indexPathByAddingIndex_(int index) { + final _ret = + _objc_msgSend_364(this.pointer, _sel_indexPathByAddingIndex_, index); + return NSIndexPath.castFromPointer(_ret, retain: true, release: true); + } + + /// indexPathByRemovingLastIndex + NSIndexPath indexPathByRemovingLastIndex() { + final _ret = + _objc_msgSend_365(this.pointer, _sel_indexPathByRemovingLastIndex); + return NSIndexPath.castFromPointer(_ret, retain: true, release: true); + } + + /// indexAtPosition: + int indexAtPosition_(int position) { + return _objc_msgSend_366(this.pointer, _sel_indexAtPosition_, position); + } + + /// length + int get length { + return _objc_msgSend_57(this.pointer, _sel_length); + } + + /// getIndexes:range: + void getIndexes_range_( + ffi.Pointer indexes, _NSRange positionRange) { + _objc_msgSend_367( + this.pointer, _sel_getIndexes_range_, indexes, positionRange); + } + + /// compare: + objc.NSComparisonResult compare_(NSIndexPath otherObject) { + final _ret = + _objc_msgSend_368(this.pointer, _sel_compare_, otherObject.pointer); + return objc.NSComparisonResult.fromValue(_ret); + } + + /// getIndexes: + void getIndexes_(ffi.Pointer indexes) { + _objc_msgSend_369(this.pointer, _sel_getIndexes_, indexes); + } + + /// init + NSIndexPath init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSIndexPath.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSIndexPath new1() { + final _ret = _objc_msgSend_19(_class_NSIndexPath, _sel_new); + return NSIndexPath.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSIndexPath allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSIndexPath, _sel_allocWithZone_, zone); + return NSIndexPath.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSIndexPath alloc() { + final _ret = _objc_msgSend_19(_class_NSIndexPath, _sel_alloc); + return NSIndexPath.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSIndexPath, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSIndexPath, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSIndexPath, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSIndexPath, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSIndexPath, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSIndexPath, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSIndexPath, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSIndexPath, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSIndexPath, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSIndexPath = objc.getClass("classes.NSIndexPath"); +late final _sel_indexPathWithIndex_ = objc.registerName("indexPathWithIndex:"); +final _objc_msgSend_362 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_indexPathWithIndexes_length_ = + objc.registerName("indexPathWithIndexes:length:"); +final _objc_msgSend_363 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_initWithIndexes_length_ = + objc.registerName("initWithIndexes:length:"); +late final _sel_initWithIndex_ = objc.registerName("initWithIndex:"); +late final _sel_indexPathByAddingIndex_ = + objc.registerName("indexPathByAddingIndex:"); +final _objc_msgSend_364 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_indexPathByRemovingLastIndex = + objc.registerName("indexPathByRemovingLastIndex"); +final _objc_msgSend_365 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_indexAtPosition_ = objc.registerName("indexAtPosition:"); +final _objc_msgSend_366 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_getIndexes_range_ = objc.registerName("getIndexes:range:"); +final _objc_msgSend_367 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + _NSRange)>(); +late final _sel_compare_ = objc.registerName("compare:"); +final _objc_msgSend_368 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_getIndexes_ = objc.registerName("getIndexes:"); +final _objc_msgSend_369 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSInflectionRule +class NSInflectionRule extends objc.NSObject { + NSInflectionRule._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSInflectionRule] that points to the same underlying object as [other]. + NSInflectionRule.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSInflectionRule] that wraps the given raw object pointer. + NSInflectionRule.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSInflectionRule]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSInflectionRule); + } + + /// init + NSInflectionRule init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSInflectionRule.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticRule + static NSInflectionRule getAutomaticRule() { + final _ret = _objc_msgSend_370(_class_NSInflectionRule, _sel_automaticRule); + return NSInflectionRule.castFromPointer(_ret, retain: true, release: true); + } + + /// canInflectLanguage: + static bool canInflectLanguage_(objc.NSString language) { + return _objc_msgSend_31( + _class_NSInflectionRule, _sel_canInflectLanguage_, language.pointer); + } + + /// canInflectPreferredLocalization + static bool getCanInflectPreferredLocalization() { + return _objc_msgSend_13( + _class_NSInflectionRule, _sel_canInflectPreferredLocalization); + } + + /// new + static NSInflectionRule new1() { + final _ret = _objc_msgSend_19(_class_NSInflectionRule, _sel_new); + return NSInflectionRule.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSInflectionRule allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSInflectionRule, _sel_allocWithZone_, zone); + return NSInflectionRule.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSInflectionRule alloc() { + final _ret = _objc_msgSend_19(_class_NSInflectionRule, _sel_alloc); + return NSInflectionRule.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSInflectionRule, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSInflectionRule, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSInflectionRule, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSInflectionRule, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSInflectionRule, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSInflectionRule, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSInflectionRule, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSInflectionRule, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSInflectionRule, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSInflectionRule = objc.getClass("classes.NSInflectionRule"); +late final _sel_automaticRule = objc.registerName("automaticRule"); +final _objc_msgSend_370 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_canInflectLanguage_ = objc.registerName("canInflectLanguage:"); +late final _sel_canInflectPreferredLocalization = + objc.registerName("canInflectPreferredLocalization"); + +/// NSMorphology +class NSMorphology extends objc.NSObject { + NSMorphology._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSMorphology] that points to the same underlying object as [other]. + NSMorphology.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSMorphology] that wraps the given raw object pointer. + NSMorphology.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSMorphology]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSMorphology); + } + + /// grammaticalGender + NSGrammaticalGender get grammaticalGender { + final _ret = _objc_msgSend_371(this.pointer, _sel_grammaticalGender); + return NSGrammaticalGender.fromValue(_ret); + } + + /// setGrammaticalGender: + set grammaticalGender(NSGrammaticalGender value) { + return _objc_msgSend_372( + this.pointer, _sel_setGrammaticalGender_, value.value); + } + + /// partOfSpeech + NSGrammaticalPartOfSpeech get partOfSpeech { + final _ret = _objc_msgSend_373(this.pointer, _sel_partOfSpeech); + return NSGrammaticalPartOfSpeech.fromValue(_ret); + } + + /// setPartOfSpeech: + set partOfSpeech(NSGrammaticalPartOfSpeech value) { + return _objc_msgSend_374(this.pointer, _sel_setPartOfSpeech_, value.value); + } + + /// number + NSGrammaticalNumber get number { + final _ret = _objc_msgSend_375(this.pointer, _sel_number); + return NSGrammaticalNumber.fromValue(_ret); + } + + /// setNumber: + set number(NSGrammaticalNumber value) { + return _objc_msgSend_376(this.pointer, _sel_setNumber_, value.value); + } + + /// grammaticalCase + NSGrammaticalCase get grammaticalCase { + final _ret = _objc_msgSend_377(this.pointer, _sel_grammaticalCase); + return NSGrammaticalCase.fromValue(_ret); + } + + /// setGrammaticalCase: + set grammaticalCase(NSGrammaticalCase value) { + return _objc_msgSend_378( + this.pointer, _sel_setGrammaticalCase_, value.value); + } + + /// determination + NSGrammaticalDetermination get determination { + final _ret = _objc_msgSend_379(this.pointer, _sel_determination); + return NSGrammaticalDetermination.fromValue(_ret); + } + + /// setDetermination: + set determination(NSGrammaticalDetermination value) { + return _objc_msgSend_380(this.pointer, _sel_setDetermination_, value.value); + } + + /// grammaticalPerson + NSGrammaticalPerson get grammaticalPerson { + final _ret = _objc_msgSend_381(this.pointer, _sel_grammaticalPerson); + return NSGrammaticalPerson.fromValue(_ret); + } + + /// setGrammaticalPerson: + set grammaticalPerson(NSGrammaticalPerson value) { + return _objc_msgSend_382( + this.pointer, _sel_setGrammaticalPerson_, value.value); + } + + /// pronounType + NSGrammaticalPronounType get pronounType { + final _ret = _objc_msgSend_383(this.pointer, _sel_pronounType); + return NSGrammaticalPronounType.fromValue(_ret); + } + + /// setPronounType: + set pronounType(NSGrammaticalPronounType value) { + return _objc_msgSend_384(this.pointer, _sel_setPronounType_, value.value); + } + + /// definiteness + NSGrammaticalDefiniteness get definiteness { + final _ret = _objc_msgSend_385(this.pointer, _sel_definiteness); + return NSGrammaticalDefiniteness.fromValue(_ret); + } + + /// setDefiniteness: + set definiteness(NSGrammaticalDefiniteness value) { + return _objc_msgSend_386(this.pointer, _sel_setDefiniteness_, value.value); + } + + /// customPronounForLanguage: + NSMorphologyCustomPronoun? customPronounForLanguage_(objc.NSString language) { + final _ret = _objc_msgSend_388( + this.pointer, _sel_customPronounForLanguage_, language.pointer); + return _ret.address == 0 + ? null + : NSMorphologyCustomPronoun.castFromPointer(_ret, + retain: true, release: true); + } + + /// setCustomPronoun:forLanguage:error: + bool setCustomPronoun_forLanguage_error_(NSMorphologyCustomPronoun? features, + objc.NSString language, ffi.Pointer> error) { + return _objc_msgSend_389( + this.pointer, + _sel_setCustomPronoun_forLanguage_error_, + features?.pointer ?? ffi.nullptr, + language.pointer, + error); + } + + /// isUnspecified + bool get unspecified { + return _objc_msgSend_13(this.pointer, _sel_isUnspecified); + } + + /// userMorphology + static NSMorphology getUserMorphology() { + final _ret = _objc_msgSend_390(_class_NSMorphology, _sel_userMorphology); + return NSMorphology.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSMorphology init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSMorphology.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSMorphology new1() { + final _ret = _objc_msgSend_19(_class_NSMorphology, _sel_new); + return NSMorphology.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSMorphology allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSMorphology, _sel_allocWithZone_, zone); + return NSMorphology.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSMorphology alloc() { + final _ret = _objc_msgSend_19(_class_NSMorphology, _sel_alloc); + return NSMorphology.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSMorphology, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSMorphology, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSMorphology, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSMorphology, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSMorphology, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSMorphology, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSMorphology, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSMorphology, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSMorphology, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSMorphology = objc.getClass("classes.NSMorphology"); + +enum NSGrammaticalGender { + NSGrammaticalGenderNotSet(0), + NSGrammaticalGenderFeminine(1), + NSGrammaticalGenderMasculine(2), + NSGrammaticalGenderNeuter(3); + + final int value; + const NSGrammaticalGender(this.value); + + static NSGrammaticalGender fromValue(int value) => switch (value) { + 0 => NSGrammaticalGenderNotSet, + 1 => NSGrammaticalGenderFeminine, + 2 => NSGrammaticalGenderMasculine, + 3 => NSGrammaticalGenderNeuter, + _ => + throw ArgumentError("Unknown value for NSGrammaticalGender: $value"), + }; +} + +late final _sel_grammaticalGender = objc.registerName("grammaticalGender"); +final _objc_msgSend_371 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setGrammaticalGender_ = + objc.registerName("setGrammaticalGender:"); +final _objc_msgSend_372 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSGrammaticalPartOfSpeech { + NSGrammaticalPartOfSpeechNotSet(0), + NSGrammaticalPartOfSpeechDeterminer(1), + NSGrammaticalPartOfSpeechPronoun(2), + NSGrammaticalPartOfSpeechLetter(3), + NSGrammaticalPartOfSpeechAdverb(4), + NSGrammaticalPartOfSpeechParticle(5), + NSGrammaticalPartOfSpeechAdjective(6), + NSGrammaticalPartOfSpeechAdposition(7), + NSGrammaticalPartOfSpeechVerb(8), + NSGrammaticalPartOfSpeechNoun(9), + NSGrammaticalPartOfSpeechConjunction(10), + NSGrammaticalPartOfSpeechNumeral(11), + NSGrammaticalPartOfSpeechInterjection(12), + NSGrammaticalPartOfSpeechPreposition(13), + NSGrammaticalPartOfSpeechAbbreviation(14); + + final int value; + const NSGrammaticalPartOfSpeech(this.value); + + static NSGrammaticalPartOfSpeech fromValue(int value) => switch (value) { + 0 => NSGrammaticalPartOfSpeechNotSet, + 1 => NSGrammaticalPartOfSpeechDeterminer, + 2 => NSGrammaticalPartOfSpeechPronoun, + 3 => NSGrammaticalPartOfSpeechLetter, + 4 => NSGrammaticalPartOfSpeechAdverb, + 5 => NSGrammaticalPartOfSpeechParticle, + 6 => NSGrammaticalPartOfSpeechAdjective, + 7 => NSGrammaticalPartOfSpeechAdposition, + 8 => NSGrammaticalPartOfSpeechVerb, + 9 => NSGrammaticalPartOfSpeechNoun, + 10 => NSGrammaticalPartOfSpeechConjunction, + 11 => NSGrammaticalPartOfSpeechNumeral, + 12 => NSGrammaticalPartOfSpeechInterjection, + 13 => NSGrammaticalPartOfSpeechPreposition, + 14 => NSGrammaticalPartOfSpeechAbbreviation, + _ => throw ArgumentError( + "Unknown value for NSGrammaticalPartOfSpeech: $value"), + }; +} + +late final _sel_partOfSpeech = objc.registerName("partOfSpeech"); +final _objc_msgSend_373 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setPartOfSpeech_ = objc.registerName("setPartOfSpeech:"); +final _objc_msgSend_374 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSGrammaticalNumber { + NSGrammaticalNumberNotSet(0), + NSGrammaticalNumberSingular(1), + NSGrammaticalNumberZero(2), + NSGrammaticalNumberPlural(3), + NSGrammaticalNumberPluralTwo(4), + NSGrammaticalNumberPluralFew(5), + NSGrammaticalNumberPluralMany(6); + + final int value; + const NSGrammaticalNumber(this.value); + + static NSGrammaticalNumber fromValue(int value) => switch (value) { + 0 => NSGrammaticalNumberNotSet, + 1 => NSGrammaticalNumberSingular, + 2 => NSGrammaticalNumberZero, + 3 => NSGrammaticalNumberPlural, + 4 => NSGrammaticalNumberPluralTwo, + 5 => NSGrammaticalNumberPluralFew, + 6 => NSGrammaticalNumberPluralMany, + _ => + throw ArgumentError("Unknown value for NSGrammaticalNumber: $value"), + }; +} + +late final _sel_number = objc.registerName("number"); +final _objc_msgSend_375 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setNumber_ = objc.registerName("setNumber:"); +final _objc_msgSend_376 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSGrammaticalCase { + NSGrammaticalCaseNotSet(0), + NSGrammaticalCaseNominative(1), + NSGrammaticalCaseAccusative(2), + NSGrammaticalCaseDative(3), + NSGrammaticalCaseGenitive(4), + NSGrammaticalCasePrepositional(5), + NSGrammaticalCaseAblative(6), + NSGrammaticalCaseAdessive(7), + NSGrammaticalCaseAllative(8), + NSGrammaticalCaseElative(9), + NSGrammaticalCaseIllative(10), + NSGrammaticalCaseEssive(11), + NSGrammaticalCaseInessive(12), + NSGrammaticalCaseLocative(13), + NSGrammaticalCaseTranslative(14); + + final int value; + const NSGrammaticalCase(this.value); + + static NSGrammaticalCase fromValue(int value) => switch (value) { + 0 => NSGrammaticalCaseNotSet, + 1 => NSGrammaticalCaseNominative, + 2 => NSGrammaticalCaseAccusative, + 3 => NSGrammaticalCaseDative, + 4 => NSGrammaticalCaseGenitive, + 5 => NSGrammaticalCasePrepositional, + 6 => NSGrammaticalCaseAblative, + 7 => NSGrammaticalCaseAdessive, + 8 => NSGrammaticalCaseAllative, + 9 => NSGrammaticalCaseElative, + 10 => NSGrammaticalCaseIllative, + 11 => NSGrammaticalCaseEssive, + 12 => NSGrammaticalCaseInessive, + 13 => NSGrammaticalCaseLocative, + 14 => NSGrammaticalCaseTranslative, + _ => throw ArgumentError("Unknown value for NSGrammaticalCase: $value"), + }; +} + +late final _sel_grammaticalCase = objc.registerName("grammaticalCase"); +final _objc_msgSend_377 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setGrammaticalCase_ = objc.registerName("setGrammaticalCase:"); +final _objc_msgSend_378 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSGrammaticalDetermination { + NSGrammaticalDeterminationNotSet(0), + NSGrammaticalDeterminationIndependent(1), + NSGrammaticalDeterminationDependent(2); + + final int value; + const NSGrammaticalDetermination(this.value); + + static NSGrammaticalDetermination fromValue(int value) => switch (value) { + 0 => NSGrammaticalDeterminationNotSet, + 1 => NSGrammaticalDeterminationIndependent, + 2 => NSGrammaticalDeterminationDependent, + _ => throw ArgumentError( + "Unknown value for NSGrammaticalDetermination: $value"), + }; +} + +late final _sel_determination = objc.registerName("determination"); +final _objc_msgSend_379 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDetermination_ = objc.registerName("setDetermination:"); +final _objc_msgSend_380 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSGrammaticalPerson { + NSGrammaticalPersonNotSet(0), + NSGrammaticalPersonFirst(1), + NSGrammaticalPersonSecond(2), + NSGrammaticalPersonThird(3); + + final int value; + const NSGrammaticalPerson(this.value); + + static NSGrammaticalPerson fromValue(int value) => switch (value) { + 0 => NSGrammaticalPersonNotSet, + 1 => NSGrammaticalPersonFirst, + 2 => NSGrammaticalPersonSecond, + 3 => NSGrammaticalPersonThird, + _ => + throw ArgumentError("Unknown value for NSGrammaticalPerson: $value"), + }; +} + +late final _sel_grammaticalPerson = objc.registerName("grammaticalPerson"); +final _objc_msgSend_381 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setGrammaticalPerson_ = + objc.registerName("setGrammaticalPerson:"); +final _objc_msgSend_382 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSGrammaticalPronounType { + NSGrammaticalPronounTypeNotSet(0), + NSGrammaticalPronounTypePersonal(1), + NSGrammaticalPronounTypeReflexive(2), + NSGrammaticalPronounTypePossessive(3); + + final int value; + const NSGrammaticalPronounType(this.value); + + static NSGrammaticalPronounType fromValue(int value) => switch (value) { + 0 => NSGrammaticalPronounTypeNotSet, + 1 => NSGrammaticalPronounTypePersonal, + 2 => NSGrammaticalPronounTypeReflexive, + 3 => NSGrammaticalPronounTypePossessive, + _ => throw ArgumentError( + "Unknown value for NSGrammaticalPronounType: $value"), + }; +} + +late final _sel_pronounType = objc.registerName("pronounType"); +final _objc_msgSend_383 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setPronounType_ = objc.registerName("setPronounType:"); +final _objc_msgSend_384 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +enum NSGrammaticalDefiniteness { + NSGrammaticalDefinitenessNotSet(0), + NSGrammaticalDefinitenessIndefinite(1), + NSGrammaticalDefinitenessDefinite(2); + + final int value; + const NSGrammaticalDefiniteness(this.value); + + static NSGrammaticalDefiniteness fromValue(int value) => switch (value) { + 0 => NSGrammaticalDefinitenessNotSet, + 1 => NSGrammaticalDefinitenessIndefinite, + 2 => NSGrammaticalDefinitenessDefinite, + _ => throw ArgumentError( + "Unknown value for NSGrammaticalDefiniteness: $value"), + }; +} + +late final _sel_definiteness = objc.registerName("definiteness"); +final _objc_msgSend_385 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDefiniteness_ = objc.registerName("setDefiniteness:"); +final _objc_msgSend_386 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); + +/// NSMorphologyCustomPronoun +class NSMorphologyCustomPronoun extends objc.NSObject { + NSMorphologyCustomPronoun._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSMorphologyCustomPronoun] that points to the same underlying object as [other]. + NSMorphologyCustomPronoun.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSMorphologyCustomPronoun] that wraps the given raw object pointer. + NSMorphologyCustomPronoun.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSMorphologyCustomPronoun]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSMorphologyCustomPronoun); + } + + /// isSupportedForLanguage: + static bool isSupportedForLanguage_(objc.NSString language) { + return _objc_msgSend_31(_class_NSMorphologyCustomPronoun, + _sel_isSupportedForLanguage_, language.pointer); + } + + /// requiredKeysForLanguage: + static objc.NSArray requiredKeysForLanguage_(objc.NSString language) { + final _ret = _objc_msgSend_387(_class_NSMorphologyCustomPronoun, + _sel_requiredKeysForLanguage_, language.pointer); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// subjectForm + objc.NSString? get subjectForm { + final _ret = _objc_msgSend_20(this.pointer, _sel_subjectForm); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setSubjectForm: + set subjectForm(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setSubjectForm_, value?.pointer ?? ffi.nullptr); + } + + /// objectForm + objc.NSString? get objectForm { + final _ret = _objc_msgSend_20(this.pointer, _sel_objectForm); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setObjectForm: + set objectForm(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setObjectForm_, value?.pointer ?? ffi.nullptr); + } + + /// possessiveForm + objc.NSString? get possessiveForm { + final _ret = _objc_msgSend_20(this.pointer, _sel_possessiveForm); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPossessiveForm: + set possessiveForm(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setPossessiveForm_, value?.pointer ?? ffi.nullptr); + } + + /// possessiveAdjectiveForm + objc.NSString? get possessiveAdjectiveForm { + final _ret = _objc_msgSend_20(this.pointer, _sel_possessiveAdjectiveForm); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPossessiveAdjectiveForm: + set possessiveAdjectiveForm(objc.NSString? value) { + return _objc_msgSend_21(this.pointer, _sel_setPossessiveAdjectiveForm_, + value?.pointer ?? ffi.nullptr); + } + + /// reflexiveForm + objc.NSString? get reflexiveForm { + final _ret = _objc_msgSend_20(this.pointer, _sel_reflexiveForm); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setReflexiveForm: + set reflexiveForm(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setReflexiveForm_, value?.pointer ?? ffi.nullptr); + } + + /// init + NSMorphologyCustomPronoun init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSMorphologyCustomPronoun.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSMorphologyCustomPronoun new1() { + final _ret = _objc_msgSend_19(_class_NSMorphologyCustomPronoun, _sel_new); + return NSMorphologyCustomPronoun.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSMorphologyCustomPronoun allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSMorphologyCustomPronoun, _sel_allocWithZone_, zone); + return NSMorphologyCustomPronoun.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSMorphologyCustomPronoun alloc() { + final _ret = _objc_msgSend_19(_class_NSMorphologyCustomPronoun, _sel_alloc); + return NSMorphologyCustomPronoun.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSMorphologyCustomPronoun, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSMorphologyCustomPronoun, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSMorphologyCustomPronoun, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSMorphologyCustomPronoun, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSMorphologyCustomPronoun, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSMorphologyCustomPronoun, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSMorphologyCustomPronoun, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSMorphologyCustomPronoun, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSMorphologyCustomPronoun, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSMorphologyCustomPronoun = + objc.getClass("classes.NSMorphologyCustomPronoun"); +late final _sel_isSupportedForLanguage_ = + objc.registerName("isSupportedForLanguage:"); +late final _sel_requiredKeysForLanguage_ = + objc.registerName("requiredKeysForLanguage:"); +final _objc_msgSend_387 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_subjectForm = objc.registerName("subjectForm"); +late final _sel_setSubjectForm_ = objc.registerName("setSubjectForm:"); +late final _sel_objectForm = objc.registerName("objectForm"); +late final _sel_setObjectForm_ = objc.registerName("setObjectForm:"); +late final _sel_possessiveForm = objc.registerName("possessiveForm"); +late final _sel_setPossessiveForm_ = objc.registerName("setPossessiveForm:"); +late final _sel_possessiveAdjectiveForm = + objc.registerName("possessiveAdjectiveForm"); +late final _sel_setPossessiveAdjectiveForm_ = + objc.registerName("setPossessiveAdjectiveForm:"); +late final _sel_reflexiveForm = objc.registerName("reflexiveForm"); +late final _sel_setReflexiveForm_ = objc.registerName("setReflexiveForm:"); +late final _sel_customPronounForLanguage_ = + objc.registerName("customPronounForLanguage:"); +final _objc_msgSend_388 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setCustomPronoun_forLanguage_error_ = + objc.registerName("setCustomPronoun:forLanguage:error:"); +final _objc_msgSend_389 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_isUnspecified = objc.registerName("isUnspecified"); +late final _sel_userMorphology = objc.registerName("userMorphology"); +final _objc_msgSend_390 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); + +/// NSOperationQueue +class NSOperationQueue extends objc.NSObject { + NSOperationQueue._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSOperationQueue] that points to the same underlying object as [other]. + NSOperationQueue.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSOperationQueue] that wraps the given raw object pointer. + NSOperationQueue.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSOperationQueue]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSOperationQueue); + } + + /// progress + NSProgress get progress { + final _ret = _objc_msgSend_356(this.pointer, _sel_progress); + return NSProgress.castFromPointer(_ret, retain: true, release: true); + } + + /// addOperation: + void addOperation_(NSOperation op) { + _objc_msgSend_391(this.pointer, _sel_addOperation_, op.pointer); + } + + /// addOperations:waitUntilFinished: + void addOperations_waitUntilFinished_(objc.NSArray ops, bool wait) { + _objc_msgSend_396( + this.pointer, _sel_addOperations_waitUntilFinished_, ops.pointer, wait); + } + + /// addOperationWithBlock: + void addOperationWithBlock_(ObjCBlock_ffiVoid block) { + _objc_msgSend_258(this.pointer, _sel_addOperationWithBlock_, block.pointer); + } + + /// addBarrierBlock: + void addBarrierBlock_(ObjCBlock_ffiVoid barrier) { + _objc_msgSend_258(this.pointer, _sel_addBarrierBlock_, barrier.pointer); + } + + /// maxConcurrentOperationCount + int get maxConcurrentOperationCount { + return _objc_msgSend_123(this.pointer, _sel_maxConcurrentOperationCount); + } + + /// setMaxConcurrentOperationCount: + set maxConcurrentOperationCount(int value) { + return _objc_msgSend_142( + this.pointer, _sel_setMaxConcurrentOperationCount_, value); + } + + /// isSuspended + bool get suspended { + return _objc_msgSend_13(this.pointer, _sel_isSuspended); + } + + /// setSuspended: + set suspended(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setSuspended_, value); + } + + /// name + objc.NSString? get name { + final _ret = _objc_msgSend_20(this.pointer, _sel_name); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setName: + set name(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setName_, value?.pointer ?? ffi.nullptr); + } + + /// qualityOfService + NSQualityOfService get qualityOfService { + final _ret = _objc_msgSend_394(this.pointer, _sel_qualityOfService); + return NSQualityOfService.fromValue(_ret); + } + + /// setQualityOfService: + set qualityOfService(NSQualityOfService value) { + return _objc_msgSend_395( + this.pointer, _sel_setQualityOfService_, value.value); + } + + /// underlyingQueue + objc.NSObject? get underlyingQueue { + final _ret = _objc_msgSend_397(this.pointer, _sel_underlyingQueue); + return _ret.address == 0 + ? null + : objc.NSObject.castFromPointer(_ret, retain: true, release: true); + } + + /// setUnderlyingQueue: + set underlyingQueue(objc.NSObject? value) { + return _objc_msgSend_398( + this.pointer, _sel_setUnderlyingQueue_, value?.pointer ?? ffi.nullptr); + } + + /// cancelAllOperations + void cancelAllOperations() { + _objc_msgSend_7(this.pointer, _sel_cancelAllOperations); + } + + /// waitUntilAllOperationsAreFinished + void waitUntilAllOperationsAreFinished() { + _objc_msgSend_7(this.pointer, _sel_waitUntilAllOperationsAreFinished); + } + + /// currentQueue + static NSOperationQueue? getCurrentQueue() { + final _ret = _objc_msgSend_399(_class_NSOperationQueue, _sel_currentQueue); + return _ret.address == 0 + ? null + : NSOperationQueue.castFromPointer(_ret, retain: true, release: true); + } + + /// mainQueue + static NSOperationQueue getMainQueue() { + final _ret = _objc_msgSend_400(_class_NSOperationQueue, _sel_mainQueue); + return NSOperationQueue.castFromPointer(_ret, retain: true, release: true); + } + + /// operations + objc.NSArray get operations { + final _ret = _objc_msgSend_33(this.pointer, _sel_operations); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// operationCount + int get operationCount { + return _objc_msgSend_57(this.pointer, _sel_operationCount); + } + + /// init + NSOperationQueue init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSOperationQueue.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSOperationQueue new1() { + final _ret = _objc_msgSend_19(_class_NSOperationQueue, _sel_new); + return NSOperationQueue.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSOperationQueue allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSOperationQueue, _sel_allocWithZone_, zone); + return NSOperationQueue.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSOperationQueue alloc() { + final _ret = _objc_msgSend_19(_class_NSOperationQueue, _sel_alloc); + return NSOperationQueue.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSOperationQueue, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSOperationQueue, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSOperationQueue, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSOperationQueue, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSOperationQueue, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSOperationQueue, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSOperationQueue, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSOperationQueue, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSOperationQueue, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSOperationQueue = objc.getClass("classes.NSOperationQueue"); + +/// NSOperation +class NSOperation extends objc.NSObject { + NSOperation._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSOperation] that points to the same underlying object as [other]. + NSOperation.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSOperation] that wraps the given raw object pointer. + NSOperation.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSOperation]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSOperation); + } + + /// start + void start() { + _objc_msgSend_7(this.pointer, _sel_start); + } + + /// main + void main() { + _objc_msgSend_7(this.pointer, _sel_main); + } + + /// isCancelled + bool get cancelled { + return _objc_msgSend_13(this.pointer, _sel_isCancelled); + } + + /// cancel + void cancel() { + _objc_msgSend_7(this.pointer, _sel_cancel); + } + + /// isExecuting + bool get executing { + return _objc_msgSend_13(this.pointer, _sel_isExecuting); + } + + /// isFinished + bool get finished { + return _objc_msgSend_13(this.pointer, _sel_isFinished); + } + + /// isConcurrent + bool get concurrent { + return _objc_msgSend_13(this.pointer, _sel_isConcurrent); + } + + /// isAsynchronous + bool get asynchronous { + return _objc_msgSend_13(this.pointer, _sel_isAsynchronous); + } + + /// isReady + bool get ready { + return _objc_msgSend_13(this.pointer, _sel_isReady); + } + + /// addDependency: + void addDependency_(NSOperation op) { + _objc_msgSend_391(this.pointer, _sel_addDependency_, op.pointer); + } + + /// removeDependency: + void removeDependency_(NSOperation op) { + _objc_msgSend_391(this.pointer, _sel_removeDependency_, op.pointer); + } + + /// dependencies + objc.NSArray get dependencies { + final _ret = _objc_msgSend_33(this.pointer, _sel_dependencies); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// queuePriority + NSOperationQueuePriority get queuePriority { + final _ret = _objc_msgSend_392(this.pointer, _sel_queuePriority); + return NSOperationQueuePriority.fromValue(_ret); + } + + /// setQueuePriority: + set queuePriority(NSOperationQueuePriority value) { + return _objc_msgSend_393(this.pointer, _sel_setQueuePriority_, value.value); + } + + /// completionBlock + ObjCBlock_ffiVoid? get completionBlock { + final _ret = _objc_msgSend_15(this.pointer, _sel_completionBlock); + return _ret.address == 0 + ? null + : ObjCBlock_ffiVoid.castFromPointer(_ret, retain: true, release: true); + } + + /// setCompletionBlock: + set completionBlock(ObjCBlock_ffiVoid? value) { + return _objc_msgSend_16( + this.pointer, _sel_setCompletionBlock_, value?.pointer ?? ffi.nullptr); + } + + /// waitUntilFinished + void waitUntilFinished() { + _objc_msgSend_7(this.pointer, _sel_waitUntilFinished); + } + + /// threadPriority + double get threadPriority { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_threadPriority) + : _objc_msgSend_18(this.pointer, _sel_threadPriority); + } + + /// setThreadPriority: + set threadPriority(double value) { + return _objc_msgSend_223(this.pointer, _sel_setThreadPriority_, value); + } + + /// qualityOfService + NSQualityOfService get qualityOfService { + final _ret = _objc_msgSend_394(this.pointer, _sel_qualityOfService); + return NSQualityOfService.fromValue(_ret); + } + + /// setQualityOfService: + set qualityOfService(NSQualityOfService value) { + return _objc_msgSend_395( + this.pointer, _sel_setQualityOfService_, value.value); + } + + /// name + objc.NSString? get name { + final _ret = _objc_msgSend_20(this.pointer, _sel_name); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setName: + set name(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setName_, value?.pointer ?? ffi.nullptr); + } + + /// init + NSOperation init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSOperation.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSOperation new1() { + final _ret = _objc_msgSend_19(_class_NSOperation, _sel_new); + return NSOperation.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSOperation allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSOperation, _sel_allocWithZone_, zone); + return NSOperation.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSOperation alloc() { + final _ret = _objc_msgSend_19(_class_NSOperation, _sel_alloc); + return NSOperation.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSOperation, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSOperation, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSOperation, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSOperation, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSOperation, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSOperation, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSOperation, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSOperation, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSOperation, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSOperation = objc.getClass("classes.NSOperation"); +late final _sel_start = objc.registerName("start"); +late final _sel_main = objc.registerName("main"); +late final _sel_isExecuting = objc.registerName("isExecuting"); +late final _sel_isConcurrent = objc.registerName("isConcurrent"); +late final _sel_isAsynchronous = objc.registerName("isAsynchronous"); +late final _sel_isReady = objc.registerName("isReady"); +late final _sel_addDependency_ = objc.registerName("addDependency:"); +final _objc_msgSend_391 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_removeDependency_ = objc.registerName("removeDependency:"); +late final _sel_dependencies = objc.registerName("dependencies"); + +enum NSOperationQueuePriority { + NSOperationQueuePriorityVeryLow(-8), + NSOperationQueuePriorityLow(-4), + NSOperationQueuePriorityNormal(0), + NSOperationQueuePriorityHigh(4), + NSOperationQueuePriorityVeryHigh(8); + + final int value; + const NSOperationQueuePriority(this.value); + + static NSOperationQueuePriority fromValue(int value) => switch (value) { + -8 => NSOperationQueuePriorityVeryLow, + -4 => NSOperationQueuePriorityLow, + 0 => NSOperationQueuePriorityNormal, + 4 => NSOperationQueuePriorityHigh, + 8 => NSOperationQueuePriorityVeryHigh, + _ => throw ArgumentError( + "Unknown value for NSOperationQueuePriority: $value"), + }; +} + +late final _sel_queuePriority = objc.registerName("queuePriority"); +final _objc_msgSend_392 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setQueuePriority_ = objc.registerName("setQueuePriority:"); +final _objc_msgSend_393 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_completionBlock = objc.registerName("completionBlock"); +late final _sel_setCompletionBlock_ = objc.registerName("setCompletionBlock:"); +late final _sel_waitUntilFinished = objc.registerName("waitUntilFinished"); +late final _sel_threadPriority = objc.registerName("threadPriority"); +late final _sel_setThreadPriority_ = objc.registerName("setThreadPriority:"); + +enum NSQualityOfService { + NSQualityOfServiceUserInteractive(33), + NSQualityOfServiceUserInitiated(25), + NSQualityOfServiceUtility(17), + NSQualityOfServiceBackground(9), + NSQualityOfServiceDefault(-1); + + final int value; + const NSQualityOfService(this.value); + + static NSQualityOfService fromValue(int value) => switch (value) { + 33 => NSQualityOfServiceUserInteractive, + 25 => NSQualityOfServiceUserInitiated, + 17 => NSQualityOfServiceUtility, + 9 => NSQualityOfServiceBackground, + -1 => NSQualityOfServiceDefault, + _ => + throw ArgumentError("Unknown value for NSQualityOfService: $value"), + }; +} + +late final _sel_qualityOfService = objc.registerName("qualityOfService"); +final _objc_msgSend_394 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setQualityOfService_ = + objc.registerName("setQualityOfService:"); +final _objc_msgSend_395 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setName_ = objc.registerName("setName:"); +late final _sel_addOperation_ = objc.registerName("addOperation:"); +late final _sel_addOperations_waitUntilFinished_ = + objc.registerName("addOperations:waitUntilFinished:"); +final _objc_msgSend_396 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_addOperationWithBlock_ = + objc.registerName("addOperationWithBlock:"); +late final _sel_addBarrierBlock_ = objc.registerName("addBarrierBlock:"); +late final _sel_maxConcurrentOperationCount = + objc.registerName("maxConcurrentOperationCount"); +late final _sel_setMaxConcurrentOperationCount_ = + objc.registerName("setMaxConcurrentOperationCount:"); +late final _sel_isSuspended = objc.registerName("isSuspended"); +late final _sel_setSuspended_ = objc.registerName("setSuspended:"); +late final _sel_underlyingQueue = objc.registerName("underlyingQueue"); +final _objc_msgSend_397 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setUnderlyingQueue_ = objc.registerName("setUnderlyingQueue:"); +final _objc_msgSend_398 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_cancelAllOperations = objc.registerName("cancelAllOperations"); +late final _sel_waitUntilAllOperationsAreFinished = + objc.registerName("waitUntilAllOperationsAreFinished"); +late final _sel_currentQueue = objc.registerName("currentQueue"); +final _objc_msgSend_399 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_mainQueue = objc.registerName("mainQueue"); +final _objc_msgSend_400 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_operations = objc.registerName("operations"); +late final _sel_operationCount = objc.registerName("operationCount"); + +/// NSOrthography +class NSOrthography extends objc.NSObject { + NSOrthography._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSOrthography] that points to the same underlying object as [other]. + NSOrthography.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSOrthography] that wraps the given raw object pointer. + NSOrthography.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSOrthography]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSOrthography); + } + + /// dominantScript + objc.NSString get dominantScript { + final _ret = _objc_msgSend_11(this.pointer, _sel_dominantScript); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// languageMap + objc.NSDictionary get languageMap { + final _ret = _objc_msgSend_121(this.pointer, _sel_languageMap); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithDominantScript:languageMap: + NSOrthography initWithDominantScript_languageMap_( + objc.NSString script, objc.NSDictionary map) { + final _ret = _objc_msgSend_401(this.pointer, + _sel_initWithDominantScript_languageMap_, script.pointer, map.pointer); + return NSOrthography.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithCoder: + NSOrthography? initWithCoder_(objc.NSCoder coder) { + final _ret = + _objc_msgSend_239(this.pointer, _sel_initWithCoder_, coder.pointer); + return _ret.address == 0 + ? null + : NSOrthography.castFromPointer(_ret, retain: true, release: true); + } + + /// languagesForScript: + objc.NSArray? languagesForScript_(objc.NSString script) { + final _ret = _objc_msgSend_299( + this.pointer, _sel_languagesForScript_, script.pointer); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// dominantLanguageForScript: + objc.NSString? dominantLanguageForScript_(objc.NSString script) { + final _ret = _objc_msgSend_42( + this.pointer, _sel_dominantLanguageForScript_, script.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// dominantLanguage + objc.NSString get dominantLanguage { + final _ret = _objc_msgSend_11(this.pointer, _sel_dominantLanguage); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// allScripts + objc.NSArray get allScripts { + final _ret = _objc_msgSend_33(this.pointer, _sel_allScripts); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// allLanguages + objc.NSArray get allLanguages { + final _ret = _objc_msgSend_33(this.pointer, _sel_allLanguages); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// defaultOrthographyForLanguage: + static NSOrthography defaultOrthographyForLanguage_(objc.NSString language) { + final _ret = _objc_msgSend_63(_class_NSOrthography, + _sel_defaultOrthographyForLanguage_, language.pointer); + return NSOrthography.castFromPointer(_ret, retain: true, release: true); + } + + /// orthographyWithDominantScript:languageMap: + static NSOrthography orthographyWithDominantScript_languageMap_( + objc.NSString script, objc.NSDictionary map) { + final _ret = _objc_msgSend_401( + _class_NSOrthography, + _sel_orthographyWithDominantScript_languageMap_, + script.pointer, + map.pointer); + return NSOrthography.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSOrthography init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSOrthography.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSOrthography new1() { + final _ret = _objc_msgSend_19(_class_NSOrthography, _sel_new); + return NSOrthography.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSOrthography allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSOrthography, _sel_allocWithZone_, zone); + return NSOrthography.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSOrthography alloc() { + final _ret = _objc_msgSend_19(_class_NSOrthography, _sel_alloc); + return NSOrthography.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSOrthography, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSOrthography, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSOrthography, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSOrthography, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSOrthography, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSOrthography, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSOrthography, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSOrthography, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSOrthography, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSOrthography = objc.getClass("classes.NSOrthography"); +late final _sel_dominantScript = objc.registerName("dominantScript"); +late final _sel_languageMap = objc.registerName("languageMap"); +late final _sel_initWithDominantScript_languageMap_ = + objc.registerName("initWithDominantScript:languageMap:"); +final _objc_msgSend_401 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_languagesForScript_ = objc.registerName("languagesForScript:"); +late final _sel_dominantLanguageForScript_ = + objc.registerName("dominantLanguageForScript:"); +late final _sel_dominantLanguage = objc.registerName("dominantLanguage"); +late final _sel_allScripts = objc.registerName("allScripts"); +late final _sel_allLanguages = objc.registerName("allLanguages"); +late final _sel_defaultOrthographyForLanguage_ = + objc.registerName("defaultOrthographyForLanguage:"); +late final _sel_orthographyWithDominantScript_languageMap_ = + objc.registerName("orthographyWithDominantScript:languageMap:"); + +/// NSPointerArray +class NSPointerArray extends objc.NSObject { + NSPointerArray._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSPointerArray] that points to the same underlying object as [other]. + NSPointerArray.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSPointerArray] that wraps the given raw object pointer. + NSPointerArray.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSPointerArray]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSPointerArray); + } + + /// initWithOptions: + NSPointerArray initWithOptions_(NSPointerFunctionsOptions options) { + final _ret = + _objc_msgSend_402(this.pointer, _sel_initWithOptions_, options.value); + return NSPointerArray.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithPointerFunctions: + NSPointerArray initWithPointerFunctions_(NSPointerFunctions functions) { + final _ret = _objc_msgSend_416( + this.pointer, _sel_initWithPointerFunctions_, functions.pointer); + return NSPointerArray.castFromPointer(_ret, retain: true, release: true); + } + + /// pointerArrayWithOptions: + static NSPointerArray pointerArrayWithOptions_( + NSPointerFunctionsOptions options) { + final _ret = _objc_msgSend_417( + _class_NSPointerArray, _sel_pointerArrayWithOptions_, options.value); + return NSPointerArray.castFromPointer(_ret, retain: true, release: true); + } + + /// pointerArrayWithPointerFunctions: + static NSPointerArray pointerArrayWithPointerFunctions_( + NSPointerFunctions functions) { + final _ret = _objc_msgSend_418(_class_NSPointerArray, + _sel_pointerArrayWithPointerFunctions_, functions.pointer); + return NSPointerArray.castFromPointer(_ret, retain: true, release: true); + } + + /// pointerFunctions + NSPointerFunctions get pointerFunctions { + final _ret = _objc_msgSend_419(this.pointer, _sel_pointerFunctions); + return NSPointerFunctions.castFromPointer(_ret, + retain: true, release: true); + } + + /// pointerAtIndex: + ffi.Pointer pointerAtIndex_(int index) { + return _objc_msgSend_420(this.pointer, _sel_pointerAtIndex_, index); + } + + /// addPointer: + void addPointer_(ffi.Pointer pointer) { + _objc_msgSend_421(this.pointer, _sel_addPointer_, pointer); + } + + /// removePointerAtIndex: + void removePointerAtIndex_(int index) { + _objc_msgSend_422(this.pointer, _sel_removePointerAtIndex_, index); + } + + /// insertPointer:atIndex: + void insertPointer_atIndex_(ffi.Pointer item, int index) { + _objc_msgSend_423(this.pointer, _sel_insertPointer_atIndex_, item, index); + } + + /// replacePointerAtIndex:withPointer: + void replacePointerAtIndex_withPointer_( + int index, ffi.Pointer item) { + _objc_msgSend_424( + this.pointer, _sel_replacePointerAtIndex_withPointer_, index, item); + } + + /// compact + void compact() { + _objc_msgSend_7(this.pointer, _sel_compact); + } + + /// count + int get count { + return _objc_msgSend_57(this.pointer, _sel_count); + } + + /// setCount: + set count(int value) { + return _objc_msgSend_133(this.pointer, _sel_setCount_, value); + } + + /// pointerArrayWithStrongObjects + static objc.ObjCObjectBase pointerArrayWithStrongObjects() { + final _ret = _objc_msgSend_19( + _class_NSPointerArray, _sel_pointerArrayWithStrongObjects); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// pointerArrayWithWeakObjects + static objc.ObjCObjectBase pointerArrayWithWeakObjects() { + final _ret = _objc_msgSend_19( + _class_NSPointerArray, _sel_pointerArrayWithWeakObjects); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// strongObjectsPointerArray + static NSPointerArray strongObjectsPointerArray() { + final _ret = _objc_msgSend_425( + _class_NSPointerArray, _sel_strongObjectsPointerArray); + return NSPointerArray.castFromPointer(_ret, retain: true, release: true); + } + + /// weakObjectsPointerArray + static NSPointerArray weakObjectsPointerArray() { + final _ret = + _objc_msgSend_425(_class_NSPointerArray, _sel_weakObjectsPointerArray); + return NSPointerArray.castFromPointer(_ret, retain: true, release: true); + } + + /// allObjects + objc.NSArray get allObjects { + final _ret = _objc_msgSend_33(this.pointer, _sel_allObjects); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSPointerArray init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSPointerArray.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSPointerArray new1() { + final _ret = _objc_msgSend_19(_class_NSPointerArray, _sel_new); + return NSPointerArray.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSPointerArray allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSPointerArray, _sel_allocWithZone_, zone); + return NSPointerArray.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSPointerArray alloc() { + final _ret = _objc_msgSend_19(_class_NSPointerArray, _sel_alloc); + return NSPointerArray.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSPointerArray, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSPointerArray, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSPointerArray, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSPointerArray, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSPointerArray, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSPointerArray, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSPointerArray, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSPointerArray, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSPointerArray, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSPointerArray = objc.getClass("classes.NSPointerArray"); + +enum NSPointerFunctionsOptions { + NSPointerFunctionsStrongMemory(0), + NSPointerFunctionsZeroingWeakMemory(1), + NSPointerFunctionsOpaqueMemory(2), + NSPointerFunctionsMallocMemory(3), + NSPointerFunctionsMachVirtualMemory(4), + NSPointerFunctionsWeakMemory(5), + NSPointerFunctionsOpaquePersonality(256), + NSPointerFunctionsObjectPointerPersonality(512), + NSPointerFunctionsCStringPersonality(768), + NSPointerFunctionsStructPersonality(1024), + NSPointerFunctionsIntegerPersonality(1280), + NSPointerFunctionsCopyIn(65536); + + static const NSPointerFunctionsObjectPersonality = + NSPointerFunctionsStrongMemory; + + final int value; + const NSPointerFunctionsOptions(this.value); + + static NSPointerFunctionsOptions fromValue(int value) => switch (value) { + 0 => NSPointerFunctionsStrongMemory, + 1 => NSPointerFunctionsZeroingWeakMemory, + 2 => NSPointerFunctionsOpaqueMemory, + 3 => NSPointerFunctionsMallocMemory, + 4 => NSPointerFunctionsMachVirtualMemory, + 5 => NSPointerFunctionsWeakMemory, + 256 => NSPointerFunctionsOpaquePersonality, + 512 => NSPointerFunctionsObjectPointerPersonality, + 768 => NSPointerFunctionsCStringPersonality, + 1024 => NSPointerFunctionsStructPersonality, + 1280 => NSPointerFunctionsIntegerPersonality, + 65536 => NSPointerFunctionsCopyIn, + _ => throw ArgumentError( + "Unknown value for NSPointerFunctionsOptions: $value"), + }; + + @override + String toString() { + if (this == NSPointerFunctionsStrongMemory) + return "NSPointerFunctionsOptions.NSPointerFunctionsStrongMemory, NSPointerFunctionsOptions.NSPointerFunctionsObjectPersonality"; + return super.toString(); + } +} + +late final _sel_initWithOptions_ = objc.registerName("initWithOptions:"); +final _objc_msgSend_402 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int)>(); + +/// NSPointerFunctions +class NSPointerFunctions extends objc.NSObject { + NSPointerFunctions._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSPointerFunctions] that points to the same underlying object as [other]. + NSPointerFunctions.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSPointerFunctions] that wraps the given raw object pointer. + NSPointerFunctions.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSPointerFunctions]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSPointerFunctions); + } + + /// initWithOptions: + NSPointerFunctions initWithOptions_(NSPointerFunctionsOptions options) { + final _ret = + _objc_msgSend_402(this.pointer, _sel_initWithOptions_, options.value); + return NSPointerFunctions.castFromPointer(_ret, + retain: true, release: true); + } + + /// pointerFunctionsWithOptions: + static NSPointerFunctions pointerFunctionsWithOptions_( + NSPointerFunctionsOptions options) { + final _ret = _objc_msgSend_403(_class_NSPointerFunctions, + _sel_pointerFunctionsWithOptions_, options.value); + return NSPointerFunctions.castFromPointer(_ret, + retain: true, release: true); + } + + /// hashFunction + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>>)>> + get hashFunction { + return _objc_msgSend_404(this.pointer, _sel_hashFunction); + } + + /// setHashFunction: + set hashFunction( + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>> + value) { + return _objc_msgSend_405(this.pointer, _sel_setHashFunction_, value); + } + + /// isEqualFunction + ffi.Pointer< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>>)>> + get isEqualFunction { + return _objc_msgSend_406(this.pointer, _sel_isEqualFunction); + } + + /// setIsEqualFunction: + set isEqualFunction( + ffi.Pointer< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>> + value) { + return _objc_msgSend_407(this.pointer, _sel_setIsEqualFunction_, value); + } + + /// sizeFunction + ffi.Pointer< + ffi.NativeFunction)>> + get sizeFunction { + return _objc_msgSend_408(this.pointer, _sel_sizeFunction); + } + + /// setSizeFunction: + set sizeFunction( + ffi.Pointer< + ffi + .NativeFunction)>> + value) { + return _objc_msgSend_409(this.pointer, _sel_setSizeFunction_, value); + } + + /// descriptionFunction + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer)>> + get descriptionFunction { + return _objc_msgSend_410(this.pointer, _sel_descriptionFunction); + } + + /// setDescriptionFunction: + set descriptionFunction( + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer)>> + value) { + return _objc_msgSend_411(this.pointer, _sel_setDescriptionFunction_, value); + } + + /// relinquishFunction + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>>)>> + get relinquishFunction { + return _objc_msgSend_412(this.pointer, _sel_relinquishFunction); + } + + /// setRelinquishFunction: + set relinquishFunction( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>> + value) { + return _objc_msgSend_413(this.pointer, _sel_setRelinquishFunction_, value); + } + + /// acquireFunction + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>>, + ffi.Bool)>> get acquireFunction { + return _objc_msgSend_414(this.pointer, _sel_acquireFunction); + } + + /// setAcquireFunction: + set acquireFunction( + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>, + ffi.Bool)>> + value) { + return _objc_msgSend_415(this.pointer, _sel_setAcquireFunction_, value); + } + + /// usesStrongWriteBarrier + bool get usesStrongWriteBarrier { + return _objc_msgSend_13(this.pointer, _sel_usesStrongWriteBarrier); + } + + /// setUsesStrongWriteBarrier: + set usesStrongWriteBarrier(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setUsesStrongWriteBarrier_, value); + } + + /// usesWeakReadAndWriteBarriers + bool get usesWeakReadAndWriteBarriers { + return _objc_msgSend_13(this.pointer, _sel_usesWeakReadAndWriteBarriers); + } + + /// setUsesWeakReadAndWriteBarriers: + set usesWeakReadAndWriteBarriers(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setUsesWeakReadAndWriteBarriers_, value); + } + + /// init + NSPointerFunctions init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSPointerFunctions.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSPointerFunctions new1() { + final _ret = _objc_msgSend_19(_class_NSPointerFunctions, _sel_new); + return NSPointerFunctions.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSPointerFunctions allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSPointerFunctions, _sel_allocWithZone_, zone); + return NSPointerFunctions.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSPointerFunctions alloc() { + final _ret = _objc_msgSend_19(_class_NSPointerFunctions, _sel_alloc); + return NSPointerFunctions.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSPointerFunctions, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSPointerFunctions, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSPointerFunctions, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSPointerFunctions, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSPointerFunctions, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSPointerFunctions, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSPointerFunctions, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSPointerFunctions, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSPointerFunctions, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSPointerFunctions = + objc.getClass("classes.NSPointerFunctions"); +late final _sel_pointerFunctionsWithOptions_ = + objc.registerName("pointerFunctionsWithOptions:"); +final _objc_msgSend_403 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_hashFunction = objc.registerName("hashFunction"); +final _objc_msgSend_404 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer, ffi.Pointer)>>)>> Function( + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>> + Function(ffi.Pointer, ffi.Pointer)>(); +late final _sel_setHashFunction_ = objc.registerName("setHashFunction:"); +final _objc_msgSend_405 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>>)>(); +late final _sel_isEqualFunction = objc.registerName("isEqualFunction"); +final _objc_msgSend_406 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer, ffi.Pointer, ffi.Pointer)>>)>> Function( + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>> + Function(ffi.Pointer, ffi.Pointer)>(); +late final _sel_setIsEqualFunction_ = objc.registerName("setIsEqualFunction:"); +final _objc_msgSend_407 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>>)>>)>(); +late final _sel_sizeFunction = objc.registerName("sizeFunction"); +final _objc_msgSend_408 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer)>> Function( + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>> + Function(ffi.Pointer, ffi.Pointer)>(); +late final _sel_setSizeFunction_ = objc.registerName("setSizeFunction:"); +final _objc_msgSend_409 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer)>>)>(); +late final _sel_descriptionFunction = objc.registerName("descriptionFunction"); +final _objc_msgSend_410 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer)>> Function( + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer)>> + Function(ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDescriptionFunction_ = + objc.registerName("setDescriptionFunction:"); +final _objc_msgSend_411 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer)>>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer)>>)>(); +late final _sel_relinquishFunction = objc.registerName("relinquishFunction"); +final _objc_msgSend_412 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer, ffi.Pointer)>>)>> Function( + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>> + Function(ffi.Pointer, ffi.Pointer)>(); +late final _sel_setRelinquishFunction_ = + objc.registerName("setRelinquishFunction:"); +final _objc_msgSend_413 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>)>>)>(); +late final _sel_acquireFunction = objc.registerName("acquireFunction"); +final _objc_msgSend_414 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, ffi.Pointer)>>, ffi.Bool)>> Function( + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>, + ffi.Bool)>> + Function(ffi.Pointer, ffi.Pointer)>(); +late final _sel_setAcquireFunction_ = objc.registerName("setAcquireFunction:"); +final _objc_msgSend_415 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer)>>, + ffi.Bool)>>)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer< + ffi + .NativeFunction)>>, + ffi.Bool)>>)>(); +late final _sel_usesStrongWriteBarrier = + objc.registerName("usesStrongWriteBarrier"); +late final _sel_setUsesStrongWriteBarrier_ = + objc.registerName("setUsesStrongWriteBarrier:"); +late final _sel_usesWeakReadAndWriteBarriers = + objc.registerName("usesWeakReadAndWriteBarriers"); +late final _sel_setUsesWeakReadAndWriteBarriers_ = + objc.registerName("setUsesWeakReadAndWriteBarriers:"); +late final _sel_initWithPointerFunctions_ = + objc.registerName("initWithPointerFunctions:"); +final _objc_msgSend_416 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_pointerArrayWithOptions_ = + objc.registerName("pointerArrayWithOptions:"); +final _objc_msgSend_417 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_pointerArrayWithPointerFunctions_ = + objc.registerName("pointerArrayWithPointerFunctions:"); +final _objc_msgSend_418 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_pointerFunctions = objc.registerName("pointerFunctions"); +final _objc_msgSend_419 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_pointerAtIndex_ = objc.registerName("pointerAtIndex:"); +final _objc_msgSend_420 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_addPointer_ = objc.registerName("addPointer:"); +final _objc_msgSend_421 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_removePointerAtIndex_ = + objc.registerName("removePointerAtIndex:"); +final _objc_msgSend_422 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_insertPointer_atIndex_ = + objc.registerName("insertPointer:atIndex:"); +final _objc_msgSend_423 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer, int)>(); +late final _sel_replacePointerAtIndex_withPointer_ = + objc.registerName("replacePointerAtIndex:withPointer:"); +final _objc_msgSend_424 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int, ffi.Pointer)>(); +late final _sel_compact = objc.registerName("compact"); +late final _sel_count = objc.registerName("count"); +late final _sel_setCount_ = objc.registerName("setCount:"); +late final _sel_pointerArrayWithStrongObjects = + objc.registerName("pointerArrayWithStrongObjects"); +late final _sel_pointerArrayWithWeakObjects = + objc.registerName("pointerArrayWithWeakObjects"); +late final _sel_strongObjectsPointerArray = + objc.registerName("strongObjectsPointerArray"); +final _objc_msgSend_425 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_weakObjectsPointerArray = + objc.registerName("weakObjectsPointerArray"); +late final _sel_allObjects = objc.registerName("allObjects"); + +/// NSProcessInfo +class NSProcessInfo extends objc.NSObject { + NSProcessInfo._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSProcessInfo] that points to the same underlying object as [other]. + NSProcessInfo.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSProcessInfo] that wraps the given raw object pointer. + NSProcessInfo.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSProcessInfo]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSProcessInfo); + } + + /// processInfo + static NSProcessInfo getProcessInfo() { + final _ret = _objc_msgSend_426(_class_NSProcessInfo, _sel_processInfo); + return NSProcessInfo.castFromPointer(_ret, retain: true, release: true); + } + + /// environment + objc.NSDictionary get environment { + final _ret = _objc_msgSend_121(this.pointer, _sel_environment); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// arguments + objc.NSArray get arguments { + final _ret = _objc_msgSend_33(this.pointer, _sel_arguments); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// hostName + objc.NSString get hostName { + final _ret = _objc_msgSend_11(this.pointer, _sel_hostName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// processName + objc.NSString get processName { + final _ret = _objc_msgSend_11(this.pointer, _sel_processName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setProcessName: + set processName(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setProcessName_, value.pointer); + } + + /// processIdentifier + int get processIdentifier { + return _objc_msgSend_273(this.pointer, _sel_processIdentifier); + } + + /// globallyUniqueString + objc.NSString get globallyUniqueString { + final _ret = _objc_msgSend_11(this.pointer, _sel_globallyUniqueString); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// operatingSystem + int operatingSystem() { + return _objc_msgSend_57(this.pointer, _sel_operatingSystem); + } + + /// operatingSystemName + objc.NSString operatingSystemName() { + final _ret = _objc_msgSend_11(this.pointer, _sel_operatingSystemName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// operatingSystemVersionString + objc.NSString get operatingSystemVersionString { + final _ret = + _objc_msgSend_11(this.pointer, _sel_operatingSystemVersionString); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// operatingSystemVersion + void getOperatingSystemVersion(ffi.Pointer stret) { + objc.useMsgSendVariants + ? _objc_msgSend_427Stret( + stret, this.pointer, _sel_operatingSystemVersion) + : stret.ref = + _objc_msgSend_427(this.pointer, _sel_operatingSystemVersion); + } + + /// processorCount + int get processorCount { + return _objc_msgSend_57(this.pointer, _sel_processorCount); + } + + /// activeProcessorCount + int get activeProcessorCount { + return _objc_msgSend_57(this.pointer, _sel_activeProcessorCount); + } + + /// physicalMemory + int get physicalMemory { + return _objc_msgSend_276(this.pointer, _sel_physicalMemory); + } + + /// isOperatingSystemAtLeastVersion: + bool isOperatingSystemAtLeastVersion_(NSOperatingSystemVersion version) { + return _objc_msgSend_428( + this.pointer, _sel_isOperatingSystemAtLeastVersion_, version); + } + + /// systemUptime + double get systemUptime { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_systemUptime) + : _objc_msgSend_18(this.pointer, _sel_systemUptime); + } + + /// disableSuddenTermination + void disableSuddenTermination() { + _objc_msgSend_7(this.pointer, _sel_disableSuddenTermination); + } + + /// enableSuddenTermination + void enableSuddenTermination() { + _objc_msgSend_7(this.pointer, _sel_enableSuddenTermination); + } + + /// disableAutomaticTermination: + void disableAutomaticTermination_(objc.NSString reason) { + _objc_msgSend_108( + this.pointer, _sel_disableAutomaticTermination_, reason.pointer); + } + + /// enableAutomaticTermination: + void enableAutomaticTermination_(objc.NSString reason) { + _objc_msgSend_108( + this.pointer, _sel_enableAutomaticTermination_, reason.pointer); + } + + /// automaticTerminationSupportEnabled + bool get automaticTerminationSupportEnabled { + return _objc_msgSend_13( + this.pointer, _sel_automaticTerminationSupportEnabled); + } + + /// setAutomaticTerminationSupportEnabled: + set automaticTerminationSupportEnabled(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAutomaticTerminationSupportEnabled_, value); + } + + /// beginActivityWithOptions:reason: + objc.ObjCObjectBase beginActivityWithOptions_reason_( + NSActivityOptions options, objc.NSString reason) { + final _ret = _objc_msgSend_429(this.pointer, + _sel_beginActivityWithOptions_reason_, options.value, reason.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// endActivity: + void endActivity_(objc.ObjCObjectBase activity) { + _objc_msgSend_27(this.pointer, _sel_endActivity_, activity.pointer); + } + + /// performActivityWithOptions:reason:usingBlock: + void performActivityWithOptions_reason_usingBlock_(NSActivityOptions options, + objc.NSString reason, ObjCBlock_ffiVoid block) { + _objc_msgSend_430( + this.pointer, + _sel_performActivityWithOptions_reason_usingBlock_, + options.value, + reason.pointer, + block.pointer); + } + + /// performExpiringActivityWithReason:usingBlock: + void performExpiringActivityWithReason_usingBlock_( + objc.NSString reason, ObjCBlock_ffiVoid_bool block) { + _objc_msgSend_431( + this.pointer, + _sel_performExpiringActivityWithReason_usingBlock_, + reason.pointer, + block.pointer); + } + + /// userName + objc.NSString get userName { + final _ret = _objc_msgSend_11(this.pointer, _sel_userName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// fullUserName + objc.NSString get fullUserName { + final _ret = _objc_msgSend_11(this.pointer, _sel_fullUserName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// thermalState + NSProcessInfoThermalState get thermalState { + final _ret = _objc_msgSend_432(this.pointer, _sel_thermalState); + return NSProcessInfoThermalState.fromValue(_ret); + } + + /// isLowPowerModeEnabled + bool get lowPowerModeEnabled { + return _objc_msgSend_13(this.pointer, _sel_isLowPowerModeEnabled); + } + + /// isMacCatalystApp + bool get macCatalystApp { + return _objc_msgSend_13(this.pointer, _sel_isMacCatalystApp); + } + + /// isiOSAppOnMac + bool get iOSAppOnMac { + return _objc_msgSend_13(this.pointer, _sel_isiOSAppOnMac); + } + + /// init + NSProcessInfo init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSProcessInfo.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSProcessInfo new1() { + final _ret = _objc_msgSend_19(_class_NSProcessInfo, _sel_new); + return NSProcessInfo.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSProcessInfo allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSProcessInfo, _sel_allocWithZone_, zone); + return NSProcessInfo.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSProcessInfo alloc() { + final _ret = _objc_msgSend_19(_class_NSProcessInfo, _sel_alloc); + return NSProcessInfo.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSProcessInfo, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSProcessInfo, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSProcessInfo, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSProcessInfo, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSProcessInfo, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSProcessInfo, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSProcessInfo, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSProcessInfo, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSProcessInfo, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSProcessInfo = objc.getClass("classes.NSProcessInfo"); +late final _sel_processInfo = objc.registerName("processInfo"); +final _objc_msgSend_426 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_environment = objc.registerName("environment"); +late final _sel_arguments = objc.registerName("arguments"); +late final _sel_hostName = objc.registerName("hostName"); +late final _sel_processName = objc.registerName("processName"); +late final _sel_setProcessName_ = objc.registerName("setProcessName:"); +late final _sel_processIdentifier = objc.registerName("processIdentifier"); +late final _sel_globallyUniqueString = + objc.registerName("globallyUniqueString"); +late final _sel_operatingSystem = objc.registerName("operatingSystem"); +late final _sel_operatingSystemName = objc.registerName("operatingSystemName"); +late final _sel_operatingSystemVersionString = + objc.registerName("operatingSystemVersionString"); + +final class NSOperatingSystemVersion extends ffi.Struct { + @ffi.Long() + external int majorVersion; + + @ffi.Long() + external int minorVersion; + + @ffi.Long() + external int patchVersion; +} + +late final _sel_operatingSystemVersion = + objc.registerName("operatingSystemVersion"); +final _objc_msgSend_427 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + NSOperatingSystemVersion Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + NSOperatingSystemVersion Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_427Stret = objc.msgSendStretPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_processorCount = objc.registerName("processorCount"); +late final _sel_activeProcessorCount = + objc.registerName("activeProcessorCount"); +late final _sel_physicalMemory = objc.registerName("physicalMemory"); +late final _sel_isOperatingSystemAtLeastVersion_ = + objc.registerName("isOperatingSystemAtLeastVersion:"); +final _objc_msgSend_428 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, NSOperatingSystemVersion)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, NSOperatingSystemVersion)>(); +late final _sel_systemUptime = objc.registerName("systemUptime"); +late final _sel_disableSuddenTermination = + objc.registerName("disableSuddenTermination"); +late final _sel_enableSuddenTermination = + objc.registerName("enableSuddenTermination"); +late final _sel_disableAutomaticTermination_ = + objc.registerName("disableAutomaticTermination:"); +late final _sel_enableAutomaticTermination_ = + objc.registerName("enableAutomaticTermination:"); +late final _sel_automaticTerminationSupportEnabled = + objc.registerName("automaticTerminationSupportEnabled"); +late final _sel_setAutomaticTerminationSupportEnabled_ = + objc.registerName("setAutomaticTerminationSupportEnabled:"); + +enum NSActivityOptions { + NSActivityIdleDisplaySleepDisabled(1099511627776), + NSActivityIdleSystemSleepDisabled(1048576), + NSActivitySuddenTerminationDisabled(16384), + NSActivityAutomaticTerminationDisabled(32768), + NSActivityAnimationTrackingEnabled(35184372088832), + NSActivityTrackingEnabled(70368744177664), + NSActivityUserInitiated(16777215), + NSActivityUserInitiatedAllowingIdleSystemSleep(15728639), + NSActivityBackground(255), + NSActivityLatencyCritical(1095216660480), + NSActivityUserInteractive(1095233437695); + + final int value; + const NSActivityOptions(this.value); + + static NSActivityOptions fromValue(int value) => switch (value) { + 1099511627776 => NSActivityIdleDisplaySleepDisabled, + 1048576 => NSActivityIdleSystemSleepDisabled, + 16384 => NSActivitySuddenTerminationDisabled, + 32768 => NSActivityAutomaticTerminationDisabled, + 35184372088832 => NSActivityAnimationTrackingEnabled, + 70368744177664 => NSActivityTrackingEnabled, + 16777215 => NSActivityUserInitiated, + 15728639 => NSActivityUserInitiatedAllowingIdleSystemSleep, + 255 => NSActivityBackground, + 1095216660480 => NSActivityLatencyCritical, + 1095233437695 => NSActivityUserInteractive, + _ => throw ArgumentError("Unknown value for NSActivityOptions: $value"), + }; +} + +late final _sel_beginActivityWithOptions_reason_ = + objc.registerName("beginActivityWithOptions:reason:"); +final _objc_msgSend_429 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Uint64, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_endActivity_ = objc.registerName("endActivity:"); +late final _sel_performActivityWithOptions_reason_usingBlock_ = + objc.registerName("performActivityWithOptions:reason:usingBlock:"); +final _objc_msgSend_430 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Uint64, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_bool_fnPtrTrampoline( + ffi.Pointer block, bool arg0) => + block.ref.target + .cast>() + .asFunction()(arg0); +void _ObjCBlock_ffiVoid_bool_closureTrampoline( + ffi.Pointer block, bool arg0) => + (objc.getBlockClosure(block) as void Function(bool))(arg0); + +class ObjCBlock_ffiVoid_bool extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_bool._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_bool castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_bool._(pointer, retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_bool.fromFunctionPointer( + ffi.Pointer> ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Bool)>(_ObjCBlock_ffiVoid_bool_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_bool.fromFunction(void Function(bool) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Bool)>(_ObjCBlock_ffiVoid_bool_closureTrampoline) + .cast(), + (bool arg0) => fn(arg0))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_bool.listener(void Function(bool) fn) + : this._((objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Bool)>.listener( + _ObjCBlock_ffiVoid_bool_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (bool arg0) => fn(arg0)))); + static ffi + .NativeCallable, ffi.Bool)>? + _dartFuncListenerTrampoline; + + void call(bool arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, ffi.Bool arg0)>>() + .asFunction, bool)>()( + pointer, arg0); +} + +late final _sel_performExpiringActivityWithReason_usingBlock_ = + objc.registerName("performExpiringActivityWithReason:usingBlock:"); +final _objc_msgSend_431 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_userName = objc.registerName("userName"); +late final _sel_fullUserName = objc.registerName("fullUserName"); + +enum NSProcessInfoThermalState { + NSProcessInfoThermalStateNominal(0), + NSProcessInfoThermalStateFair(1), + NSProcessInfoThermalStateSerious(2), + NSProcessInfoThermalStateCritical(3); + + final int value; + const NSProcessInfoThermalState(this.value); + + static NSProcessInfoThermalState fromValue(int value) => switch (value) { + 0 => NSProcessInfoThermalStateNominal, + 1 => NSProcessInfoThermalStateFair, + 2 => NSProcessInfoThermalStateSerious, + 3 => NSProcessInfoThermalStateCritical, + _ => throw ArgumentError( + "Unknown value for NSProcessInfoThermalState: $value"), + }; +} + +late final _sel_thermalState = objc.registerName("thermalState"); +final _objc_msgSend_432 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_isLowPowerModeEnabled = + objc.registerName("isLowPowerModeEnabled"); +late final _sel_isMacCatalystApp = objc.registerName("isMacCatalystApp"); +late final _sel_isiOSAppOnMac = objc.registerName("isiOSAppOnMac"); + +/// NSTextCheckingResult +class NSTextCheckingResult extends objc.NSObject { + NSTextCheckingResult._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSTextCheckingResult] that points to the same underlying object as [other]. + NSTextCheckingResult.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSTextCheckingResult] that wraps the given raw object pointer. + NSTextCheckingResult.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSTextCheckingResult]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSTextCheckingResult); + } + + /// resultType + NSTextCheckingType get resultType { + final _ret = _objc_msgSend_433(this.pointer, _sel_resultType); + return NSTextCheckingType.fromValue(_ret); + } + + /// range + void getRange(ffi.Pointer<_NSRange> stret) { + objc.useMsgSendVariants + ? _objc_msgSend_434Stret(stret, this.pointer, _sel_range) + : stret.ref = _objc_msgSend_434(this.pointer, _sel_range); + } + + /// orthography + NSOrthography? get orthography { + final _ret = _objc_msgSend_435(this.pointer, _sel_orthography); + return _ret.address == 0 + ? null + : NSOrthography.castFromPointer(_ret, retain: true, release: true); + } + + /// grammarDetails + objc.NSArray? get grammarDetails { + final _ret = _objc_msgSend_86(this.pointer, _sel_grammarDetails); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// date + objc.NSDate? get date { + final _ret = _objc_msgSend_124(this.pointer, _sel_date); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// timeZone + NSTimeZone? get timeZone { + final _ret = _objc_msgSend_140(this.pointer, _sel_timeZone); + return _ret.address == 0 + ? null + : NSTimeZone.castFromPointer(_ret, retain: true, release: true); + } + + /// duration + double get duration { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_duration) + : _objc_msgSend_18(this.pointer, _sel_duration); + } + + /// components + objc.NSDictionary? get components { + final _ret = _objc_msgSend_82(this.pointer, _sel_components); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// URL + objc.NSURL? get URL { + final _ret = _objc_msgSend_24(this.pointer, _sel_URL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// replacementString + objc.NSString? get replacementString { + final _ret = _objc_msgSend_20(this.pointer, _sel_replacementString); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// alternativeStrings + objc.NSArray? get alternativeStrings { + final _ret = _objc_msgSend_86(this.pointer, _sel_alternativeStrings); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// regularExpression + NSRegularExpression? get regularExpression { + final _ret = _objc_msgSend_447(this.pointer, _sel_regularExpression); + return _ret.address == 0 + ? null + : NSRegularExpression.castFromPointer(_ret, + retain: true, release: true); + } + + /// phoneNumber + objc.NSString? get phoneNumber { + final _ret = _objc_msgSend_20(this.pointer, _sel_phoneNumber); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// numberOfRanges + int get numberOfRanges { + return _objc_msgSend_57(this.pointer, _sel_numberOfRanges); + } + + /// rangeAtIndex: + void rangeAtIndex_(ffi.Pointer<_NSRange> stret, int idx) { + objc.useMsgSendVariants + ? _objc_msgSend_448Stret(stret, this.pointer, _sel_rangeAtIndex_, idx) + : stret.ref = _objc_msgSend_448(this.pointer, _sel_rangeAtIndex_, idx); + } + + /// rangeWithName: + void rangeWithName_(ffi.Pointer<_NSRange> stret, objc.NSString name) { + objc.useMsgSendVariants + ? _objc_msgSend_449Stret( + stret, this.pointer, _sel_rangeWithName_, name.pointer) + : stret.ref = + _objc_msgSend_449(this.pointer, _sel_rangeWithName_, name.pointer); + } + + /// resultByAdjustingRangesWithOffset: + NSTextCheckingResult resultByAdjustingRangesWithOffset_(int offset) { + final _ret = _objc_msgSend_450( + this.pointer, _sel_resultByAdjustingRangesWithOffset_, offset); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// addressComponents + objc.NSDictionary? get addressComponents { + final _ret = _objc_msgSend_82(this.pointer, _sel_addressComponents); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// orthographyCheckingResultWithRange:orthography: + static NSTextCheckingResult orthographyCheckingResultWithRange_orthography_( + _NSRange range, NSOrthography orthography) { + final _ret = _objc_msgSend_451( + _class_NSTextCheckingResult, + _sel_orthographyCheckingResultWithRange_orthography_, + range, + orthography.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// spellCheckingResultWithRange: + static NSTextCheckingResult spellCheckingResultWithRange_(_NSRange range) { + final _ret = _objc_msgSend_452( + _class_NSTextCheckingResult, _sel_spellCheckingResultWithRange_, range); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// grammarCheckingResultWithRange:details: + static NSTextCheckingResult grammarCheckingResultWithRange_details_( + _NSRange range, objc.NSArray details) { + final _ret = _objc_msgSend_453(_class_NSTextCheckingResult, + _sel_grammarCheckingResultWithRange_details_, range, details.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// dateCheckingResultWithRange:date: + static NSTextCheckingResult dateCheckingResultWithRange_date_( + _NSRange range, objc.NSDate date) { + final _ret = _objc_msgSend_454(_class_NSTextCheckingResult, + _sel_dateCheckingResultWithRange_date_, range, date.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// dateCheckingResultWithRange:date:timeZone:duration: + static NSTextCheckingResult + dateCheckingResultWithRange_date_timeZone_duration_(_NSRange range, + objc.NSDate date, NSTimeZone timeZone, double duration) { + final _ret = _objc_msgSend_455( + _class_NSTextCheckingResult, + _sel_dateCheckingResultWithRange_date_timeZone_duration_, + range, + date.pointer, + timeZone.pointer, + duration); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// addressCheckingResultWithRange:components: + static NSTextCheckingResult addressCheckingResultWithRange_components_( + _NSRange range, objc.NSDictionary components) { + final _ret = _objc_msgSend_456( + _class_NSTextCheckingResult, + _sel_addressCheckingResultWithRange_components_, + range, + components.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// linkCheckingResultWithRange:URL: + static NSTextCheckingResult linkCheckingResultWithRange_URL_( + _NSRange range, objc.NSURL url) { + final _ret = _objc_msgSend_457(_class_NSTextCheckingResult, + _sel_linkCheckingResultWithRange_URL_, range, url.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// quoteCheckingResultWithRange:replacementString: + static NSTextCheckingResult quoteCheckingResultWithRange_replacementString_( + _NSRange range, objc.NSString replacementString) { + final _ret = _objc_msgSend_458( + _class_NSTextCheckingResult, + _sel_quoteCheckingResultWithRange_replacementString_, + range, + replacementString.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// dashCheckingResultWithRange:replacementString: + static NSTextCheckingResult dashCheckingResultWithRange_replacementString_( + _NSRange range, objc.NSString replacementString) { + final _ret = _objc_msgSend_458( + _class_NSTextCheckingResult, + _sel_dashCheckingResultWithRange_replacementString_, + range, + replacementString.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// replacementCheckingResultWithRange:replacementString: + static NSTextCheckingResult + replacementCheckingResultWithRange_replacementString_( + _NSRange range, objc.NSString replacementString) { + final _ret = _objc_msgSend_458( + _class_NSTextCheckingResult, + _sel_replacementCheckingResultWithRange_replacementString_, + range, + replacementString.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// correctionCheckingResultWithRange:replacementString: + static NSTextCheckingResult + correctionCheckingResultWithRange_replacementString_( + _NSRange range, objc.NSString replacementString) { + final _ret = _objc_msgSend_458( + _class_NSTextCheckingResult, + _sel_correctionCheckingResultWithRange_replacementString_, + range, + replacementString.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// correctionCheckingResultWithRange:replacementString:alternativeStrings: + static NSTextCheckingResult + correctionCheckingResultWithRange_replacementString_alternativeStrings_( + _NSRange range, + objc.NSString replacementString, + objc.NSArray alternativeStrings) { + final _ret = _objc_msgSend_459( + _class_NSTextCheckingResult, + _sel_correctionCheckingResultWithRange_replacementString_alternativeStrings_, + range, + replacementString.pointer, + alternativeStrings.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// regularExpressionCheckingResultWithRanges:count:regularExpression: + static NSTextCheckingResult + regularExpressionCheckingResultWithRanges_count_regularExpression_( + ffi.Pointer<_NSRange> ranges, + int count, + NSRegularExpression regularExpression) { + final _ret = _objc_msgSend_460( + _class_NSTextCheckingResult, + _sel_regularExpressionCheckingResultWithRanges_count_regularExpression_, + ranges, + count, + regularExpression.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// phoneNumberCheckingResultWithRange:phoneNumber: + static NSTextCheckingResult phoneNumberCheckingResultWithRange_phoneNumber_( + _NSRange range, objc.NSString phoneNumber) { + final _ret = _objc_msgSend_458( + _class_NSTextCheckingResult, + _sel_phoneNumberCheckingResultWithRange_phoneNumber_, + range, + phoneNumber.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// transitInformationCheckingResultWithRange:components: + static NSTextCheckingResult + transitInformationCheckingResultWithRange_components_( + _NSRange range, objc.NSDictionary components) { + final _ret = _objc_msgSend_456( + _class_NSTextCheckingResult, + _sel_transitInformationCheckingResultWithRange_components_, + range, + components.pointer); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSTextCheckingResult init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSTextCheckingResult new1() { + final _ret = _objc_msgSend_19(_class_NSTextCheckingResult, _sel_new); + return NSTextCheckingResult.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSTextCheckingResult allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSTextCheckingResult, _sel_allocWithZone_, zone); + return NSTextCheckingResult.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSTextCheckingResult alloc() { + final _ret = _objc_msgSend_19(_class_NSTextCheckingResult, _sel_alloc); + return NSTextCheckingResult.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSTextCheckingResult, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSTextCheckingResult, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSTextCheckingResult, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSTextCheckingResult, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSTextCheckingResult, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSTextCheckingResult, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSTextCheckingResult, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSTextCheckingResult, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSTextCheckingResult, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSTextCheckingResult = + objc.getClass("classes.NSTextCheckingResult"); + +enum NSTextCheckingType { + NSTextCheckingTypeOrthography(1), + NSTextCheckingTypeSpelling(2), + NSTextCheckingTypeGrammar(4), + NSTextCheckingTypeDate(8), + NSTextCheckingTypeAddress(16), + NSTextCheckingTypeLink(32), + NSTextCheckingTypeQuote(64), + NSTextCheckingTypeDash(128), + NSTextCheckingTypeReplacement(256), + NSTextCheckingTypeCorrection(512), + NSTextCheckingTypeRegularExpression(1024), + NSTextCheckingTypePhoneNumber(2048), + NSTextCheckingTypeTransitInformation(4096); + + final int value; + const NSTextCheckingType(this.value); + + static NSTextCheckingType fromValue(int value) => switch (value) { + 1 => NSTextCheckingTypeOrthography, + 2 => NSTextCheckingTypeSpelling, + 4 => NSTextCheckingTypeGrammar, + 8 => NSTextCheckingTypeDate, + 16 => NSTextCheckingTypeAddress, + 32 => NSTextCheckingTypeLink, + 64 => NSTextCheckingTypeQuote, + 128 => NSTextCheckingTypeDash, + 256 => NSTextCheckingTypeReplacement, + 512 => NSTextCheckingTypeCorrection, + 1024 => NSTextCheckingTypeRegularExpression, + 2048 => NSTextCheckingTypePhoneNumber, + 4096 => NSTextCheckingTypeTransitInformation, + _ => + throw ArgumentError("Unknown value for NSTextCheckingType: $value"), + }; +} + +late final _sel_resultType = objc.registerName("resultType"); +final _objc_msgSend_433 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Uint64 Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_range = objc.registerName("range"); +final _objc_msgSend_434 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + _NSRange Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + _NSRange Function( + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_434Stret = objc.msgSendStretPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer<_NSRange>, ffi.Pointer, + ffi.Pointer)>(); +late final _sel_orthography = objc.registerName("orthography"); +final _objc_msgSend_435 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_grammarDetails = objc.registerName("grammarDetails"); +late final _sel_duration = objc.registerName("duration"); +late final _sel_components = objc.registerName("components"); +late final _sel_replacementString = objc.registerName("replacementString"); +late final _sel_alternativeStrings = objc.registerName("alternativeStrings"); + +/// NSRegularExpression +class NSRegularExpression extends objc.NSObject { + NSRegularExpression._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSRegularExpression] that points to the same underlying object as [other]. + NSRegularExpression.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSRegularExpression] that wraps the given raw object pointer. + NSRegularExpression.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSRegularExpression]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSRegularExpression); + } + + /// regularExpressionWithPattern:options:error: + static NSRegularExpression? regularExpressionWithPattern_options_error_( + objc.NSString pattern, + NSRegularExpressionOptions options, + ffi.Pointer> error) { + final _ret = _objc_msgSend_436( + _class_NSRegularExpression, + _sel_regularExpressionWithPattern_options_error_, + pattern.pointer, + options.value, + error); + return _ret.address == 0 + ? null + : NSRegularExpression.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithPattern:options:error: + NSRegularExpression? initWithPattern_options_error_( + objc.NSString pattern, + NSRegularExpressionOptions options, + ffi.Pointer> error) { + final _ret = _objc_msgSend_437( + this.pointer, + _sel_initWithPattern_options_error_, + pattern.pointer, + options.value, + error); + return _ret.address == 0 + ? null + : NSRegularExpression.castFromPointer(_ret, + retain: true, release: true); + } + + /// pattern + objc.NSString get pattern { + final _ret = _objc_msgSend_11(this.pointer, _sel_pattern); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// options + NSRegularExpressionOptions get options { + final _ret = _objc_msgSend_438(this.pointer, _sel_options); + return NSRegularExpressionOptions.fromValue(_ret); + } + + /// numberOfCaptureGroups + int get numberOfCaptureGroups { + return _objc_msgSend_57(this.pointer, _sel_numberOfCaptureGroups); + } + + /// escapedPatternForString: + static objc.NSString escapedPatternForString_(objc.NSString string) { + final _ret = _objc_msgSend_306(_class_NSRegularExpression, + _sel_escapedPatternForString_, string.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// enumerateMatchesInString:options:range:usingBlock: + void enumerateMatchesInString_options_range_usingBlock_( + objc.NSString string, + NSMatchingOptions options, + _NSRange range, + ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool block) { + _objc_msgSend_439( + this.pointer, + _sel_enumerateMatchesInString_options_range_usingBlock_, + string.pointer, + options.value, + range, + block.pointer); + } + + /// matchesInString:options:range: + objc.NSArray matchesInString_options_range_( + objc.NSString string, NSMatchingOptions options, _NSRange range) { + final _ret = _objc_msgSend_440( + this.pointer, + _sel_matchesInString_options_range_, + string.pointer, + options.value, + range); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// numberOfMatchesInString:options:range: + int numberOfMatchesInString_options_range_( + objc.NSString string, NSMatchingOptions options, _NSRange range) { + return _objc_msgSend_441( + this.pointer, + _sel_numberOfMatchesInString_options_range_, + string.pointer, + options.value, + range); + } + + /// firstMatchInString:options:range: + NSTextCheckingResult? firstMatchInString_options_range_( + objc.NSString string, NSMatchingOptions options, _NSRange range) { + final _ret = _objc_msgSend_442( + this.pointer, + _sel_firstMatchInString_options_range_, + string.pointer, + options.value, + range); + return _ret.address == 0 + ? null + : NSTextCheckingResult.castFromPointer(_ret, + retain: true, release: true); + } + + /// rangeOfFirstMatchInString:options:range: + void rangeOfFirstMatchInString_options_range_(ffi.Pointer<_NSRange> stret, + objc.NSString string, NSMatchingOptions options, _NSRange range) { + objc.useMsgSendVariants + ? _objc_msgSend_443Stret( + stret, + this.pointer, + _sel_rangeOfFirstMatchInString_options_range_, + string.pointer, + options.value, + range) + : stret.ref = _objc_msgSend_443( + this.pointer, + _sel_rangeOfFirstMatchInString_options_range_, + string.pointer, + options.value, + range); + } + + /// stringByReplacingMatchesInString:options:range:withTemplate: + objc.NSString stringByReplacingMatchesInString_options_range_withTemplate_( + objc.NSString string, + NSMatchingOptions options, + _NSRange range, + objc.NSString templ) { + final _ret = _objc_msgSend_444( + this.pointer, + _sel_stringByReplacingMatchesInString_options_range_withTemplate_, + string.pointer, + options.value, + range, + templ.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// replaceMatchesInString:options:range:withTemplate: + int replaceMatchesInString_options_range_withTemplate_( + objc.NSMutableString string, + NSMatchingOptions options, + _NSRange range, + objc.NSString templ) { + return _objc_msgSend_445( + this.pointer, + _sel_replaceMatchesInString_options_range_withTemplate_, + string.pointer, + options.value, + range, + templ.pointer); + } + + /// replacementStringForResult:inString:offset:template: + objc.NSString replacementStringForResult_inString_offset_template_( + NSTextCheckingResult result, + objc.NSString string, + int offset, + objc.NSString templ) { + final _ret = _objc_msgSend_446( + this.pointer, + _sel_replacementStringForResult_inString_offset_template_, + result.pointer, + string.pointer, + offset, + templ.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// escapedTemplateForString: + static objc.NSString escapedTemplateForString_(objc.NSString string) { + final _ret = _objc_msgSend_306(_class_NSRegularExpression, + _sel_escapedTemplateForString_, string.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSRegularExpression init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSRegularExpression.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSRegularExpression new1() { + final _ret = _objc_msgSend_19(_class_NSRegularExpression, _sel_new); + return NSRegularExpression.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSRegularExpression allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSRegularExpression, _sel_allocWithZone_, zone); + return NSRegularExpression.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSRegularExpression alloc() { + final _ret = _objc_msgSend_19(_class_NSRegularExpression, _sel_alloc); + return NSRegularExpression.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSRegularExpression, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSRegularExpression, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSRegularExpression, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSRegularExpression, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSRegularExpression, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSRegularExpression, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSRegularExpression, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSRegularExpression, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSRegularExpression, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSRegularExpression = + objc.getClass("classes.NSRegularExpression"); + +enum NSRegularExpressionOptions { + NSRegularExpressionCaseInsensitive(1), + NSRegularExpressionAllowCommentsAndWhitespace(2), + NSRegularExpressionIgnoreMetacharacters(4), + NSRegularExpressionDotMatchesLineSeparators(8), + NSRegularExpressionAnchorsMatchLines(16), + NSRegularExpressionUseUnixLineSeparators(32), + NSRegularExpressionUseUnicodeWordBoundaries(64); + + final int value; + const NSRegularExpressionOptions(this.value); + + static NSRegularExpressionOptions fromValue(int value) => switch (value) { + 1 => NSRegularExpressionCaseInsensitive, + 2 => NSRegularExpressionAllowCommentsAndWhitespace, + 4 => NSRegularExpressionIgnoreMetacharacters, + 8 => NSRegularExpressionDotMatchesLineSeparators, + 16 => NSRegularExpressionAnchorsMatchLines, + 32 => NSRegularExpressionUseUnixLineSeparators, + 64 => NSRegularExpressionUseUnicodeWordBoundaries, + _ => throw ArgumentError( + "Unknown value for NSRegularExpressionOptions: $value"), + }; +} + +late final _sel_regularExpressionWithPattern_options_error_ = + objc.registerName("regularExpressionWithPattern:options:error:"); +final _objc_msgSend_436 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_initWithPattern_options_error_ = + objc.registerName("initWithPattern:options:error:"); +final _objc_msgSend_437 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_pattern = objc.registerName("pattern"); +late final _sel_options = objc.registerName("options"); +final _objc_msgSend_438 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_numberOfCaptureGroups = + objc.registerName("numberOfCaptureGroups"); +late final _sel_escapedPatternForString_ = + objc.registerName("escapedPatternForString:"); + +enum NSMatchingOptions { + NSMatchingReportProgress(1), + NSMatchingReportCompletion(2), + NSMatchingAnchored(4), + NSMatchingWithTransparentBounds(8), + NSMatchingWithoutAnchoringBounds(16); + + final int value; + const NSMatchingOptions(this.value); + + static NSMatchingOptions fromValue(int value) => switch (value) { + 1 => NSMatchingReportProgress, + 2 => NSMatchingReportCompletion, + 4 => NSMatchingAnchored, + 8 => NSMatchingWithTransparentBounds, + 16 => NSMatchingWithoutAnchoringBounds, + _ => throw ArgumentError("Unknown value for NSMatchingOptions: $value"), + }; +} + +void + _ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + int arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.UnsignedLong arg1, ffi.Pointer arg2)>>() + .asFunction< + void Function(ffi.Pointer, int, + ffi.Pointer)>()(arg0, arg1, arg2); +void + _ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + int arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer, + int, + ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool + extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool + castFromPointer(ffi.Pointer pointer, + {bool retain = false, bool release = false}) { + return ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool._( + pointer, + retain: retain, + release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.UnsignedLong arg1, ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool.fromFunction( + void Function(NSTextCheckingResult?, NSMatchingFlags, ffi.Pointer) + fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool_closureTrampoline) + .cast(), + (ffi.Pointer arg0, int arg1, + ffi.Pointer arg2) => + fn(arg0.address == 0 ? null : NSTextCheckingResult.castFromPointer(arg0, retain: true, release: true), NSMatchingFlags.fromValue(arg1), arg2))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool.listener( + void Function(NSTextCheckingResult?, NSMatchingFlags, ffi.Pointer) + fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable, ffi.Pointer, ffi.UnsignedLong, ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSTextCheckingResult_NSMatchingFlags_bool_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, int arg1, ffi.Pointer arg2) => fn( + arg0.address == 0 + ? null + : NSTextCheckingResult.castFromPointer(arg0, retain: false, release: true), + NSMatchingFlags.fromValue(arg1), + arg2)))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(NSTextCheckingResult? arg0, NSMatchingFlags arg1, + ffi.Pointer arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.UnsignedLong arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr, arg1.value, arg2); +} + +enum NSMatchingFlags { + NSMatchingProgress(1), + NSMatchingCompleted(2), + NSMatchingHitEnd(4), + NSMatchingRequiredEnd(8), + NSMatchingInternalError(16); + + final int value; + const NSMatchingFlags(this.value); + + static NSMatchingFlags fromValue(int value) => switch (value) { + 1 => NSMatchingProgress, + 2 => NSMatchingCompleted, + 4 => NSMatchingHitEnd, + 8 => NSMatchingRequiredEnd, + 16 => NSMatchingInternalError, + _ => throw ArgumentError("Unknown value for NSMatchingFlags: $value"), + }; +} + +late final _sel_enumerateMatchesInString_options_range_usingBlock_ = + objc.registerName("enumerateMatchesInString:options:range:usingBlock:"); +final _objc_msgSend_439 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange, + ffi.Pointer)>(); +late final _sel_matchesInString_options_range_ = + objc.registerName("matchesInString:options:range:"); +final _objc_msgSend_440 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange)>(); +late final _sel_numberOfMatchesInString_options_range_ = + objc.registerName("numberOfMatchesInString:options:range:"); +final _objc_msgSend_441 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange)>>() + .asFunction< + int Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange)>(); +late final _sel_firstMatchInString_options_range_ = + objc.registerName("firstMatchInString:options:range:"); +final _objc_msgSend_442 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange)>(); +late final _sel_rangeOfFirstMatchInString_options_range_ = + objc.registerName("rangeOfFirstMatchInString:options:range:"); +final _objc_msgSend_443 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + _NSRange Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange)>>() + .asFunction< + _NSRange Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange)>(); +final _objc_msgSend_443Stret = objc.msgSendStretPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange)>>() + .asFunction< + void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange)>(); +late final _sel_stringByReplacingMatchesInString_options_range_withTemplate_ = + objc.registerName( + "stringByReplacingMatchesInString:options:range:withTemplate:"); +final _objc_msgSend_444 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange, + ffi.Pointer)>(); +late final _sel_replaceMatchesInString_options_range_withTemplate_ = + objc.registerName("replaceMatchesInString:options:range:withTemplate:"); +final _objc_msgSend_445 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + _NSRange, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + _NSRange, + ffi.Pointer)>(); +late final _sel_replacementStringForResult_inString_offset_template_ = + objc.registerName("replacementStringForResult:inString:offset:template:"); +final _objc_msgSend_446 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_escapedTemplateForString_ = + objc.registerName("escapedTemplateForString:"); +late final _sel_regularExpression = objc.registerName("regularExpression"); +final _objc_msgSend_447 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_phoneNumber = objc.registerName("phoneNumber"); +late final _sel_numberOfRanges = objc.registerName("numberOfRanges"); +late final _sel_rangeAtIndex_ = objc.registerName("rangeAtIndex:"); +final _objc_msgSend_448 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + _NSRange Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + _NSRange Function(ffi.Pointer, + ffi.Pointer, int)>(); +final _objc_msgSend_448Stret = objc.msgSendStretPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer<_NSRange>, ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_rangeWithName_ = objc.registerName("rangeWithName:"); +final _objc_msgSend_449 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + _NSRange Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + _NSRange Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +final _objc_msgSend_449Stret = objc.msgSendStretPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer<_NSRange>, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer<_NSRange>, ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_resultByAdjustingRangesWithOffset_ = + objc.registerName("resultByAdjustingRangesWithOffset:"); +final _objc_msgSend_450 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_addressComponents = objc.registerName("addressComponents"); +late final _sel_orthographyCheckingResultWithRange_orthography_ = + objc.registerName("orthographyCheckingResultWithRange:orthography:"); +final _objc_msgSend_451 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_spellCheckingResultWithRange_ = + objc.registerName("spellCheckingResultWithRange:"); +final _objc_msgSend_452 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, _NSRange)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, _NSRange)>(); +late final _sel_grammarCheckingResultWithRange_details_ = + objc.registerName("grammarCheckingResultWithRange:details:"); +final _objc_msgSend_453 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_dateCheckingResultWithRange_date_ = + objc.registerName("dateCheckingResultWithRange:date:"); +final _objc_msgSend_454 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_dateCheckingResultWithRange_date_timeZone_duration_ = + objc.registerName("dateCheckingResultWithRange:date:timeZone:duration:"); +final _objc_msgSend_455 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer, + ffi.Pointer, + ffi.Double)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer, + ffi.Pointer, + double)>(); +late final _sel_addressCheckingResultWithRange_components_ = + objc.registerName("addressCheckingResultWithRange:components:"); +final _objc_msgSend_456 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_linkCheckingResultWithRange_URL_ = + objc.registerName("linkCheckingResultWithRange:URL:"); +final _objc_msgSend_457 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_quoteCheckingResultWithRange_replacementString_ = + objc.registerName("quoteCheckingResultWithRange:replacementString:"); +final _objc_msgSend_458 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer)>(); +late final _sel_dashCheckingResultWithRange_replacementString_ = + objc.registerName("dashCheckingResultWithRange:replacementString:"); +late final _sel_replacementCheckingResultWithRange_replacementString_ = + objc.registerName("replacementCheckingResultWithRange:replacementString:"); +late final _sel_correctionCheckingResultWithRange_replacementString_ = + objc.registerName("correctionCheckingResultWithRange:replacementString:"); +late final _sel_correctionCheckingResultWithRange_replacementString_alternativeStrings_ = + objc.registerName( + "correctionCheckingResultWithRange:replacementString:alternativeStrings:"); +final _objc_msgSend_459 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + _NSRange, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_regularExpressionCheckingResultWithRanges_count_regularExpression_ = + objc.registerName( + "regularExpressionCheckingResultWithRanges:count:regularExpression:"); +final _objc_msgSend_460 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer<_NSRange>, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer<_NSRange>, + int, + ffi.Pointer)>(); +late final _sel_phoneNumberCheckingResultWithRange_phoneNumber_ = + objc.registerName("phoneNumberCheckingResultWithRange:phoneNumber:"); +late final _sel_transitInformationCheckingResultWithRange_components_ = + objc.registerName("transitInformationCheckingResultWithRange:components:"); + +/// NSURLCache +class NSURLCache extends objc.NSObject { + NSURLCache._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLCache] that points to the same underlying object as [other]. + NSURLCache.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLCache] that wraps the given raw object pointer. + NSURLCache.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLCache]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSURLCache); + } + + /// sharedURLCache + static NSURLCache getSharedURLCache() { + final _ret = _objc_msgSend_461(_class_NSURLCache, _sel_sharedURLCache); + return NSURLCache.castFromPointer(_ret, retain: true, release: true); + } + + /// setSharedURLCache: + static void setSharedURLCache(NSURLCache value) { + return _objc_msgSend_462( + _class_NSURLCache, _sel_setSharedURLCache_, value.pointer); + } + + /// initWithMemoryCapacity:diskCapacity:diskPath: + NSURLCache initWithMemoryCapacity_diskCapacity_diskPath_( + int memoryCapacity, int diskCapacity, objc.NSString? path) { + final _ret = _objc_msgSend_463( + this.pointer, + _sel_initWithMemoryCapacity_diskCapacity_diskPath_, + memoryCapacity, + diskCapacity, + path?.pointer ?? ffi.nullptr); + return NSURLCache.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithMemoryCapacity:diskCapacity:directoryURL: + NSURLCache initWithMemoryCapacity_diskCapacity_directoryURL_( + int memoryCapacity, int diskCapacity, objc.NSURL? directoryURL) { + final _ret = _objc_msgSend_464( + this.pointer, + _sel_initWithMemoryCapacity_diskCapacity_directoryURL_, + memoryCapacity, + diskCapacity, + directoryURL?.pointer ?? ffi.nullptr); + return NSURLCache.castFromPointer(_ret, retain: true, release: true); + } + + /// cachedResponseForRequest: + NSCachedURLResponse? cachedResponseForRequest_(NSURLRequest request) { + final _ret = _objc_msgSend_469( + this.pointer, _sel_cachedResponseForRequest_, request.pointer); + return _ret.address == 0 + ? null + : NSCachedURLResponse.castFromPointer(_ret, + retain: true, release: true); + } + + /// storeCachedResponse:forRequest: + void storeCachedResponse_forRequest_( + NSCachedURLResponse cachedResponse, NSURLRequest request) { + _objc_msgSend_470(this.pointer, _sel_storeCachedResponse_forRequest_, + cachedResponse.pointer, request.pointer); + } + + /// removeCachedResponseForRequest: + void removeCachedResponseForRequest_(NSURLRequest request) { + _objc_msgSend_471( + this.pointer, _sel_removeCachedResponseForRequest_, request.pointer); + } + + /// removeAllCachedResponses + void removeAllCachedResponses() { + _objc_msgSend_7(this.pointer, _sel_removeAllCachedResponses); + } + + /// removeCachedResponsesSinceDate: + void removeCachedResponsesSinceDate_(objc.NSDate date) { + _objc_msgSend_255( + this.pointer, _sel_removeCachedResponsesSinceDate_, date.pointer); + } + + /// memoryCapacity + int get memoryCapacity { + return _objc_msgSend_57(this.pointer, _sel_memoryCapacity); + } + + /// setMemoryCapacity: + set memoryCapacity(int value) { + return _objc_msgSend_133(this.pointer, _sel_setMemoryCapacity_, value); + } + + /// diskCapacity + int get diskCapacity { + return _objc_msgSend_57(this.pointer, _sel_diskCapacity); + } + + /// setDiskCapacity: + set diskCapacity(int value) { + return _objc_msgSend_133(this.pointer, _sel_setDiskCapacity_, value); + } + + /// currentMemoryUsage + int get currentMemoryUsage { + return _objc_msgSend_57(this.pointer, _sel_currentMemoryUsage); + } + + /// currentDiskUsage + int get currentDiskUsage { + return _objc_msgSend_57(this.pointer, _sel_currentDiskUsage); + } + + /// storeCachedResponse:forDataTask: + void storeCachedResponse_forDataTask_( + NSCachedURLResponse cachedResponse, NSURLSessionDataTask dataTask) { + _objc_msgSend_472(this.pointer, _sel_storeCachedResponse_forDataTask_, + cachedResponse.pointer, dataTask.pointer); + } + + /// getCachedResponseForDataTask:completionHandler: + void getCachedResponseForDataTask_completionHandler_( + NSURLSessionDataTask dataTask, + ObjCBlock_ffiVoid_NSCachedURLResponse completionHandler) { + _objc_msgSend_473( + this.pointer, + _sel_getCachedResponseForDataTask_completionHandler_, + dataTask.pointer, + completionHandler.pointer); + } + + /// removeCachedResponseForDataTask: + void removeCachedResponseForDataTask_(NSURLSessionDataTask dataTask) { + _objc_msgSend_474( + this.pointer, _sel_removeCachedResponseForDataTask_, dataTask.pointer); + } + + /// init + NSURLCache init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLCache.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLCache new1() { + final _ret = _objc_msgSend_19(_class_NSURLCache, _sel_new); + return NSURLCache.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSURLCache allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSURLCache, _sel_allocWithZone_, zone); + return NSURLCache.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLCache alloc() { + final _ret = _objc_msgSend_19(_class_NSURLCache, _sel_alloc); + return NSURLCache.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLCache, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLCache, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLCache, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLCache, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLCache, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLCache, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLCache, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLCache, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLCache, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLCache = objc.getClass("classes.NSURLCache"); +late final _sel_sharedURLCache = objc.registerName("sharedURLCache"); +final _objc_msgSend_461 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setSharedURLCache_ = objc.registerName("setSharedURLCache:"); +final _objc_msgSend_462 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithMemoryCapacity_diskCapacity_diskPath_ = + objc.registerName("initWithMemoryCapacity:diskCapacity:diskPath:"); +final _objc_msgSend_463 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer)>(); +late final _sel_initWithMemoryCapacity_diskCapacity_directoryURL_ = + objc.registerName("initWithMemoryCapacity:diskCapacity:directoryURL:"); +final _objc_msgSend_464 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer)>(); + +/// NSCachedURLResponse +class NSCachedURLResponse extends objc.NSObject { + NSCachedURLResponse._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSCachedURLResponse] that points to the same underlying object as [other]. + NSCachedURLResponse.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSCachedURLResponse] that wraps the given raw object pointer. + NSCachedURLResponse.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSCachedURLResponse]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSCachedURLResponse); + } + + /// initWithResponse:data: + NSCachedURLResponse initWithResponse_data_( + NSURLResponse response, objc.NSData data) { + final _ret = _objc_msgSend_465(this.pointer, _sel_initWithResponse_data_, + response.pointer, data.pointer); + return NSCachedURLResponse.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithResponse:data:userInfo:storagePolicy: + NSCachedURLResponse initWithResponse_data_userInfo_storagePolicy_( + NSURLResponse response, + objc.NSData data, + objc.NSDictionary? userInfo, + NSURLCacheStoragePolicy storagePolicy) { + final _ret = _objc_msgSend_466( + this.pointer, + _sel_initWithResponse_data_userInfo_storagePolicy_, + response.pointer, + data.pointer, + userInfo?.pointer ?? ffi.nullptr, + storagePolicy.value); + return NSCachedURLResponse.castFromPointer(_ret, + retain: true, release: true); + } + + /// response + NSURLResponse get response { + final _ret = _objc_msgSend_467(this.pointer, _sel_response); + return NSURLResponse.castFromPointer(_ret, retain: true, release: true); + } + + /// data + objc.NSData get data { + final _ret = _objc_msgSend_113(this.pointer, _sel_data); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// userInfo + objc.NSDictionary? get userInfo { + final _ret = _objc_msgSend_82(this.pointer, _sel_userInfo); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// storagePolicy + NSURLCacheStoragePolicy get storagePolicy { + final _ret = _objc_msgSend_468(this.pointer, _sel_storagePolicy); + return NSURLCacheStoragePolicy.fromValue(_ret); + } + + /// init + NSCachedURLResponse init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSCachedURLResponse.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSCachedURLResponse new1() { + final _ret = _objc_msgSend_19(_class_NSCachedURLResponse, _sel_new); + return NSCachedURLResponse.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSCachedURLResponse allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSCachedURLResponse, _sel_allocWithZone_, zone); + return NSCachedURLResponse.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSCachedURLResponse alloc() { + final _ret = _objc_msgSend_19(_class_NSCachedURLResponse, _sel_alloc); + return NSCachedURLResponse.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSCachedURLResponse, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSCachedURLResponse, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSCachedURLResponse, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSCachedURLResponse, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSCachedURLResponse, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSCachedURLResponse, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSCachedURLResponse, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSCachedURLResponse, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSCachedURLResponse, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSCachedURLResponse = + objc.getClass("classes.NSCachedURLResponse"); +late final _sel_initWithResponse_data_ = + objc.registerName("initWithResponse:data:"); +final _objc_msgSend_465 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +enum NSURLCacheStoragePolicy { + NSURLCacheStorageAllowed(0), + NSURLCacheStorageAllowedInMemoryOnly(1), + NSURLCacheStorageNotAllowed(2); + + final int value; + const NSURLCacheStoragePolicy(this.value); + + static NSURLCacheStoragePolicy fromValue(int value) => switch (value) { + 0 => NSURLCacheStorageAllowed, + 1 => NSURLCacheStorageAllowedInMemoryOnly, + 2 => NSURLCacheStorageNotAllowed, + _ => throw ArgumentError( + "Unknown value for NSURLCacheStoragePolicy: $value"), + }; +} + +late final _sel_initWithResponse_data_userInfo_storagePolicy_ = + objc.registerName("initWithResponse:data:userInfo:storagePolicy:"); +final _objc_msgSend_466 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +final _objc_msgSend_467 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_storagePolicy = objc.registerName("storagePolicy"); +final _objc_msgSend_468 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_cachedResponseForRequest_ = + objc.registerName("cachedResponseForRequest:"); +final _objc_msgSend_469 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_storeCachedResponse_forRequest_ = + objc.registerName("storeCachedResponse:forRequest:"); +final _objc_msgSend_470 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeCachedResponseForRequest_ = + objc.registerName("removeCachedResponseForRequest:"); +final _objc_msgSend_471 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_removeAllCachedResponses = + objc.registerName("removeAllCachedResponses"); +late final _sel_removeCachedResponsesSinceDate_ = + objc.registerName("removeCachedResponsesSinceDate:"); +late final _sel_memoryCapacity = objc.registerName("memoryCapacity"); +late final _sel_setMemoryCapacity_ = objc.registerName("setMemoryCapacity:"); +late final _sel_diskCapacity = objc.registerName("diskCapacity"); +late final _sel_setDiskCapacity_ = objc.registerName("setDiskCapacity:"); +late final _sel_currentMemoryUsage = objc.registerName("currentMemoryUsage"); +late final _sel_currentDiskUsage = objc.registerName("currentDiskUsage"); + +/// NSURLSessionDataTask +class NSURLSessionDataTask extends NSURLSessionTask { + NSURLSessionDataTask._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionDataTask] that points to the same underlying object as [other]. + NSURLSessionDataTask.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionDataTask] that wraps the given raw object pointer. + NSURLSessionDataTask.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionDataTask]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionDataTask); + } + + /// init + NSURLSessionDataTask init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLSessionDataTask new1() { + final _ret = _objc_msgSend_19(_class_NSURLSessionDataTask, _sel_new); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSURLSessionDataTask allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLSessionDataTask, _sel_allocWithZone_, zone); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLSessionDataTask alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSessionDataTask, _sel_alloc); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionDataTask, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionDataTask, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSessionDataTask, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLSessionDataTask, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionDataTask, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionDataTask, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionDataTask, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSessionDataTask, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLSessionDataTask, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionDataTask = + objc.getClass("classes.NSURLSessionDataTask"); +late final _sel_storeCachedResponse_forDataTask_ = + objc.registerName("storeCachedResponse:forDataTask:"); +final _objc_msgSend_472 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSCachedURLResponse_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSCachedURLResponse_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSCachedURLResponse extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSCachedURLResponse._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSCachedURLResponse castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSCachedURLResponse._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSCachedURLResponse.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSCachedURLResponse_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSCachedURLResponse.fromFunction( + void Function(NSCachedURLResponse?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSCachedURLResponse_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : NSCachedURLResponse.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSCachedURLResponse.listener( + void Function(NSCachedURLResponse?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSCachedURLResponse( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSCachedURLResponse_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : NSCachedURLResponse.castFromPointer(arg0, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(NSCachedURLResponse? arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr); +} + +late final _sel_getCachedResponseForDataTask_completionHandler_ = + objc.registerName("getCachedResponseForDataTask:completionHandler:"); +final _objc_msgSend_473 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeCachedResponseForDataTask_ = + objc.registerName("removeCachedResponseForDataTask:"); +final _objc_msgSend_474 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSURLConnection +class NSURLConnection extends objc.NSObject { + NSURLConnection._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLConnection] that points to the same underlying object as [other]. + NSURLConnection.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLConnection] that wraps the given raw object pointer. + NSURLConnection.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLConnection]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLConnection); + } + + /// initWithRequest:delegate:startImmediately: + NSURLConnection? initWithRequest_delegate_startImmediately_( + NSURLRequest request, + objc.ObjCObjectBase? delegate, + bool startImmediately) { + final _ret = _objc_msgSend_475( + this.pointer, + _sel_initWithRequest_delegate_startImmediately_, + request.pointer, + delegate?.pointer ?? ffi.nullptr, + startImmediately); + return _ret.address == 0 + ? null + : NSURLConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithRequest:delegate: + NSURLConnection? initWithRequest_delegate_( + NSURLRequest request, objc.ObjCObjectBase? delegate) { + final _ret = _objc_msgSend_476(this.pointer, _sel_initWithRequest_delegate_, + request.pointer, delegate?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSURLConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// connectionWithRequest:delegate: + static NSURLConnection? connectionWithRequest_delegate_( + NSURLRequest request, objc.ObjCObjectBase? delegate) { + final _ret = _objc_msgSend_477( + _class_NSURLConnection, + _sel_connectionWithRequest_delegate_, + request.pointer, + delegate?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSURLConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// originalRequest + NSURLRequest get originalRequest { + final _ret = _objc_msgSend_478(this.pointer, _sel_originalRequest); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// currentRequest + NSURLRequest get currentRequest { + final _ret = _objc_msgSend_478(this.pointer, _sel_currentRequest); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// start + void start() { + _objc_msgSend_7(this.pointer, _sel_start); + } + + /// cancel + void cancel() { + _objc_msgSend_7(this.pointer, _sel_cancel); + } + + /// scheduleInRunLoop:forMode: + void scheduleInRunLoop_forMode_(NSRunLoop aRunLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_scheduleInRunLoop_forMode_, + aRunLoop.pointer, mode.pointer); + } + + /// unscheduleFromRunLoop:forMode: + void unscheduleFromRunLoop_forMode_(NSRunLoop aRunLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_unscheduleFromRunLoop_forMode_, + aRunLoop.pointer, mode.pointer); + } + + /// setDelegateQueue: + void setDelegateQueue_(NSOperationQueue? queue) { + _objc_msgSend_479( + this.pointer, _sel_setDelegateQueue_, queue?.pointer ?? ffi.nullptr); + } + + /// canHandleRequest: + static bool canHandleRequest_(NSURLRequest request) { + return _objc_msgSend_480( + _class_NSURLConnection, _sel_canHandleRequest_, request.pointer); + } + + /// sendSynchronousRequest:returningResponse:error: + static objc.NSData? sendSynchronousRequest_returningResponse_error_( + NSURLRequest request, + ffi.Pointer> response, + ffi.Pointer> error) { + final _ret = _objc_msgSend_481( + _class_NSURLConnection, + _sel_sendSynchronousRequest_returningResponse_error_, + request.pointer, + response, + error); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// sendAsynchronousRequest:queue:completionHandler: + static void sendAsynchronousRequest_queue_completionHandler_( + NSURLRequest request, + NSOperationQueue queue, + ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError handler) { + _objc_msgSend_482( + _class_NSURLConnection, + _sel_sendAsynchronousRequest_queue_completionHandler_, + request.pointer, + queue.pointer, + handler.pointer); + } + + /// init + NSURLConnection init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLConnection.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLConnection new1() { + final _ret = _objc_msgSend_19(_class_NSURLConnection, _sel_new); + return NSURLConnection.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSURLConnection allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSURLConnection, _sel_allocWithZone_, zone); + return NSURLConnection.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLConnection alloc() { + final _ret = _objc_msgSend_19(_class_NSURLConnection, _sel_alloc); + return NSURLConnection.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLConnection, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLConnection, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLConnection, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLConnection, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLConnection, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLConnection, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLConnection, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLConnection, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLConnection, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLConnection = objc.getClass("classes.NSURLConnection"); +late final _sel_initWithRequest_delegate_startImmediately_ = + objc.registerName("initWithRequest:delegate:startImmediately:"); +final _objc_msgSend_475 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_initWithRequest_delegate_ = + objc.registerName("initWithRequest:delegate:"); +final _objc_msgSend_476 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_connectionWithRequest_delegate_ = + objc.registerName("connectionWithRequest:delegate:"); +final _objc_msgSend_477 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +final _objc_msgSend_478 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_unscheduleFromRunLoop_forMode_ = + objc.registerName("unscheduleFromRunLoop:forMode:"); +late final _sel_setDelegateQueue_ = objc.registerName("setDelegateQueue:"); +final _objc_msgSend_479 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_canHandleRequest_ = objc.registerName("canHandleRequest:"); +final _objc_msgSend_480 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_sendSynchronousRequest_returningResponse_error_ = + objc.registerName("sendSynchronousRequest:returningResponse:error:"); +final _objc_msgSend_481 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>(); +void _ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError + extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError.fromFunction( + void Function(NSURLResponse?, objc.NSData?, objc.NSError?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError_closureTrampoline) + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1, ffi.Pointer arg2) => fn( + arg0.address == 0 ? null : NSURLResponse.castFromPointer(arg0, retain: true, release: true), + arg1.address == 0 ? null : objc.NSData.castFromPointer(arg1, retain: true, release: true), + arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError.listener( + void Function(NSURLResponse?, objc.NSData?, objc.NSError?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= + ffi.NativeCallable, ffi.Pointer, ffi.Pointer, ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSURLResponse_NSData_NSError_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + fn( + arg0.address == 0 + ? null + : NSURLResponse.castFromPointer(arg0, retain: false, release: true), + arg1.address == 0 ? null : objc.NSData.castFromPointer(arg1, retain: false, release: true), + arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(NSURLResponse? arg0, objc.NSData? arg1, objc.NSError? arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()( + pointer, + arg0?.pointer ?? ffi.nullptr, + arg1?.pointer ?? ffi.nullptr, + arg2?.pointer ?? ffi.nullptr); +} + +late final _sel_sendAsynchronousRequest_queue_completionHandler_ = + objc.registerName("sendAsynchronousRequest:queue:completionHandler:"); +final _objc_msgSend_482 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSURLCredential +class NSURLCredential extends objc.NSObject { + NSURLCredential._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLCredential] that points to the same underlying object as [other]. + NSURLCredential.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLCredential] that wraps the given raw object pointer. + NSURLCredential.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLCredential]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLCredential); + } + + /// persistence + NSURLCredentialPersistence get persistence { + final _ret = _objc_msgSend_483(this.pointer, _sel_persistence); + return NSURLCredentialPersistence.fromValue(_ret); + } + + /// initWithUser:password:persistence: + NSURLCredential initWithUser_password_persistence_(objc.NSString user, + objc.NSString password, NSURLCredentialPersistence persistence) { + final _ret = _objc_msgSend_484( + this.pointer, + _sel_initWithUser_password_persistence_, + user.pointer, + password.pointer, + persistence.value); + return NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// credentialWithUser:password:persistence: + static NSURLCredential credentialWithUser_password_persistence_( + objc.NSString user, + objc.NSString password, + NSURLCredentialPersistence persistence) { + final _ret = _objc_msgSend_485( + _class_NSURLCredential, + _sel_credentialWithUser_password_persistence_, + user.pointer, + password.pointer, + persistence.value); + return NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// user + objc.NSString? get user { + final _ret = _objc_msgSend_20(this.pointer, _sel_user); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// password + objc.NSString? get password { + final _ret = _objc_msgSend_20(this.pointer, _sel_password); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// hasPassword + bool get hasPassword { + return _objc_msgSend_13(this.pointer, _sel_hasPassword); + } + + /// initWithIdentity:certificates:persistence: + NSURLCredential initWithIdentity_certificates_persistence_( + ffi.Pointer<__SecIdentity> identity, + objc.NSArray? certArray, + NSURLCredentialPersistence persistence) { + final _ret = _objc_msgSend_486( + this.pointer, + _sel_initWithIdentity_certificates_persistence_, + identity, + certArray?.pointer ?? ffi.nullptr, + persistence.value); + return NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// credentialWithIdentity:certificates:persistence: + static NSURLCredential credentialWithIdentity_certificates_persistence_( + ffi.Pointer<__SecIdentity> identity, + objc.NSArray? certArray, + NSURLCredentialPersistence persistence) { + final _ret = _objc_msgSend_487( + _class_NSURLCredential, + _sel_credentialWithIdentity_certificates_persistence_, + identity, + certArray?.pointer ?? ffi.nullptr, + persistence.value); + return NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// identity + ffi.Pointer<__SecIdentity> get identity { + return _objc_msgSend_488(this.pointer, _sel_identity); + } + + /// certificates + objc.NSArray get certificates { + final _ret = _objc_msgSend_33(this.pointer, _sel_certificates); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithTrust: + NSURLCredential initWithTrust_(ffi.Pointer<__SecTrust> trust) { + final _ret = _objc_msgSend_489(this.pointer, _sel_initWithTrust_, trust); + return NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// credentialForTrust: + static NSURLCredential credentialForTrust_(ffi.Pointer<__SecTrust> trust) { + final _ret = _objc_msgSend_490( + _class_NSURLCredential, _sel_credentialForTrust_, trust); + return NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSURLCredential init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLCredential new1() { + final _ret = _objc_msgSend_19(_class_NSURLCredential, _sel_new); + return NSURLCredential.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSURLCredential allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSURLCredential, _sel_allocWithZone_, zone); + return NSURLCredential.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLCredential alloc() { + final _ret = _objc_msgSend_19(_class_NSURLCredential, _sel_alloc); + return NSURLCredential.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLCredential, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLCredential, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLCredential, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLCredential, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLCredential, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLCredential, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLCredential, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLCredential, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLCredential, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLCredential = objc.getClass("classes.NSURLCredential"); + +enum NSURLCredentialPersistence { + NSURLCredentialPersistenceNone(0), + NSURLCredentialPersistenceForSession(1), + NSURLCredentialPersistencePermanent(2), + NSURLCredentialPersistenceSynchronizable(3); + + final int value; + const NSURLCredentialPersistence(this.value); + + static NSURLCredentialPersistence fromValue(int value) => switch (value) { + 0 => NSURLCredentialPersistenceNone, + 1 => NSURLCredentialPersistenceForSession, + 2 => NSURLCredentialPersistencePermanent, + 3 => NSURLCredentialPersistenceSynchronizable, + _ => throw ArgumentError( + "Unknown value for NSURLCredentialPersistence: $value"), + }; +} + +late final _sel_persistence = objc.registerName("persistence"); +final _objc_msgSend_483 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithUser_password_persistence_ = + objc.registerName("initWithUser:password:persistence:"); +final _objc_msgSend_484 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_credentialWithUser_password_persistence_ = + objc.registerName("credentialWithUser:password:persistence:"); +final _objc_msgSend_485 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_user = objc.registerName("user"); +late final _sel_password = objc.registerName("password"); +late final _sel_hasPassword = objc.registerName("hasPassword"); + +final class __SecIdentity extends ffi.Opaque {} + +late final _sel_initWithIdentity_certificates_persistence_ = + objc.registerName("initWithIdentity:certificates:persistence:"); +final _objc_msgSend_486 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer<__SecIdentity>, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer<__SecIdentity>, + ffi.Pointer, + int)>(); +late final _sel_credentialWithIdentity_certificates_persistence_ = + objc.registerName("credentialWithIdentity:certificates:persistence:"); +final _objc_msgSend_487 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer<__SecIdentity>, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer<__SecIdentity>, + ffi.Pointer, + int)>(); +late final _sel_identity = objc.registerName("identity"); +final _objc_msgSend_488 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer<__SecIdentity> Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer<__SecIdentity> Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_certificates = objc.registerName("certificates"); + +final class __SecTrust extends ffi.Opaque {} + +late final _sel_initWithTrust_ = objc.registerName("initWithTrust:"); +final _objc_msgSend_489 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<__SecTrust>)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<__SecTrust>)>(); +late final _sel_credentialForTrust_ = objc.registerName("credentialForTrust:"); +final _objc_msgSend_490 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<__SecTrust>)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<__SecTrust>)>(); + +/// NSURLProtectionSpace +class NSURLProtectionSpace extends objc.NSObject { + NSURLProtectionSpace._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLProtectionSpace] that points to the same underlying object as [other]. + NSURLProtectionSpace.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLProtectionSpace] that wraps the given raw object pointer. + NSURLProtectionSpace.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLProtectionSpace]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLProtectionSpace); + } + + /// initWithHost:port:protocol:realm:authenticationMethod: + NSURLProtectionSpace initWithHost_port_protocol_realm_authenticationMethod_( + objc.NSString host, + int port, + objc.NSString? protocol, + objc.NSString? realm, + objc.NSString? authenticationMethod) { + final _ret = _objc_msgSend_491( + this.pointer, + _sel_initWithHost_port_protocol_realm_authenticationMethod_, + host.pointer, + port, + protocol?.pointer ?? ffi.nullptr, + realm?.pointer ?? ffi.nullptr, + authenticationMethod?.pointer ?? ffi.nullptr); + return NSURLProtectionSpace.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithProxyHost:port:type:realm:authenticationMethod: + NSURLProtectionSpace initWithProxyHost_port_type_realm_authenticationMethod_( + objc.NSString host, + int port, + objc.NSString? type, + objc.NSString? realm, + objc.NSString? authenticationMethod) { + final _ret = _objc_msgSend_491( + this.pointer, + _sel_initWithProxyHost_port_type_realm_authenticationMethod_, + host.pointer, + port, + type?.pointer ?? ffi.nullptr, + realm?.pointer ?? ffi.nullptr, + authenticationMethod?.pointer ?? ffi.nullptr); + return NSURLProtectionSpace.castFromPointer(_ret, + retain: true, release: true); + } + + /// realm + objc.NSString? get realm { + final _ret = _objc_msgSend_20(this.pointer, _sel_realm); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// receivesCredentialSecurely + bool get receivesCredentialSecurely { + return _objc_msgSend_13(this.pointer, _sel_receivesCredentialSecurely); + } + + /// isProxy + bool get isProxy { + return _objc_msgSend_13(this.pointer, _sel_isProxy); + } + + /// host + objc.NSString get host { + final _ret = _objc_msgSend_11(this.pointer, _sel_host); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// port + int get port { + return _objc_msgSend_123(this.pointer, _sel_port); + } + + /// proxyType + objc.NSString? get proxyType { + final _ret = _objc_msgSend_20(this.pointer, _sel_proxyType); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// protocol + objc.NSString? get protocol { + final _ret = _objc_msgSend_20(this.pointer, _sel_protocol); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// authenticationMethod + objc.NSString get authenticationMethod { + final _ret = _objc_msgSend_11(this.pointer, _sel_authenticationMethod); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// distinguishedNames + objc.NSArray? get distinguishedNames { + final _ret = _objc_msgSend_86(this.pointer, _sel_distinguishedNames); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// serverTrust + ffi.Pointer<__SecTrust> get serverTrust { + return _objc_msgSend_492(this.pointer, _sel_serverTrust); + } + + /// init + NSURLProtectionSpace init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLProtectionSpace.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLProtectionSpace new1() { + final _ret = _objc_msgSend_19(_class_NSURLProtectionSpace, _sel_new); + return NSURLProtectionSpace.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSURLProtectionSpace allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLProtectionSpace, _sel_allocWithZone_, zone); + return NSURLProtectionSpace.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLProtectionSpace alloc() { + final _ret = _objc_msgSend_19(_class_NSURLProtectionSpace, _sel_alloc); + return NSURLProtectionSpace.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLProtectionSpace, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLProtectionSpace, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLProtectionSpace, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLProtectionSpace, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLProtectionSpace, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLProtectionSpace, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLProtectionSpace, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLProtectionSpace, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLProtectionSpace, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLProtectionSpace = + objc.getClass("classes.NSURLProtectionSpace"); +late final _sel_initWithHost_port_protocol_realm_authenticationMethod_ = + objc.registerName("initWithHost:port:protocol:realm:authenticationMethod:"); +final _objc_msgSend_491 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithProxyHost_port_type_realm_authenticationMethod_ = objc + .registerName("initWithProxyHost:port:type:realm:authenticationMethod:"); +late final _sel_realm = objc.registerName("realm"); +late final _sel_receivesCredentialSecurely = + objc.registerName("receivesCredentialSecurely"); +late final _sel_isProxy = objc.registerName("isProxy"); +late final _sel_host = objc.registerName("host"); +late final _sel_proxyType = objc.registerName("proxyType"); +late final _sel_protocol = objc.registerName("protocol"); +late final _sel_authenticationMethod = + objc.registerName("authenticationMethod"); +late final _sel_distinguishedNames = objc.registerName("distinguishedNames"); +late final _sel_serverTrust = objc.registerName("serverTrust"); +final _objc_msgSend_492 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer<__SecTrust> Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer<__SecTrust> Function( + ffi.Pointer, ffi.Pointer)>(); + +/// NSURLCredentialStorage +class NSURLCredentialStorage extends objc.NSObject { + NSURLCredentialStorage._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLCredentialStorage] that points to the same underlying object as [other]. + NSURLCredentialStorage.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLCredentialStorage] that wraps the given raw object pointer. + NSURLCredentialStorage.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLCredentialStorage]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLCredentialStorage); + } + + /// sharedCredentialStorage + static NSURLCredentialStorage getSharedCredentialStorage() { + final _ret = _objc_msgSend_493( + _class_NSURLCredentialStorage, _sel_sharedCredentialStorage); + return NSURLCredentialStorage.castFromPointer(_ret, + retain: true, release: true); + } + + /// credentialsForProtectionSpace: + objc.NSDictionary? credentialsForProtectionSpace_( + NSURLProtectionSpace space) { + final _ret = _objc_msgSend_494( + this.pointer, _sel_credentialsForProtectionSpace_, space.pointer); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// allCredentials + objc.NSDictionary get allCredentials { + final _ret = _objc_msgSend_121(this.pointer, _sel_allCredentials); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setCredential:forProtectionSpace: + void setCredential_forProtectionSpace_( + NSURLCredential credential, NSURLProtectionSpace space) { + _objc_msgSend_495(this.pointer, _sel_setCredential_forProtectionSpace_, + credential.pointer, space.pointer); + } + + /// removeCredential:forProtectionSpace: + void removeCredential_forProtectionSpace_( + NSURLCredential credential, NSURLProtectionSpace space) { + _objc_msgSend_495(this.pointer, _sel_removeCredential_forProtectionSpace_, + credential.pointer, space.pointer); + } + + /// removeCredential:forProtectionSpace:options: + void removeCredential_forProtectionSpace_options_(NSURLCredential credential, + NSURLProtectionSpace space, objc.NSDictionary? options) { + _objc_msgSend_496( + this.pointer, + _sel_removeCredential_forProtectionSpace_options_, + credential.pointer, + space.pointer, + options?.pointer ?? ffi.nullptr); + } + + /// defaultCredentialForProtectionSpace: + NSURLCredential? defaultCredentialForProtectionSpace_( + NSURLProtectionSpace space) { + final _ret = _objc_msgSend_497( + this.pointer, _sel_defaultCredentialForProtectionSpace_, space.pointer); + return _ret.address == 0 + ? null + : NSURLCredential.castFromPointer(_ret, retain: true, release: true); + } + + /// setDefaultCredential:forProtectionSpace: + void setDefaultCredential_forProtectionSpace_( + NSURLCredential credential, NSURLProtectionSpace space) { + _objc_msgSend_495( + this.pointer, + _sel_setDefaultCredential_forProtectionSpace_, + credential.pointer, + space.pointer); + } + + /// getCredentialsForProtectionSpace:task:completionHandler: + void getCredentialsForProtectionSpace_task_completionHandler_( + NSURLProtectionSpace protectionSpace, + NSURLSessionTask task, + ObjCBlock_ffiVoid_NSDictionary completionHandler) { + _objc_msgSend_498( + this.pointer, + _sel_getCredentialsForProtectionSpace_task_completionHandler_, + protectionSpace.pointer, + task.pointer, + completionHandler.pointer); + } + + /// setCredential:forProtectionSpace:task: + void setCredential_forProtectionSpace_task_(NSURLCredential credential, + NSURLProtectionSpace protectionSpace, NSURLSessionTask task) { + _objc_msgSend_499(this.pointer, _sel_setCredential_forProtectionSpace_task_, + credential.pointer, protectionSpace.pointer, task.pointer); + } + + /// removeCredential:forProtectionSpace:options:task: + void removeCredential_forProtectionSpace_options_task_( + NSURLCredential credential, + NSURLProtectionSpace protectionSpace, + objc.NSDictionary? options, + NSURLSessionTask task) { + _objc_msgSend_500( + this.pointer, + _sel_removeCredential_forProtectionSpace_options_task_, + credential.pointer, + protectionSpace.pointer, + options?.pointer ?? ffi.nullptr, + task.pointer); + } + + /// getDefaultCredentialForProtectionSpace:task:completionHandler: + void getDefaultCredentialForProtectionSpace_task_completionHandler_( + NSURLProtectionSpace space, + NSURLSessionTask task, + ObjCBlock_ffiVoid_NSURLCredential completionHandler) { + _objc_msgSend_501( + this.pointer, + _sel_getDefaultCredentialForProtectionSpace_task_completionHandler_, + space.pointer, + task.pointer, + completionHandler.pointer); + } + + /// setDefaultCredential:forProtectionSpace:task: + void setDefaultCredential_forProtectionSpace_task_(NSURLCredential credential, + NSURLProtectionSpace protectionSpace, NSURLSessionTask task) { + _objc_msgSend_499( + this.pointer, + _sel_setDefaultCredential_forProtectionSpace_task_, + credential.pointer, + protectionSpace.pointer, + task.pointer); + } + + /// init + NSURLCredentialStorage init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLCredentialStorage.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLCredentialStorage new1() { + final _ret = _objc_msgSend_19(_class_NSURLCredentialStorage, _sel_new); + return NSURLCredentialStorage.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSURLCredentialStorage allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLCredentialStorage, _sel_allocWithZone_, zone); + return NSURLCredentialStorage.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLCredentialStorage alloc() { + final _ret = _objc_msgSend_19(_class_NSURLCredentialStorage, _sel_alloc); + return NSURLCredentialStorage.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLCredentialStorage, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLCredentialStorage, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLCredentialStorage, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLCredentialStorage, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLCredentialStorage, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLCredentialStorage, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLCredentialStorage, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLCredentialStorage, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLCredentialStorage, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLCredentialStorage = + objc.getClass("classes.NSURLCredentialStorage"); +late final _sel_sharedCredentialStorage = + objc.registerName("sharedCredentialStorage"); +final _objc_msgSend_493 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_credentialsForProtectionSpace_ = + objc.registerName("credentialsForProtectionSpace:"); +final _objc_msgSend_494 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_allCredentials = objc.registerName("allCredentials"); +late final _sel_setCredential_forProtectionSpace_ = + objc.registerName("setCredential:forProtectionSpace:"); +final _objc_msgSend_495 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeCredential_forProtectionSpace_ = + objc.registerName("removeCredential:forProtectionSpace:"); +late final _sel_removeCredential_forProtectionSpace_options_ = + objc.registerName("removeCredential:forProtectionSpace:options:"); +final _objc_msgSend_496 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_defaultCredentialForProtectionSpace_ = + objc.registerName("defaultCredentialForProtectionSpace:"); +final _objc_msgSend_497 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDefaultCredential_forProtectionSpace_ = + objc.registerName("setDefaultCredential:forProtectionSpace:"); +void _ObjCBlock_ffiVoid_NSDictionary_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSDictionary_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSDictionary extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSDictionary._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSDictionary castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSDictionary._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDictionary.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDictionary_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSDictionary.fromFunction( + void Function(objc.NSDictionary?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSDictionary_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSDictionary.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSDictionary.listener(void Function(objc.NSDictionary?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSDictionary( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSDictionary_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSDictionary.castFromPointer(arg0, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(objc.NSDictionary? arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr); +} + +late final _sel_getCredentialsForProtectionSpace_task_completionHandler_ = objc + .registerName("getCredentialsForProtectionSpace:task:completionHandler:"); +final _objc_msgSend_498 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_setCredential_forProtectionSpace_task_ = + objc.registerName("setCredential:forProtectionSpace:task:"); +final _objc_msgSend_499 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeCredential_forProtectionSpace_options_task_ = + objc.registerName("removeCredential:forProtectionSpace:options:task:"); +final _objc_msgSend_500 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSURLCredential_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSURLCredential_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSURLCredential extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSURLCredential._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSURLCredential castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSURLCredential._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURLCredential.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURLCredential_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURLCredential.fromFunction( + void Function(NSURLCredential?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURLCredential_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : NSURLCredential.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSURLCredential.listener(void Function(NSURLCredential?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSURLCredential( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSURLCredential_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : NSURLCredential.castFromPointer(arg0, + retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(NSURLCredential? arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr); +} + +late final _sel_getDefaultCredentialForProtectionSpace_task_completionHandler_ = + objc.registerName( + "getDefaultCredentialForProtectionSpace:task:completionHandler:"); +final _objc_msgSend_501 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_setDefaultCredential_forProtectionSpace_task_ = + objc.registerName("setDefaultCredential:forProtectionSpace:task:"); + +/// NSURLProtocol +class NSURLProtocol extends objc.NSObject { + NSURLProtocol._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLProtocol] that points to the same underlying object as [other]. + NSURLProtocol.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLProtocol] that wraps the given raw object pointer. + NSURLProtocol.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLProtocol]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLProtocol); + } + + /// initWithRequest:cachedResponse:client: + NSURLProtocol initWithRequest_cachedResponse_client_(NSURLRequest request, + NSCachedURLResponse? cachedResponse, objc.ObjCObjectBase? client) { + final _ret = _objc_msgSend_502( + this.pointer, + _sel_initWithRequest_cachedResponse_client_, + request.pointer, + cachedResponse?.pointer ?? ffi.nullptr, + client?.pointer ?? ffi.nullptr); + return NSURLProtocol.castFromPointer(_ret, retain: true, release: true); + } + + /// client + objc.ObjCObjectBase? get client { + final _ret = _objc_msgSend_83(this.pointer, _sel_client); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// request + NSURLRequest get request { + final _ret = _objc_msgSend_478(this.pointer, _sel_request); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// cachedResponse + NSCachedURLResponse? get cachedResponse { + final _ret = _objc_msgSend_503(this.pointer, _sel_cachedResponse); + return _ret.address == 0 + ? null + : NSCachedURLResponse.castFromPointer(_ret, + retain: true, release: true); + } + + /// canInitWithRequest: + static bool canInitWithRequest_(NSURLRequest request) { + return _objc_msgSend_480( + _class_NSURLProtocol, _sel_canInitWithRequest_, request.pointer); + } + + /// canonicalRequestForRequest: + static NSURLRequest canonicalRequestForRequest_(NSURLRequest request) { + final _ret = _objc_msgSend_504(_class_NSURLProtocol, + _sel_canonicalRequestForRequest_, request.pointer); + return NSURLRequest.castFromPointer(_ret, retain: true, release: true); + } + + /// requestIsCacheEquivalent:toRequest: + static bool requestIsCacheEquivalent_toRequest_( + NSURLRequest a, NSURLRequest b) { + return _objc_msgSend_505(_class_NSURLProtocol, + _sel_requestIsCacheEquivalent_toRequest_, a.pointer, b.pointer); + } + + /// startLoading + void startLoading() { + _objc_msgSend_7(this.pointer, _sel_startLoading); + } + + /// stopLoading + void stopLoading() { + _objc_msgSend_7(this.pointer, _sel_stopLoading); + } + + /// propertyForKey:inRequest: + static objc.ObjCObjectBase? propertyForKey_inRequest_( + objc.NSString key, NSURLRequest request) { + final _ret = _objc_msgSend_506(_class_NSURLProtocol, + _sel_propertyForKey_inRequest_, key.pointer, request.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setProperty:forKey:inRequest: + static void setProperty_forKey_inRequest_(objc.ObjCObjectBase value, + objc.NSString key, NSMutableURLRequest request) { + _objc_msgSend_513(_class_NSURLProtocol, _sel_setProperty_forKey_inRequest_, + value.pointer, key.pointer, request.pointer); + } + + /// removePropertyForKey:inRequest: + static void removePropertyForKey_inRequest_( + objc.NSString key, NSMutableURLRequest request) { + _objc_msgSend_514(_class_NSURLProtocol, + _sel_removePropertyForKey_inRequest_, key.pointer, request.pointer); + } + + /// registerClass: + static bool registerClass_(objc.ObjCObjectBase protocolClass) { + return _objc_msgSend_0( + _class_NSURLProtocol, _sel_registerClass_, protocolClass.pointer); + } + + /// unregisterClass: + static void unregisterClass_(objc.ObjCObjectBase protocolClass) { + _objc_msgSend_27( + _class_NSURLProtocol, _sel_unregisterClass_, protocolClass.pointer); + } + + /// canInitWithTask: + static bool canInitWithTask_(NSURLSessionTask task) { + return _objc_msgSend_515( + _class_NSURLProtocol, _sel_canInitWithTask_, task.pointer); + } + + /// initWithTask:cachedResponse:client: + NSURLProtocol initWithTask_cachedResponse_client_(NSURLSessionTask task, + NSCachedURLResponse? cachedResponse, objc.ObjCObjectBase? client) { + final _ret = _objc_msgSend_516( + this.pointer, + _sel_initWithTask_cachedResponse_client_, + task.pointer, + cachedResponse?.pointer ?? ffi.nullptr, + client?.pointer ?? ffi.nullptr); + return NSURLProtocol.castFromPointer(_ret, retain: true, release: true); + } + + /// task + NSURLSessionTask? get task { + final _ret = _objc_msgSend_517(this.pointer, _sel_task); + return _ret.address == 0 + ? null + : NSURLSessionTask.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSURLProtocol init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLProtocol.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLProtocol new1() { + final _ret = _objc_msgSend_19(_class_NSURLProtocol, _sel_new); + return NSURLProtocol.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSURLProtocol allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSURLProtocol, _sel_allocWithZone_, zone); + return NSURLProtocol.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLProtocol alloc() { + final _ret = _objc_msgSend_19(_class_NSURLProtocol, _sel_alloc); + return NSURLProtocol.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLProtocol, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLProtocol, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLProtocol, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLProtocol, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLProtocol, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLProtocol, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLProtocol, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLProtocol, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLProtocol, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLProtocol = objc.getClass("classes.NSURLProtocol"); +late final _sel_initWithRequest_cachedResponse_client_ = + objc.registerName("initWithRequest:cachedResponse:client:"); +final _objc_msgSend_502 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_client = objc.registerName("client"); +late final _sel_request = objc.registerName("request"); +late final _sel_cachedResponse = objc.registerName("cachedResponse"); +final _objc_msgSend_503 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_canInitWithRequest_ = objc.registerName("canInitWithRequest:"); +late final _sel_canonicalRequestForRequest_ = + objc.registerName("canonicalRequestForRequest:"); +final _objc_msgSend_504 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_requestIsCacheEquivalent_toRequest_ = + objc.registerName("requestIsCacheEquivalent:toRequest:"); +final _objc_msgSend_505 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_startLoading = objc.registerName("startLoading"); +late final _sel_stopLoading = objc.registerName("stopLoading"); +late final _sel_propertyForKey_inRequest_ = + objc.registerName("propertyForKey:inRequest:"); +final _objc_msgSend_506 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSMutableURLRequest +class NSMutableURLRequest extends NSURLRequest { + NSMutableURLRequest._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSMutableURLRequest] that points to the same underlying object as [other]. + NSMutableURLRequest.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSMutableURLRequest] that wraps the given raw object pointer. + NSMutableURLRequest.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSMutableURLRequest]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSMutableURLRequest); + } + + /// URL + objc.NSURL? get URL { + final _ret = _objc_msgSend_24(this.pointer, _sel_URL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// setURL: + set URL(objc.NSURL? value) { + return _objc_msgSend_25( + this.pointer, _sel_setURL_, value?.pointer ?? ffi.nullptr); + } + + /// cachePolicy + NSURLRequestCachePolicy get cachePolicy { + final _ret = _objc_msgSend_331(this.pointer, _sel_cachePolicy); + return NSURLRequestCachePolicy.fromValue(_ret); + } + + /// setCachePolicy: + set cachePolicy(NSURLRequestCachePolicy value) { + return _objc_msgSend_507(this.pointer, _sel_setCachePolicy_, value.value); + } + + /// timeoutInterval + double get timeoutInterval { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_timeoutInterval) + : _objc_msgSend_18(this.pointer, _sel_timeoutInterval); + } + + /// setTimeoutInterval: + set timeoutInterval(double value) { + return _objc_msgSend_223(this.pointer, _sel_setTimeoutInterval_, value); + } + + /// mainDocumentURL + objc.NSURL? get mainDocumentURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_mainDocumentURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// setMainDocumentURL: + set mainDocumentURL(objc.NSURL? value) { + return _objc_msgSend_25( + this.pointer, _sel_setMainDocumentURL_, value?.pointer ?? ffi.nullptr); + } + + /// networkServiceType + NSURLRequestNetworkServiceType get networkServiceType { + final _ret = _objc_msgSend_332(this.pointer, _sel_networkServiceType); + return NSURLRequestNetworkServiceType.fromValue(_ret); + } + + /// setNetworkServiceType: + set networkServiceType(NSURLRequestNetworkServiceType value) { + return _objc_msgSend_508( + this.pointer, _sel_setNetworkServiceType_, value.value); + } + + /// allowsCellularAccess + bool get allowsCellularAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsCellularAccess); + } + + /// setAllowsCellularAccess: + set allowsCellularAccess(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setAllowsCellularAccess_, value); + } + + /// allowsExpensiveNetworkAccess + bool get allowsExpensiveNetworkAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsExpensiveNetworkAccess); + } + + /// setAllowsExpensiveNetworkAccess: + set allowsExpensiveNetworkAccess(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAllowsExpensiveNetworkAccess_, value); + } + + /// allowsConstrainedNetworkAccess + bool get allowsConstrainedNetworkAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsConstrainedNetworkAccess); + } + + /// setAllowsConstrainedNetworkAccess: + set allowsConstrainedNetworkAccess(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAllowsConstrainedNetworkAccess_, value); + } + + /// assumesHTTP3Capable + bool get assumesHTTP3Capable { + return _objc_msgSend_13(this.pointer, _sel_assumesHTTP3Capable); + } + + /// setAssumesHTTP3Capable: + set assumesHTTP3Capable(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setAssumesHTTP3Capable_, value); + } + + /// attribution + NSURLRequestAttribution get attribution { + final _ret = _objc_msgSend_333(this.pointer, _sel_attribution); + return NSURLRequestAttribution.fromValue(_ret); + } + + /// setAttribution: + set attribution(NSURLRequestAttribution value) { + return _objc_msgSend_509(this.pointer, _sel_setAttribution_, value.value); + } + + /// requiresDNSSECValidation + bool get requiresDNSSECValidation { + return _objc_msgSend_13(this.pointer, _sel_requiresDNSSECValidation); + } + + /// setRequiresDNSSECValidation: + set requiresDNSSECValidation(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setRequiresDNSSECValidation_, value); + } + + /// HTTPMethod + objc.NSString get HTTPMethod { + final _ret = _objc_msgSend_11(this.pointer, _sel_HTTPMethod); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setHTTPMethod: + set HTTPMethod(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setHTTPMethod_, value.pointer); + } + + /// allHTTPHeaderFields + objc.NSDictionary? get allHTTPHeaderFields { + final _ret = _objc_msgSend_82(this.pointer, _sel_allHTTPHeaderFields); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setAllHTTPHeaderFields: + set allHTTPHeaderFields(objc.NSDictionary? value) { + return _objc_msgSend_187(this.pointer, _sel_setAllHTTPHeaderFields_, + value?.pointer ?? ffi.nullptr); + } + + /// setValue:forHTTPHeaderField: + void setValue_forHTTPHeaderField_(objc.NSString? value, objc.NSString field) { + _objc_msgSend_510(this.pointer, _sel_setValue_forHTTPHeaderField_, + value?.pointer ?? ffi.nullptr, field.pointer); + } + + /// addValue:forHTTPHeaderField: + void addValue_forHTTPHeaderField_(objc.NSString value, objc.NSString field) { + _objc_msgSend_213(this.pointer, _sel_addValue_forHTTPHeaderField_, + value.pointer, field.pointer); + } + + /// HTTPBody + objc.NSData? get HTTPBody { + final _ret = _objc_msgSend_334(this.pointer, _sel_HTTPBody); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// setHTTPBody: + set HTTPBody(objc.NSData? value) { + return _objc_msgSend_511( + this.pointer, _sel_setHTTPBody_, value?.pointer ?? ffi.nullptr); + } + + /// HTTPBodyStream + NSInputStream? get HTTPBodyStream { + final _ret = _objc_msgSend_351(this.pointer, _sel_HTTPBodyStream); + return _ret.address == 0 + ? null + : NSInputStream.castFromPointer(_ret, retain: true, release: true); + } + + /// setHTTPBodyStream: + set HTTPBodyStream(NSInputStream? value) { + return _objc_msgSend_512( + this.pointer, _sel_setHTTPBodyStream_, value?.pointer ?? ffi.nullptr); + } + + /// HTTPShouldHandleCookies + bool get HTTPShouldHandleCookies { + return _objc_msgSend_13(this.pointer, _sel_HTTPShouldHandleCookies); + } + + /// setHTTPShouldHandleCookies: + set HTTPShouldHandleCookies(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setHTTPShouldHandleCookies_, value); + } + + /// HTTPShouldUsePipelining + bool get HTTPShouldUsePipelining { + return _objc_msgSend_13(this.pointer, _sel_HTTPShouldUsePipelining); + } + + /// setHTTPShouldUsePipelining: + set HTTPShouldUsePipelining(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setHTTPShouldUsePipelining_, value); + } + + /// requestWithURL: + static NSMutableURLRequest requestWithURL_(objc.NSURL URL) { + final _ret = _objc_msgSend_329( + _class_NSMutableURLRequest, _sel_requestWithURL_, URL.pointer); + return NSMutableURLRequest.castFromPointer(_ret, + retain: true, release: true); + } + + /// supportsSecureCoding + static bool getSupportsSecureCoding() { + return _objc_msgSend_13( + _class_NSMutableURLRequest, _sel_supportsSecureCoding); + } + + /// requestWithURL:cachePolicy:timeoutInterval: + static NSMutableURLRequest requestWithURL_cachePolicy_timeoutInterval_( + objc.NSURL URL, + NSURLRequestCachePolicy cachePolicy, + double timeoutInterval) { + final _ret = _objc_msgSend_330( + _class_NSMutableURLRequest, + _sel_requestWithURL_cachePolicy_timeoutInterval_, + URL.pointer, + cachePolicy.value, + timeoutInterval); + return NSMutableURLRequest.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithURL: + NSMutableURLRequest initWithURL_(objc.NSURL URL) { + final _ret = + _objc_msgSend_329(this.pointer, _sel_initWithURL_, URL.pointer); + return NSMutableURLRequest.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithURL:cachePolicy:timeoutInterval: + NSMutableURLRequest initWithURL_cachePolicy_timeoutInterval_(objc.NSURL URL, + NSURLRequestCachePolicy cachePolicy, double timeoutInterval) { + final _ret = _objc_msgSend_330( + this.pointer, + _sel_initWithURL_cachePolicy_timeoutInterval_, + URL.pointer, + cachePolicy.value, + timeoutInterval); + return NSMutableURLRequest.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSMutableURLRequest init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSMutableURLRequest.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSMutableURLRequest new1() { + final _ret = _objc_msgSend_19(_class_NSMutableURLRequest, _sel_new); + return NSMutableURLRequest.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSMutableURLRequest allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSMutableURLRequest, _sel_allocWithZone_, zone); + return NSMutableURLRequest.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSMutableURLRequest alloc() { + final _ret = _objc_msgSend_19(_class_NSMutableURLRequest, _sel_alloc); + return NSMutableURLRequest.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSMutableURLRequest, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSMutableURLRequest, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSMutableURLRequest, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSMutableURLRequest, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSMutableURLRequest, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSMutableURLRequest, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSMutableURLRequest, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSMutableURLRequest, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSMutableURLRequest, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSMutableURLRequest = + objc.getClass("classes.NSMutableURLRequest"); +late final _sel_setURL_ = objc.registerName("setURL:"); +late final _sel_setCachePolicy_ = objc.registerName("setCachePolicy:"); +final _objc_msgSend_507 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setTimeoutInterval_ = objc.registerName("setTimeoutInterval:"); +late final _sel_setMainDocumentURL_ = objc.registerName("setMainDocumentURL:"); +late final _sel_setNetworkServiceType_ = + objc.registerName("setNetworkServiceType:"); +final _objc_msgSend_508 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setAllowsCellularAccess_ = + objc.registerName("setAllowsCellularAccess:"); +late final _sel_setAllowsExpensiveNetworkAccess_ = + objc.registerName("setAllowsExpensiveNetworkAccess:"); +late final _sel_setAllowsConstrainedNetworkAccess_ = + objc.registerName("setAllowsConstrainedNetworkAccess:"); +late final _sel_setAssumesHTTP3Capable_ = + objc.registerName("setAssumesHTTP3Capable:"); +late final _sel_setAttribution_ = objc.registerName("setAttribution:"); +final _objc_msgSend_509 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setRequiresDNSSECValidation_ = + objc.registerName("setRequiresDNSSECValidation:"); +late final _sel_setHTTPMethod_ = objc.registerName("setHTTPMethod:"); +late final _sel_setAllHTTPHeaderFields_ = + objc.registerName("setAllHTTPHeaderFields:"); +late final _sel_setValue_forHTTPHeaderField_ = + objc.registerName("setValue:forHTTPHeaderField:"); +final _objc_msgSend_510 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_addValue_forHTTPHeaderField_ = + objc.registerName("addValue:forHTTPHeaderField:"); +late final _sel_setHTTPBody_ = objc.registerName("setHTTPBody:"); +final _objc_msgSend_511 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setHTTPBodyStream_ = objc.registerName("setHTTPBodyStream:"); +final _objc_msgSend_512 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setHTTPShouldHandleCookies_ = + objc.registerName("setHTTPShouldHandleCookies:"); +late final _sel_setHTTPShouldUsePipelining_ = + objc.registerName("setHTTPShouldUsePipelining:"); +late final _sel_setProperty_forKey_inRequest_ = + objc.registerName("setProperty:forKey:inRequest:"); +final _objc_msgSend_513 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removePropertyForKey_inRequest_ = + objc.registerName("removePropertyForKey:inRequest:"); +final _objc_msgSend_514 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_registerClass_ = objc.registerName("registerClass:"); +late final _sel_unregisterClass_ = objc.registerName("unregisterClass:"); +late final _sel_canInitWithTask_ = objc.registerName("canInitWithTask:"); +final _objc_msgSend_515 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithTask_cachedResponse_client_ = + objc.registerName("initWithTask:cachedResponse:client:"); +final _objc_msgSend_516 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_task = objc.registerName("task"); +final _objc_msgSend_517 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); + +/// NSXMLParser +class NSXMLParser extends objc.NSObject { + NSXMLParser._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSXMLParser] that points to the same underlying object as [other]. + NSXMLParser.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSXMLParser] that wraps the given raw object pointer. + NSXMLParser.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSXMLParser]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSXMLParser); + } + + /// initWithContentsOfURL: + NSXMLParser? initWithContentsOfURL_(objc.NSURL url) { + final _ret = _objc_msgSend_36( + this.pointer, _sel_initWithContentsOfURL_, url.pointer); + return _ret.address == 0 + ? null + : NSXMLParser.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithData: + NSXMLParser initWithData_(objc.NSData data) { + final _ret = + _objc_msgSend_337(this.pointer, _sel_initWithData_, data.pointer); + return NSXMLParser.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithStream: + NSXMLParser initWithStream_(NSInputStream stream) { + final _ret = + _objc_msgSend_518(this.pointer, _sel_initWithStream_, stream.pointer); + return NSXMLParser.castFromPointer(_ret, retain: true, release: true); + } + + /// delegate + objc.ObjCObjectBase? get delegate { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setDelegate: + set delegate(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setDelegate_, value?.pointer ?? ffi.nullptr); + } + + /// shouldProcessNamespaces + bool get shouldProcessNamespaces { + return _objc_msgSend_13(this.pointer, _sel_shouldProcessNamespaces); + } + + /// setShouldProcessNamespaces: + set shouldProcessNamespaces(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setShouldProcessNamespaces_, value); + } + + /// shouldReportNamespacePrefixes + bool get shouldReportNamespacePrefixes { + return _objc_msgSend_13(this.pointer, _sel_shouldReportNamespacePrefixes); + } + + /// setShouldReportNamespacePrefixes: + set shouldReportNamespacePrefixes(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setShouldReportNamespacePrefixes_, value); + } + + /// externalEntityResolvingPolicy + NSXMLParserExternalEntityResolvingPolicy get externalEntityResolvingPolicy { + final _ret = + _objc_msgSend_519(this.pointer, _sel_externalEntityResolvingPolicy); + return NSXMLParserExternalEntityResolvingPolicy.fromValue(_ret); + } + + /// setExternalEntityResolvingPolicy: + set externalEntityResolvingPolicy( + NSXMLParserExternalEntityResolvingPolicy value) { + return _objc_msgSend_520( + this.pointer, _sel_setExternalEntityResolvingPolicy_, value.value); + } + + /// allowedExternalEntityURLs + objc.NSSet? get allowedExternalEntityURLs { + final _ret = + _objc_msgSend_521(this.pointer, _sel_allowedExternalEntityURLs); + return _ret.address == 0 + ? null + : objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// setAllowedExternalEntityURLs: + set allowedExternalEntityURLs(objc.NSSet? value) { + return _objc_msgSend_522(this.pointer, _sel_setAllowedExternalEntityURLs_, + value?.pointer ?? ffi.nullptr); + } + + /// parse + bool parse() { + return _objc_msgSend_13(this.pointer, _sel_parse); + } + + /// abortParsing + void abortParsing() { + _objc_msgSend_7(this.pointer, _sel_abortParsing); + } + + /// parserError + objc.NSError? get parserError { + final _ret = _objc_msgSend_341(this.pointer, _sel_parserError); + return _ret.address == 0 + ? null + : objc.NSError.castFromPointer(_ret, retain: true, release: true); + } + + /// shouldResolveExternalEntities + bool get shouldResolveExternalEntities { + return _objc_msgSend_13(this.pointer, _sel_shouldResolveExternalEntities); + } + + /// setShouldResolveExternalEntities: + set shouldResolveExternalEntities(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setShouldResolveExternalEntities_, value); + } + + /// publicID + objc.NSString? get publicID { + final _ret = _objc_msgSend_20(this.pointer, _sel_publicID); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// systemID + objc.NSString? get systemID { + final _ret = _objc_msgSend_20(this.pointer, _sel_systemID); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// lineNumber + int get lineNumber { + return _objc_msgSend_123(this.pointer, _sel_lineNumber); + } + + /// columnNumber + int get columnNumber { + return _objc_msgSend_123(this.pointer, _sel_columnNumber); + } + + /// init + NSXMLParser init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSXMLParser.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSXMLParser new1() { + final _ret = _objc_msgSend_19(_class_NSXMLParser, _sel_new); + return NSXMLParser.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSXMLParser allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSXMLParser, _sel_allocWithZone_, zone); + return NSXMLParser.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSXMLParser alloc() { + final _ret = _objc_msgSend_19(_class_NSXMLParser, _sel_alloc); + return NSXMLParser.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSXMLParser, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSXMLParser, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSXMLParser, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSXMLParser, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSXMLParser, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSXMLParser, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSXMLParser, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSXMLParser, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSXMLParser, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSXMLParser = objc.getClass("classes.NSXMLParser"); +late final _sel_initWithContentsOfURL_ = + objc.registerName("initWithContentsOfURL:"); +late final _sel_initWithStream_ = objc.registerName("initWithStream:"); +final _objc_msgSend_518 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_shouldProcessNamespaces = + objc.registerName("shouldProcessNamespaces"); +late final _sel_setShouldProcessNamespaces_ = + objc.registerName("setShouldProcessNamespaces:"); +late final _sel_shouldReportNamespacePrefixes = + objc.registerName("shouldReportNamespacePrefixes"); +late final _sel_setShouldReportNamespacePrefixes_ = + objc.registerName("setShouldReportNamespacePrefixes:"); + +enum NSXMLParserExternalEntityResolvingPolicy { + NSXMLParserResolveExternalEntitiesNever(0), + NSXMLParserResolveExternalEntitiesNoNetwork(1), + NSXMLParserResolveExternalEntitiesSameOriginOnly(2), + NSXMLParserResolveExternalEntitiesAlways(3); + + final int value; + const NSXMLParserExternalEntityResolvingPolicy(this.value); + + static NSXMLParserExternalEntityResolvingPolicy fromValue(int value) => + switch (value) { + 0 => NSXMLParserResolveExternalEntitiesNever, + 1 => NSXMLParserResolveExternalEntitiesNoNetwork, + 2 => NSXMLParserResolveExternalEntitiesSameOriginOnly, + 3 => NSXMLParserResolveExternalEntitiesAlways, + _ => throw ArgumentError( + "Unknown value for NSXMLParserExternalEntityResolvingPolicy: $value"), + }; +} + +late final _sel_externalEntityResolvingPolicy = + objc.registerName("externalEntityResolvingPolicy"); +final _objc_msgSend_519 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setExternalEntityResolvingPolicy_ = + objc.registerName("setExternalEntityResolvingPolicy:"); +final _objc_msgSend_520 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_allowedExternalEntityURLs = + objc.registerName("allowedExternalEntityURLs"); +final _objc_msgSend_521 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setAllowedExternalEntityURLs_ = + objc.registerName("setAllowedExternalEntityURLs:"); +final _objc_msgSend_522 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_parse = objc.registerName("parse"); +late final _sel_abortParsing = objc.registerName("abortParsing"); +late final _sel_parserError = objc.registerName("parserError"); +late final _sel_shouldResolveExternalEntities = + objc.registerName("shouldResolveExternalEntities"); +late final _sel_setShouldResolveExternalEntities_ = + objc.registerName("setShouldResolveExternalEntities:"); +late final _sel_publicID = objc.registerName("publicID"); +late final _sel_systemID = objc.registerName("systemID"); +late final _sel_lineNumber = objc.registerName("lineNumber"); +late final _sel_columnNumber = objc.registerName("columnNumber"); + +/// NSFileWrapper +class NSFileWrapper extends objc.NSObject { + NSFileWrapper._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSFileWrapper] that points to the same underlying object as [other]. + NSFileWrapper.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSFileWrapper] that wraps the given raw object pointer. + NSFileWrapper.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSFileWrapper]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSFileWrapper); + } + + /// initWithURL:options:error: + NSFileWrapper? initWithURL_options_error_( + objc.NSURL url, + NSFileWrapperReadingOptions options, + ffi.Pointer> outError) { + final _ret = _objc_msgSend_523(this.pointer, + _sel_initWithURL_options_error_, url.pointer, options.value, outError); + return _ret.address == 0 + ? null + : NSFileWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// initDirectoryWithFileWrappers: + NSFileWrapper initDirectoryWithFileWrappers_( + objc.NSDictionary childrenByPreferredName) { + final _ret = _objc_msgSend_524(this.pointer, + _sel_initDirectoryWithFileWrappers_, childrenByPreferredName.pointer); + return NSFileWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// initRegularFileWithContents: + NSFileWrapper initRegularFileWithContents_(objc.NSData contents) { + final _ret = _objc_msgSend_337( + this.pointer, _sel_initRegularFileWithContents_, contents.pointer); + return NSFileWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// initSymbolicLinkWithDestinationURL: + NSFileWrapper initSymbolicLinkWithDestinationURL_(objc.NSURL url) { + final _ret = _objc_msgSend_329( + this.pointer, _sel_initSymbolicLinkWithDestinationURL_, url.pointer); + return NSFileWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithSerializedRepresentation: + NSFileWrapper? initWithSerializedRepresentation_( + objc.NSData serializeRepresentation) { + final _ret = _objc_msgSend_338( + this.pointer, + _sel_initWithSerializedRepresentation_, + serializeRepresentation.pointer); + return _ret.address == 0 + ? null + : NSFileWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithCoder: + NSFileWrapper? initWithCoder_(objc.NSCoder inCoder) { + final _ret = + _objc_msgSend_239(this.pointer, _sel_initWithCoder_, inCoder.pointer); + return _ret.address == 0 + ? null + : NSFileWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// isDirectory + bool get directory { + return _objc_msgSend_13(this.pointer, _sel_isDirectory); + } + + /// isRegularFile + bool get regularFile { + return _objc_msgSend_13(this.pointer, _sel_isRegularFile); + } + + /// isSymbolicLink + bool get symbolicLink { + return _objc_msgSend_13(this.pointer, _sel_isSymbolicLink); + } + + /// preferredFilename + objc.NSString? get preferredFilename { + final _ret = _objc_msgSend_20(this.pointer, _sel_preferredFilename); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPreferredFilename: + set preferredFilename(objc.NSString? value) { + return _objc_msgSend_21(this.pointer, _sel_setPreferredFilename_, + value?.pointer ?? ffi.nullptr); + } + + /// filename + objc.NSString? get filename { + final _ret = _objc_msgSend_20(this.pointer, _sel_filename); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setFilename: + set filename(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setFilename_, value?.pointer ?? ffi.nullptr); + } + + /// fileAttributes + objc.NSDictionary get fileAttributes { + final _ret = _objc_msgSend_121(this.pointer, _sel_fileAttributes); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setFileAttributes: + set fileAttributes(objc.NSDictionary value) { + return _objc_msgSend_122( + this.pointer, _sel_setFileAttributes_, value.pointer); + } + + /// matchesContentsOfURL: + bool matchesContentsOfURL_(objc.NSURL url) { + return _objc_msgSend_314( + this.pointer, _sel_matchesContentsOfURL_, url.pointer); + } + + /// readFromURL:options:error: + bool readFromURL_options_error_( + objc.NSURL url, + NSFileWrapperReadingOptions options, + ffi.Pointer> outError) { + return _objc_msgSend_525(this.pointer, _sel_readFromURL_options_error_, + url.pointer, options.value, outError); + } + + /// writeToURL:options:originalContentsURL:error: + bool writeToURL_options_originalContentsURL_error_( + objc.NSURL url, + NSFileWrapperWritingOptions options, + objc.NSURL? originalContentsURL, + ffi.Pointer> outError) { + return _objc_msgSend_526( + this.pointer, + _sel_writeToURL_options_originalContentsURL_error_, + url.pointer, + options.value, + originalContentsURL?.pointer ?? ffi.nullptr, + outError); + } + + /// serializedRepresentation + objc.NSData? get serializedRepresentation { + final _ret = _objc_msgSend_334(this.pointer, _sel_serializedRepresentation); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// addFileWrapper: + objc.NSString addFileWrapper_(NSFileWrapper child) { + final _ret = + _objc_msgSend_527(this.pointer, _sel_addFileWrapper_, child.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// addRegularFileWithContents:preferredFilename: + objc.NSString addRegularFileWithContents_preferredFilename_( + objc.NSData data, objc.NSString fileName) { + final _ret = _objc_msgSend_528( + this.pointer, + _sel_addRegularFileWithContents_preferredFilename_, + data.pointer, + fileName.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// removeFileWrapper: + void removeFileWrapper_(NSFileWrapper child) { + _objc_msgSend_529(this.pointer, _sel_removeFileWrapper_, child.pointer); + } + + /// fileWrappers + objc.NSDictionary? get fileWrappers { + final _ret = _objc_msgSend_82(this.pointer, _sel_fileWrappers); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// keyForFileWrapper: + objc.NSString? keyForFileWrapper_(NSFileWrapper child) { + final _ret = + _objc_msgSend_530(this.pointer, _sel_keyForFileWrapper_, child.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// regularFileContents + objc.NSData? get regularFileContents { + final _ret = _objc_msgSend_334(this.pointer, _sel_regularFileContents); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// symbolicLinkDestinationURL + objc.NSURL? get symbolicLinkDestinationURL { + final _ret = + _objc_msgSend_24(this.pointer, _sel_symbolicLinkDestinationURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithPath: + objc.ObjCObjectBase? initWithPath_(objc.NSString path) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_initWithPath_, path.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// initSymbolicLinkWithDestination: + objc.ObjCObjectBase initSymbolicLinkWithDestination_(objc.NSString path) { + final _ret = _objc_msgSend_63( + this.pointer, _sel_initSymbolicLinkWithDestination_, path.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// needsToBeUpdatedFromPath: + bool needsToBeUpdatedFromPath_(objc.NSString path) { + return _objc_msgSend_31( + this.pointer, _sel_needsToBeUpdatedFromPath_, path.pointer); + } + + /// updateFromPath: + bool updateFromPath_(objc.NSString path) { + return _objc_msgSend_31(this.pointer, _sel_updateFromPath_, path.pointer); + } + + /// writeToFile:atomically:updateFilenames: + bool writeToFile_atomically_updateFilenames_( + objc.NSString path, bool atomicFlag, bool updateFilenamesFlag) { + return _objc_msgSend_531( + this.pointer, + _sel_writeToFile_atomically_updateFilenames_, + path.pointer, + atomicFlag, + updateFilenamesFlag); + } + + /// addFileWithPath: + objc.NSString addFileWithPath_(objc.NSString path) { + final _ret = + _objc_msgSend_306(this.pointer, _sel_addFileWithPath_, path.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// addSymbolicLinkWithDestination:preferredFilename: + objc.NSString addSymbolicLinkWithDestination_preferredFilename_( + objc.NSString path, objc.NSString filename) { + final _ret = _objc_msgSend_532( + this.pointer, + _sel_addSymbolicLinkWithDestination_preferredFilename_, + path.pointer, + filename.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// symbolicLinkDestination + objc.NSString symbolicLinkDestination() { + final _ret = _objc_msgSend_11(this.pointer, _sel_symbolicLinkDestination); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSFileWrapper init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSFileWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSFileWrapper new1() { + final _ret = _objc_msgSend_19(_class_NSFileWrapper, _sel_new); + return NSFileWrapper.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSFileWrapper allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSFileWrapper, _sel_allocWithZone_, zone); + return NSFileWrapper.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSFileWrapper alloc() { + final _ret = _objc_msgSend_19(_class_NSFileWrapper, _sel_alloc); + return NSFileWrapper.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSFileWrapper, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSFileWrapper, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSFileWrapper, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSFileWrapper, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSFileWrapper, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSFileWrapper, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSFileWrapper, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSFileWrapper, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSFileWrapper, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSFileWrapper = objc.getClass("classes.NSFileWrapper"); + +enum NSFileWrapperReadingOptions { + NSFileWrapperReadingImmediate(1), + NSFileWrapperReadingWithoutMapping(2); + + final int value; + const NSFileWrapperReadingOptions(this.value); + + static NSFileWrapperReadingOptions fromValue(int value) => switch (value) { + 1 => NSFileWrapperReadingImmediate, + 2 => NSFileWrapperReadingWithoutMapping, + _ => throw ArgumentError( + "Unknown value for NSFileWrapperReadingOptions: $value"), + }; +} + +late final _sel_initWithURL_options_error_ = + objc.registerName("initWithURL:options:error:"); +final _objc_msgSend_523 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_initDirectoryWithFileWrappers_ = + objc.registerName("initDirectoryWithFileWrappers:"); +final _objc_msgSend_524 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initRegularFileWithContents_ = + objc.registerName("initRegularFileWithContents:"); +late final _sel_initSymbolicLinkWithDestinationURL_ = + objc.registerName("initSymbolicLinkWithDestinationURL:"); +late final _sel_initWithSerializedRepresentation_ = + objc.registerName("initWithSerializedRepresentation:"); +late final _sel_isDirectory = objc.registerName("isDirectory"); +late final _sel_isRegularFile = objc.registerName("isRegularFile"); +late final _sel_isSymbolicLink = objc.registerName("isSymbolicLink"); +late final _sel_preferredFilename = objc.registerName("preferredFilename"); +late final _sel_setPreferredFilename_ = + objc.registerName("setPreferredFilename:"); +late final _sel_filename = objc.registerName("filename"); +late final _sel_setFilename_ = objc.registerName("setFilename:"); +late final _sel_fileAttributes = objc.registerName("fileAttributes"); +late final _sel_setFileAttributes_ = objc.registerName("setFileAttributes:"); +late final _sel_matchesContentsOfURL_ = + objc.registerName("matchesContentsOfURL:"); +late final _sel_readFromURL_options_error_ = + objc.registerName("readFromURL:options:error:"); +final _objc_msgSend_525 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); + +enum NSFileWrapperWritingOptions { + NSFileWrapperWritingAtomic(1), + NSFileWrapperWritingWithNameUpdating(2); + + final int value; + const NSFileWrapperWritingOptions(this.value); + + static NSFileWrapperWritingOptions fromValue(int value) => switch (value) { + 1 => NSFileWrapperWritingAtomic, + 2 => NSFileWrapperWritingWithNameUpdating, + _ => throw ArgumentError( + "Unknown value for NSFileWrapperWritingOptions: $value"), + }; +} + +late final _sel_writeToURL_options_originalContentsURL_error_ = + objc.registerName("writeToURL:options:originalContentsURL:error:"); +final _objc_msgSend_526 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_serializedRepresentation = + objc.registerName("serializedRepresentation"); +late final _sel_addFileWrapper_ = objc.registerName("addFileWrapper:"); +final _objc_msgSend_527 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_addRegularFileWithContents_preferredFilename_ = + objc.registerName("addRegularFileWithContents:preferredFilename:"); +final _objc_msgSend_528 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_removeFileWrapper_ = objc.registerName("removeFileWrapper:"); +final _objc_msgSend_529 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_fileWrappers = objc.registerName("fileWrappers"); +late final _sel_keyForFileWrapper_ = objc.registerName("keyForFileWrapper:"); +final _objc_msgSend_530 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_regularFileContents = objc.registerName("regularFileContents"); +late final _sel_symbolicLinkDestinationURL = + objc.registerName("symbolicLinkDestinationURL"); +late final _sel_initSymbolicLinkWithDestination_ = + objc.registerName("initSymbolicLinkWithDestination:"); +late final _sel_needsToBeUpdatedFromPath_ = + objc.registerName("needsToBeUpdatedFromPath:"); +late final _sel_updateFromPath_ = objc.registerName("updateFromPath:"); +late final _sel_writeToFile_atomically_updateFilenames_ = + objc.registerName("writeToFile:atomically:updateFilenames:"); +final _objc_msgSend_531 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Bool)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool, + bool)>(); +late final _sel_addFileWithPath_ = objc.registerName("addFileWithPath:"); +late final _sel_addSymbolicLinkWithDestination_preferredFilename_ = + objc.registerName("addSymbolicLinkWithDestination:preferredFilename:"); +final _objc_msgSend_532 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_symbolicLinkDestination = + objc.registerName("symbolicLinkDestination"); + +/// NSURLSession +class NSURLSession extends objc.NSObject { + NSURLSession._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSession] that points to the same underlying object as [other]. + NSURLSession.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSession] that wraps the given raw object pointer. + NSURLSession.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSession]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSession); + } + + /// sharedSession + static NSURLSession getSharedSession() { + final _ret = _objc_msgSend_533(_class_NSURLSession, _sel_sharedSession); + return NSURLSession.castFromPointer(_ret, retain: true, release: true); + } + + /// sessionWithConfiguration: + static NSURLSession sessionWithConfiguration_( + NSURLSessionConfiguration configuration) { + final _ret = _objc_msgSend_549(_class_NSURLSession, + _sel_sessionWithConfiguration_, configuration.pointer); + return NSURLSession.castFromPointer(_ret, retain: true, release: true); + } + + /// sessionWithConfiguration:delegate:delegateQueue: + static NSURLSession sessionWithConfiguration_delegate_delegateQueue_( + NSURLSessionConfiguration configuration, + objc.ObjCObjectBase? delegate, + NSOperationQueue? queue) { + final _ret = _objc_msgSend_550( + _class_NSURLSession, + _sel_sessionWithConfiguration_delegate_delegateQueue_, + configuration.pointer, + delegate?.pointer ?? ffi.nullptr, + queue?.pointer ?? ffi.nullptr); + return NSURLSession.castFromPointer(_ret, retain: true, release: true); + } + + /// delegateQueue + NSOperationQueue get delegateQueue { + final _ret = _objc_msgSend_400(this.pointer, _sel_delegateQueue); + return NSOperationQueue.castFromPointer(_ret, retain: true, release: true); + } + + /// delegate + objc.ObjCObjectBase? get delegate { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// configuration + NSURLSessionConfiguration get configuration { + final _ret = _objc_msgSend_534(this.pointer, _sel_configuration); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: true, release: true); + } + + /// sessionDescription + objc.NSString? get sessionDescription { + final _ret = _objc_msgSend_20(this.pointer, _sel_sessionDescription); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setSessionDescription: + set sessionDescription(objc.NSString? value) { + return _objc_msgSend_21(this.pointer, _sel_setSessionDescription_, + value?.pointer ?? ffi.nullptr); + } + + /// finishTasksAndInvalidate + void finishTasksAndInvalidate() { + _objc_msgSend_7(this.pointer, _sel_finishTasksAndInvalidate); + } + + /// invalidateAndCancel + void invalidateAndCancel() { + _objc_msgSend_7(this.pointer, _sel_invalidateAndCancel); + } + + /// resetWithCompletionHandler: + void resetWithCompletionHandler_(ObjCBlock_ffiVoid completionHandler) { + _objc_msgSend_258(this.pointer, _sel_resetWithCompletionHandler_, + completionHandler.pointer); + } + + /// flushWithCompletionHandler: + void flushWithCompletionHandler_(ObjCBlock_ffiVoid completionHandler) { + _objc_msgSend_258(this.pointer, _sel_flushWithCompletionHandler_, + completionHandler.pointer); + } + + /// getTasksWithCompletionHandler: + void getTasksWithCompletionHandler_( + ObjCBlock_ffiVoid_NSArray_NSArray_NSArray completionHandler) { + _objc_msgSend_551(this.pointer, _sel_getTasksWithCompletionHandler_, + completionHandler.pointer); + } + + /// getAllTasksWithCompletionHandler: + void getAllTasksWithCompletionHandler_( + ObjCBlock_ffiVoid_NSArray1 completionHandler) { + _objc_msgSend_552(this.pointer, _sel_getAllTasksWithCompletionHandler_, + completionHandler.pointer); + } + + /// dataTaskWithRequest: + NSURLSessionDataTask dataTaskWithRequest_(NSURLRequest request) { + final _ret = _objc_msgSend_553( + this.pointer, _sel_dataTaskWithRequest_, request.pointer); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// dataTaskWithURL: + NSURLSessionDataTask dataTaskWithURL_(objc.NSURL url) { + final _ret = + _objc_msgSend_554(this.pointer, _sel_dataTaskWithURL_, url.pointer); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// uploadTaskWithRequest:fromFile: + NSURLSessionUploadTask uploadTaskWithRequest_fromFile_( + NSURLRequest request, objc.NSURL fileURL) { + final _ret = _objc_msgSend_556(this.pointer, + _sel_uploadTaskWithRequest_fromFile_, request.pointer, fileURL.pointer); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// uploadTaskWithRequest:fromData: + NSURLSessionUploadTask uploadTaskWithRequest_fromData_( + NSURLRequest request, objc.NSData bodyData) { + final _ret = _objc_msgSend_557( + this.pointer, + _sel_uploadTaskWithRequest_fromData_, + request.pointer, + bodyData.pointer); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// uploadTaskWithResumeData: + NSURLSessionUploadTask uploadTaskWithResumeData_(objc.NSData resumeData) { + final _ret = _objc_msgSend_558( + this.pointer, _sel_uploadTaskWithResumeData_, resumeData.pointer); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// uploadTaskWithStreamedRequest: + NSURLSessionUploadTask uploadTaskWithStreamedRequest_(NSURLRequest request) { + final _ret = _objc_msgSend_559( + this.pointer, _sel_uploadTaskWithStreamedRequest_, request.pointer); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// downloadTaskWithRequest: + NSURLSessionDownloadTask downloadTaskWithRequest_(NSURLRequest request) { + final _ret = _objc_msgSend_560( + this.pointer, _sel_downloadTaskWithRequest_, request.pointer); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// downloadTaskWithURL: + NSURLSessionDownloadTask downloadTaskWithURL_(objc.NSURL url) { + final _ret = + _objc_msgSend_561(this.pointer, _sel_downloadTaskWithURL_, url.pointer); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// downloadTaskWithResumeData: + NSURLSessionDownloadTask downloadTaskWithResumeData_(objc.NSData resumeData) { + final _ret = _objc_msgSend_562( + this.pointer, _sel_downloadTaskWithResumeData_, resumeData.pointer); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// streamTaskWithHostName:port: + NSURLSessionStreamTask streamTaskWithHostName_port_( + objc.NSString hostname, int port) { + final _ret = _objc_msgSend_565(this.pointer, + _sel_streamTaskWithHostName_port_, hostname.pointer, port); + return NSURLSessionStreamTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// streamTaskWithNetService: + NSURLSessionStreamTask streamTaskWithNetService_(NSNetService service) { + final _ret = _objc_msgSend_574( + this.pointer, _sel_streamTaskWithNetService_, service.pointer); + return NSURLSessionStreamTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// webSocketTaskWithURL: + NSURLSessionWebSocketTask webSocketTaskWithURL_(objc.NSURL url) { + final _ret = _objc_msgSend_581( + this.pointer, _sel_webSocketTaskWithURL_, url.pointer); + return NSURLSessionWebSocketTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// webSocketTaskWithURL:protocols: + NSURLSessionWebSocketTask webSocketTaskWithURL_protocols_( + objc.NSURL url, objc.NSArray protocols) { + final _ret = _objc_msgSend_582(this.pointer, + _sel_webSocketTaskWithURL_protocols_, url.pointer, protocols.pointer); + return NSURLSessionWebSocketTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// webSocketTaskWithRequest: + NSURLSessionWebSocketTask webSocketTaskWithRequest_(NSURLRequest request) { + final _ret = _objc_msgSend_583( + this.pointer, _sel_webSocketTaskWithRequest_, request.pointer); + return NSURLSessionWebSocketTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSURLSession init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSession.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSURLSession new1() { + final _ret = _objc_msgSend_19(_class_NSURLSession, _sel_new); + return NSURLSession.castFromPointer(_ret, retain: false, release: true); + } + + /// dataTaskWithRequest:completionHandler: + NSURLSessionDataTask dataTaskWithRequest_completionHandler_( + NSURLRequest request, + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_584( + this.pointer, + _sel_dataTaskWithRequest_completionHandler_, + request.pointer, + completionHandler.pointer); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// dataTaskWithURL:completionHandler: + NSURLSessionDataTask dataTaskWithURL_completionHandler_(objc.NSURL url, + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_585( + this.pointer, + _sel_dataTaskWithURL_completionHandler_, + url.pointer, + completionHandler.pointer); + return NSURLSessionDataTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// uploadTaskWithRequest:fromFile:completionHandler: + NSURLSessionUploadTask uploadTaskWithRequest_fromFile_completionHandler_( + NSURLRequest request, + objc.NSURL fileURL, + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_586( + this.pointer, + _sel_uploadTaskWithRequest_fromFile_completionHandler_, + request.pointer, + fileURL.pointer, + completionHandler.pointer); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// uploadTaskWithRequest:fromData:completionHandler: + NSURLSessionUploadTask uploadTaskWithRequest_fromData_completionHandler_( + NSURLRequest request, + objc.NSData? bodyData, + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_587( + this.pointer, + _sel_uploadTaskWithRequest_fromData_completionHandler_, + request.pointer, + bodyData?.pointer ?? ffi.nullptr, + completionHandler.pointer); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// uploadTaskWithResumeData:completionHandler: + NSURLSessionUploadTask uploadTaskWithResumeData_completionHandler_( + objc.NSData resumeData, + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_588( + this.pointer, + _sel_uploadTaskWithResumeData_completionHandler_, + resumeData.pointer, + completionHandler.pointer); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// downloadTaskWithRequest:completionHandler: + NSURLSessionDownloadTask downloadTaskWithRequest_completionHandler_( + NSURLRequest request, + ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_589( + this.pointer, + _sel_downloadTaskWithRequest_completionHandler_, + request.pointer, + completionHandler.pointer); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// downloadTaskWithURL:completionHandler: + NSURLSessionDownloadTask downloadTaskWithURL_completionHandler_( + objc.NSURL url, + ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_590( + this.pointer, + _sel_downloadTaskWithURL_completionHandler_, + url.pointer, + completionHandler.pointer); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// downloadTaskWithResumeData:completionHandler: + NSURLSessionDownloadTask downloadTaskWithResumeData_completionHandler_( + objc.NSData resumeData, + ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError completionHandler) { + final _ret = _objc_msgSend_591( + this.pointer, + _sel_downloadTaskWithResumeData_completionHandler_, + resumeData.pointer, + completionHandler.pointer); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// allocWithZone: + static NSURLSession allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSURLSession, _sel_allocWithZone_, zone); + return NSURLSession.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSURLSession alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSession, _sel_alloc); + return NSURLSession.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSession, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSession, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSession, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSURLSession, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSession, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSession, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSession, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSession, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSURLSession, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSession = objc.getClass("classes.NSURLSession"); +late final _sel_sharedSession = objc.registerName("sharedSession"); +final _objc_msgSend_533 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); + +/// NSURLSessionConfiguration +class NSURLSessionConfiguration extends objc.NSObject { + NSURLSessionConfiguration._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionConfiguration] that points to the same underlying object as [other]. + NSURLSessionConfiguration.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionConfiguration] that wraps the given raw object pointer. + NSURLSessionConfiguration.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionConfiguration]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionConfiguration); + } + + /// defaultSessionConfiguration + static NSURLSessionConfiguration getDefaultSessionConfiguration() { + final _ret = _objc_msgSend_534( + _class_NSURLSessionConfiguration, _sel_defaultSessionConfiguration); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: true, release: true); + } + + /// ephemeralSessionConfiguration + static NSURLSessionConfiguration getEphemeralSessionConfiguration() { + final _ret = _objc_msgSend_534( + _class_NSURLSessionConfiguration, _sel_ephemeralSessionConfiguration); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: true, release: true); + } + + /// backgroundSessionConfigurationWithIdentifier: + static NSURLSessionConfiguration + backgroundSessionConfigurationWithIdentifier_(objc.NSString identifier) { + final _ret = _objc_msgSend_535(_class_NSURLSessionConfiguration, + _sel_backgroundSessionConfigurationWithIdentifier_, identifier.pointer); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: true, release: true); + } + + /// identifier + objc.NSString? get identifier { + final _ret = _objc_msgSend_20(this.pointer, _sel_identifier); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// requestCachePolicy + NSURLRequestCachePolicy get requestCachePolicy { + final _ret = _objc_msgSend_331(this.pointer, _sel_requestCachePolicy); + return NSURLRequestCachePolicy.fromValue(_ret); + } + + /// setRequestCachePolicy: + set requestCachePolicy(NSURLRequestCachePolicy value) { + return _objc_msgSend_507( + this.pointer, _sel_setRequestCachePolicy_, value.value); + } + + /// timeoutIntervalForRequest + double get timeoutIntervalForRequest { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_timeoutIntervalForRequest) + : _objc_msgSend_18(this.pointer, _sel_timeoutIntervalForRequest); + } + + /// setTimeoutIntervalForRequest: + set timeoutIntervalForRequest(double value) { + return _objc_msgSend_223( + this.pointer, _sel_setTimeoutIntervalForRequest_, value); + } + + /// timeoutIntervalForResource + double get timeoutIntervalForResource { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_timeoutIntervalForResource) + : _objc_msgSend_18(this.pointer, _sel_timeoutIntervalForResource); + } + + /// setTimeoutIntervalForResource: + set timeoutIntervalForResource(double value) { + return _objc_msgSend_223( + this.pointer, _sel_setTimeoutIntervalForResource_, value); + } + + /// networkServiceType + NSURLRequestNetworkServiceType get networkServiceType { + final _ret = _objc_msgSend_332(this.pointer, _sel_networkServiceType); + return NSURLRequestNetworkServiceType.fromValue(_ret); + } + + /// setNetworkServiceType: + set networkServiceType(NSURLRequestNetworkServiceType value) { + return _objc_msgSend_508( + this.pointer, _sel_setNetworkServiceType_, value.value); + } + + /// allowsCellularAccess + bool get allowsCellularAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsCellularAccess); + } + + /// setAllowsCellularAccess: + set allowsCellularAccess(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setAllowsCellularAccess_, value); + } + + /// allowsExpensiveNetworkAccess + bool get allowsExpensiveNetworkAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsExpensiveNetworkAccess); + } + + /// setAllowsExpensiveNetworkAccess: + set allowsExpensiveNetworkAccess(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAllowsExpensiveNetworkAccess_, value); + } + + /// allowsConstrainedNetworkAccess + bool get allowsConstrainedNetworkAccess { + return _objc_msgSend_13(this.pointer, _sel_allowsConstrainedNetworkAccess); + } + + /// setAllowsConstrainedNetworkAccess: + set allowsConstrainedNetworkAccess(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setAllowsConstrainedNetworkAccess_, value); + } + + /// requiresDNSSECValidation + bool get requiresDNSSECValidation { + return _objc_msgSend_13(this.pointer, _sel_requiresDNSSECValidation); + } + + /// setRequiresDNSSECValidation: + set requiresDNSSECValidation(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setRequiresDNSSECValidation_, value); + } + + /// waitsForConnectivity + bool get waitsForConnectivity { + return _objc_msgSend_13(this.pointer, _sel_waitsForConnectivity); + } + + /// setWaitsForConnectivity: + set waitsForConnectivity(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setWaitsForConnectivity_, value); + } + + /// isDiscretionary + bool get discretionary { + return _objc_msgSend_13(this.pointer, _sel_isDiscretionary); + } + + /// setDiscretionary: + set discretionary(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setDiscretionary_, value); + } + + /// sharedContainerIdentifier + objc.NSString? get sharedContainerIdentifier { + final _ret = _objc_msgSend_20(this.pointer, _sel_sharedContainerIdentifier); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setSharedContainerIdentifier: + set sharedContainerIdentifier(objc.NSString? value) { + return _objc_msgSend_21(this.pointer, _sel_setSharedContainerIdentifier_, + value?.pointer ?? ffi.nullptr); + } + + /// sessionSendsLaunchEvents + bool get sessionSendsLaunchEvents { + return _objc_msgSend_13(this.pointer, _sel_sessionSendsLaunchEvents); + } + + /// setSessionSendsLaunchEvents: + set sessionSendsLaunchEvents(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setSessionSendsLaunchEvents_, value); + } + + /// connectionProxyDictionary + objc.NSDictionary? get connectionProxyDictionary { + final _ret = _objc_msgSend_82(this.pointer, _sel_connectionProxyDictionary); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setConnectionProxyDictionary: + set connectionProxyDictionary(objc.NSDictionary? value) { + return _objc_msgSend_187(this.pointer, _sel_setConnectionProxyDictionary_, + value?.pointer ?? ffi.nullptr); + } + + /// TLSMinimumSupportedProtocol + SSLProtocol get TLSMinimumSupportedProtocol { + final _ret = + _objc_msgSend_536(this.pointer, _sel_TLSMinimumSupportedProtocol); + return SSLProtocol.fromValue(_ret); + } + + /// setTLSMinimumSupportedProtocol: + set TLSMinimumSupportedProtocol(SSLProtocol value) { + return _objc_msgSend_537( + this.pointer, _sel_setTLSMinimumSupportedProtocol_, value.value); + } + + /// TLSMaximumSupportedProtocol + SSLProtocol get TLSMaximumSupportedProtocol { + final _ret = + _objc_msgSend_536(this.pointer, _sel_TLSMaximumSupportedProtocol); + return SSLProtocol.fromValue(_ret); + } + + /// setTLSMaximumSupportedProtocol: + set TLSMaximumSupportedProtocol(SSLProtocol value) { + return _objc_msgSend_537( + this.pointer, _sel_setTLSMaximumSupportedProtocol_, value.value); + } + + /// TLSMinimumSupportedProtocolVersion + tls_protocol_version_t get TLSMinimumSupportedProtocolVersion { + final _ret = _objc_msgSend_538( + this.pointer, _sel_TLSMinimumSupportedProtocolVersion); + return tls_protocol_version_t.fromValue(_ret); + } + + /// setTLSMinimumSupportedProtocolVersion: + set TLSMinimumSupportedProtocolVersion(tls_protocol_version_t value) { + return _objc_msgSend_539( + this.pointer, _sel_setTLSMinimumSupportedProtocolVersion_, value.value); + } + + /// TLSMaximumSupportedProtocolVersion + tls_protocol_version_t get TLSMaximumSupportedProtocolVersion { + final _ret = _objc_msgSend_538( + this.pointer, _sel_TLSMaximumSupportedProtocolVersion); + return tls_protocol_version_t.fromValue(_ret); + } + + /// setTLSMaximumSupportedProtocolVersion: + set TLSMaximumSupportedProtocolVersion(tls_protocol_version_t value) { + return _objc_msgSend_539( + this.pointer, _sel_setTLSMaximumSupportedProtocolVersion_, value.value); + } + + /// HTTPShouldUsePipelining + bool get HTTPShouldUsePipelining { + return _objc_msgSend_13(this.pointer, _sel_HTTPShouldUsePipelining); + } + + /// setHTTPShouldUsePipelining: + set HTTPShouldUsePipelining(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setHTTPShouldUsePipelining_, value); + } + + /// HTTPShouldSetCookies + bool get HTTPShouldSetCookies { + return _objc_msgSend_13(this.pointer, _sel_HTTPShouldSetCookies); + } + + /// setHTTPShouldSetCookies: + set HTTPShouldSetCookies(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setHTTPShouldSetCookies_, value); + } + + /// HTTPCookieAcceptPolicy + NSHTTPCookieAcceptPolicy get HTTPCookieAcceptPolicy { + final _ret = _objc_msgSend_327(this.pointer, _sel_HTTPCookieAcceptPolicy); + return NSHTTPCookieAcceptPolicy.fromValue(_ret); + } + + /// setHTTPCookieAcceptPolicy: + set HTTPCookieAcceptPolicy(NSHTTPCookieAcceptPolicy value) { + return _objc_msgSend_328( + this.pointer, _sel_setHTTPCookieAcceptPolicy_, value.value); + } + + /// HTTPAdditionalHeaders + objc.NSDictionary? get HTTPAdditionalHeaders { + final _ret = _objc_msgSend_82(this.pointer, _sel_HTTPAdditionalHeaders); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setHTTPAdditionalHeaders: + set HTTPAdditionalHeaders(objc.NSDictionary? value) { + return _objc_msgSend_187(this.pointer, _sel_setHTTPAdditionalHeaders_, + value?.pointer ?? ffi.nullptr); + } + + /// HTTPMaximumConnectionsPerHost + int get HTTPMaximumConnectionsPerHost { + return _objc_msgSend_123(this.pointer, _sel_HTTPMaximumConnectionsPerHost); + } + + /// setHTTPMaximumConnectionsPerHost: + set HTTPMaximumConnectionsPerHost(int value) { + return _objc_msgSend_142( + this.pointer, _sel_setHTTPMaximumConnectionsPerHost_, value); + } + + /// HTTPCookieStorage + NSHTTPCookieStorage? get HTTPCookieStorage { + final _ret = _objc_msgSend_540(this.pointer, _sel_HTTPCookieStorage); + return _ret.address == 0 + ? null + : NSHTTPCookieStorage.castFromPointer(_ret, + retain: true, release: true); + } + + /// setHTTPCookieStorage: + set HTTPCookieStorage(NSHTTPCookieStorage? value) { + return _objc_msgSend_541(this.pointer, _sel_setHTTPCookieStorage_, + value?.pointer ?? ffi.nullptr); + } + + /// URLCredentialStorage + NSURLCredentialStorage? get URLCredentialStorage { + final _ret = _objc_msgSend_542(this.pointer, _sel_URLCredentialStorage); + return _ret.address == 0 + ? null + : NSURLCredentialStorage.castFromPointer(_ret, + retain: true, release: true); + } + + /// setURLCredentialStorage: + set URLCredentialStorage(NSURLCredentialStorage? value) { + return _objc_msgSend_543(this.pointer, _sel_setURLCredentialStorage_, + value?.pointer ?? ffi.nullptr); + } + + /// URLCache + NSURLCache? get URLCache { + final _ret = _objc_msgSend_544(this.pointer, _sel_URLCache); + return _ret.address == 0 + ? null + : NSURLCache.castFromPointer(_ret, retain: true, release: true); + } + + /// setURLCache: + set URLCache(NSURLCache? value) { + return _objc_msgSend_545( + this.pointer, _sel_setURLCache_, value?.pointer ?? ffi.nullptr); + } + + /// shouldUseExtendedBackgroundIdleMode + bool get shouldUseExtendedBackgroundIdleMode { + return _objc_msgSend_13( + this.pointer, _sel_shouldUseExtendedBackgroundIdleMode); + } + + /// setShouldUseExtendedBackgroundIdleMode: + set shouldUseExtendedBackgroundIdleMode(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setShouldUseExtendedBackgroundIdleMode_, value); + } + + /// protocolClasses + objc.NSArray? get protocolClasses { + final _ret = _objc_msgSend_86(this.pointer, _sel_protocolClasses); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setProtocolClasses: + set protocolClasses(objc.NSArray? value) { + return _objc_msgSend_546( + this.pointer, _sel_setProtocolClasses_, value?.pointer ?? ffi.nullptr); + } + + /// multipathServiceType + NSURLSessionMultipathServiceType get multipathServiceType { + final _ret = _objc_msgSend_547(this.pointer, _sel_multipathServiceType); + return NSURLSessionMultipathServiceType.fromValue(_ret); + } + + /// setMultipathServiceType: + set multipathServiceType(NSURLSessionMultipathServiceType value) { + return _objc_msgSend_548( + this.pointer, _sel_setMultipathServiceType_, value.value); + } + + /// init + NSURLSessionConfiguration init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLSessionConfiguration new1() { + final _ret = _objc_msgSend_19(_class_NSURLSessionConfiguration, _sel_new); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: false, release: true); + } + + /// backgroundSessionConfiguration: + static NSURLSessionConfiguration backgroundSessionConfiguration_( + objc.NSString identifier) { + final _ret = _objc_msgSend_535(_class_NSURLSessionConfiguration, + _sel_backgroundSessionConfiguration_, identifier.pointer); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: true, release: true); + } + + /// allocWithZone: + static NSURLSessionConfiguration allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLSessionConfiguration, _sel_allocWithZone_, zone); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLSessionConfiguration alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSessionConfiguration, _sel_alloc); + return NSURLSessionConfiguration.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionConfiguration, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionConfiguration, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSessionConfiguration, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLSessionConfiguration, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionConfiguration, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionConfiguration, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionConfiguration, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSessionConfiguration, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLSessionConfiguration, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionConfiguration = + objc.getClass("classes.NSURLSessionConfiguration"); +late final _sel_defaultSessionConfiguration = + objc.registerName("defaultSessionConfiguration"); +final _objc_msgSend_534 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_ephemeralSessionConfiguration = + objc.registerName("ephemeralSessionConfiguration"); +late final _sel_backgroundSessionConfigurationWithIdentifier_ = + objc.registerName("backgroundSessionConfigurationWithIdentifier:"); +final _objc_msgSend_535 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_identifier = objc.registerName("identifier"); +late final _sel_requestCachePolicy = objc.registerName("requestCachePolicy"); +late final _sel_setRequestCachePolicy_ = + objc.registerName("setRequestCachePolicy:"); +late final _sel_timeoutIntervalForRequest = + objc.registerName("timeoutIntervalForRequest"); +late final _sel_setTimeoutIntervalForRequest_ = + objc.registerName("setTimeoutIntervalForRequest:"); +late final _sel_timeoutIntervalForResource = + objc.registerName("timeoutIntervalForResource"); +late final _sel_setTimeoutIntervalForResource_ = + objc.registerName("setTimeoutIntervalForResource:"); +late final _sel_waitsForConnectivity = + objc.registerName("waitsForConnectivity"); +late final _sel_setWaitsForConnectivity_ = + objc.registerName("setWaitsForConnectivity:"); +late final _sel_isDiscretionary = objc.registerName("isDiscretionary"); +late final _sel_setDiscretionary_ = objc.registerName("setDiscretionary:"); +late final _sel_sharedContainerIdentifier = + objc.registerName("sharedContainerIdentifier"); +late final _sel_setSharedContainerIdentifier_ = + objc.registerName("setSharedContainerIdentifier:"); +late final _sel_sessionSendsLaunchEvents = + objc.registerName("sessionSendsLaunchEvents"); +late final _sel_setSessionSendsLaunchEvents_ = + objc.registerName("setSessionSendsLaunchEvents:"); +late final _sel_connectionProxyDictionary = + objc.registerName("connectionProxyDictionary"); +late final _sel_setConnectionProxyDictionary_ = + objc.registerName("setConnectionProxyDictionary:"); + +enum SSLProtocol { + kSSLProtocolUnknown(0), + kTLSProtocol1(4), + kTLSProtocol11(7), + kTLSProtocol12(8), + kDTLSProtocol1(9), + kTLSProtocol13(10), + kDTLSProtocol12(11), + kTLSProtocolMaxSupported(999), + kSSLProtocol2(1), + kSSLProtocol3(2), + kSSLProtocol3Only(3), + kTLSProtocol1Only(5), + kSSLProtocolAll(6); + + final int value; + const SSLProtocol(this.value); + + static SSLProtocol fromValue(int value) => switch (value) { + 0 => kSSLProtocolUnknown, + 4 => kTLSProtocol1, + 7 => kTLSProtocol11, + 8 => kTLSProtocol12, + 9 => kDTLSProtocol1, + 10 => kTLSProtocol13, + 11 => kDTLSProtocol12, + 999 => kTLSProtocolMaxSupported, + 1 => kSSLProtocol2, + 2 => kSSLProtocol3, + 3 => kSSLProtocol3Only, + 5 => kTLSProtocol1Only, + 6 => kSSLProtocolAll, + _ => throw ArgumentError("Unknown value for SSLProtocol: $value"), + }; +} + +late final _sel_TLSMinimumSupportedProtocol = + objc.registerName("TLSMinimumSupportedProtocol"); +final _objc_msgSend_536 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedInt Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setTLSMinimumSupportedProtocol_ = + objc.registerName("setTLSMinimumSupportedProtocol:"); +final _objc_msgSend_537 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedInt)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_TLSMaximumSupportedProtocol = + objc.registerName("TLSMaximumSupportedProtocol"); +late final _sel_setTLSMaximumSupportedProtocol_ = + objc.registerName("setTLSMaximumSupportedProtocol:"); + +enum tls_protocol_version_t { + tls_protocol_version_TLSv10(769), + tls_protocol_version_TLSv11(770), + tls_protocol_version_TLSv12(771), + tls_protocol_version_TLSv13(772), + tls_protocol_version_DTLSv10(-257), + tls_protocol_version_DTLSv12(-259); + + final int value; + const tls_protocol_version_t(this.value); + + static tls_protocol_version_t fromValue(int value) => switch (value) { + 769 => tls_protocol_version_TLSv10, + 770 => tls_protocol_version_TLSv11, + 771 => tls_protocol_version_TLSv12, + 772 => tls_protocol_version_TLSv13, + -257 => tls_protocol_version_DTLSv10, + -259 => tls_protocol_version_DTLSv12, + _ => throw ArgumentError( + "Unknown value for tls_protocol_version_t: $value"), + }; +} + +late final _sel_TLSMinimumSupportedProtocolVersion = + objc.registerName("TLSMinimumSupportedProtocolVersion"); +final _objc_msgSend_538 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Uint16 Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setTLSMinimumSupportedProtocolVersion_ = + objc.registerName("setTLSMinimumSupportedProtocolVersion:"); +final _objc_msgSend_539 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Uint16)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_TLSMaximumSupportedProtocolVersion = + objc.registerName("TLSMaximumSupportedProtocolVersion"); +late final _sel_setTLSMaximumSupportedProtocolVersion_ = + objc.registerName("setTLSMaximumSupportedProtocolVersion:"); +late final _sel_HTTPShouldSetCookies = + objc.registerName("HTTPShouldSetCookies"); +late final _sel_setHTTPShouldSetCookies_ = + objc.registerName("setHTTPShouldSetCookies:"); +late final _sel_HTTPCookieAcceptPolicy = + objc.registerName("HTTPCookieAcceptPolicy"); +late final _sel_setHTTPCookieAcceptPolicy_ = + objc.registerName("setHTTPCookieAcceptPolicy:"); +late final _sel_HTTPAdditionalHeaders = + objc.registerName("HTTPAdditionalHeaders"); +late final _sel_setHTTPAdditionalHeaders_ = + objc.registerName("setHTTPAdditionalHeaders:"); +late final _sel_HTTPMaximumConnectionsPerHost = + objc.registerName("HTTPMaximumConnectionsPerHost"); +late final _sel_setHTTPMaximumConnectionsPerHost_ = + objc.registerName("setHTTPMaximumConnectionsPerHost:"); +late final _sel_HTTPCookieStorage = objc.registerName("HTTPCookieStorage"); +final _objc_msgSend_540 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setHTTPCookieStorage_ = + objc.registerName("setHTTPCookieStorage:"); +final _objc_msgSend_541 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_URLCredentialStorage = + objc.registerName("URLCredentialStorage"); +final _objc_msgSend_542 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setURLCredentialStorage_ = + objc.registerName("setURLCredentialStorage:"); +final _objc_msgSend_543 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_URLCache = objc.registerName("URLCache"); +final _objc_msgSend_544 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setURLCache_ = objc.registerName("setURLCache:"); +final _objc_msgSend_545 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_shouldUseExtendedBackgroundIdleMode = + objc.registerName("shouldUseExtendedBackgroundIdleMode"); +late final _sel_setShouldUseExtendedBackgroundIdleMode_ = + objc.registerName("setShouldUseExtendedBackgroundIdleMode:"); +late final _sel_protocolClasses = objc.registerName("protocolClasses"); +late final _sel_setProtocolClasses_ = objc.registerName("setProtocolClasses:"); +final _objc_msgSend_546 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +enum NSURLSessionMultipathServiceType { + NSURLSessionMultipathServiceTypeNone(0), + NSURLSessionMultipathServiceTypeHandover(1), + NSURLSessionMultipathServiceTypeInteractive(2), + NSURLSessionMultipathServiceTypeAggregate(3); + + final int value; + const NSURLSessionMultipathServiceType(this.value); + + static NSURLSessionMultipathServiceType fromValue(int value) => + switch (value) { + 0 => NSURLSessionMultipathServiceTypeNone, + 1 => NSURLSessionMultipathServiceTypeHandover, + 2 => NSURLSessionMultipathServiceTypeInteractive, + 3 => NSURLSessionMultipathServiceTypeAggregate, + _ => throw ArgumentError( + "Unknown value for NSURLSessionMultipathServiceType: $value"), + }; +} + +late final _sel_multipathServiceType = + objc.registerName("multipathServiceType"); +final _objc_msgSend_547 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setMultipathServiceType_ = + objc.registerName("setMultipathServiceType:"); +final _objc_msgSend_548 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_backgroundSessionConfiguration_ = + objc.registerName("backgroundSessionConfiguration:"); +late final _sel_sessionWithConfiguration_ = + objc.registerName("sessionWithConfiguration:"); +final _objc_msgSend_549 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_sessionWithConfiguration_delegate_delegateQueue_ = + objc.registerName("sessionWithConfiguration:delegate:delegateQueue:"); +final _objc_msgSend_550 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_delegateQueue = objc.registerName("delegateQueue"); +late final _sel_configuration = objc.registerName("configuration"); +late final _sel_sessionDescription = objc.registerName("sessionDescription"); +late final _sel_setSessionDescription_ = + objc.registerName("setSessionDescription:"); +late final _sel_finishTasksAndInvalidate = + objc.registerName("finishTasksAndInvalidate"); +late final _sel_invalidateAndCancel = objc.registerName("invalidateAndCancel"); +late final _sel_resetWithCompletionHandler_ = + objc.registerName("resetWithCompletionHandler:"); +late final _sel_flushWithCompletionHandler_ = + objc.registerName("flushWithCompletionHandler:"); +void _ObjCBlock_ffiVoid_NSArray_NSArray_NSArray_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_NSArray_NSArray_NSArray_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSArray_NSArray_NSArray extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSArray_NSArray_NSArray._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSArray_NSArray_NSArray castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSArray_NSArray_NSArray._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSArray_NSArray_NSArray.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSArray_NSArray_NSArray_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSArray_NSArray_NSArray.fromFunction( + void Function(objc.NSArray, objc.NSArray, objc.NSArray) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSArray_NSArray_NSArray_closureTrampoline) + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1, ffi.Pointer arg2) => fn( + objc.NSArray.castFromPointer(arg0, retain: true, release: true), + objc.NSArray.castFromPointer(arg1, retain: true, release: true), + objc.NSArray.castFromPointer(arg2, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSArray_NSArray_NSArray.listener( + void Function(objc.NSArray, objc.NSArray, objc.NSArray) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSArray_NSArray_NSArray(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= + ffi.NativeCallable, ffi.Pointer, ffi.Pointer, ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSArray_NSArray_NSArray_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + fn( + objc.NSArray.castFromPointer(arg0, + retain: false, release: true), + objc.NSArray.castFromPointer(arg1, retain: false, release: true), + objc.NSArray.castFromPointer(arg2, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(objc.NSArray arg0, objc.NSArray arg1, objc.NSArray arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()( + pointer, arg0.pointer, arg1.pointer, arg2.pointer); +} + +late final _sel_getTasksWithCompletionHandler_ = + objc.registerName("getTasksWithCompletionHandler:"); +final _objc_msgSend_551 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSArray1_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSArray1_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSArray1 extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSArray1._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSArray1 castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSArray1._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSArray1.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSArray1_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSArray1.fromFunction(void Function(objc.NSArray) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSArray1_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn( + objc.NSArray.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSArray1.listener(void Function(objc.NSArray) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSArray1( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSArray1_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn( + objc.NSArray.castFromPointer(arg0, + retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(objc.NSArray arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer)>()(pointer, arg0.pointer); +} + +late final _sel_getAllTasksWithCompletionHandler_ = + objc.registerName("getAllTasksWithCompletionHandler:"); +final _objc_msgSend_552 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_dataTaskWithRequest_ = + objc.registerName("dataTaskWithRequest:"); +final _objc_msgSend_553 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_dataTaskWithURL_ = objc.registerName("dataTaskWithURL:"); +final _objc_msgSend_554 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSURLSessionUploadTask +class NSURLSessionUploadTask extends NSURLSessionDataTask { + NSURLSessionUploadTask._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionUploadTask] that points to the same underlying object as [other]. + NSURLSessionUploadTask.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionUploadTask] that wraps the given raw object pointer. + NSURLSessionUploadTask.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionUploadTask]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionUploadTask); + } + + /// init + NSURLSessionUploadTask init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLSessionUploadTask new1() { + final _ret = _objc_msgSend_19(_class_NSURLSessionUploadTask, _sel_new); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelByProducingResumeData: + void cancelByProducingResumeData_( + ObjCBlock_ffiVoid_NSData completionHandler) { + _objc_msgSend_555(this.pointer, _sel_cancelByProducingResumeData_, + completionHandler.pointer); + } + + /// allocWithZone: + static NSURLSessionUploadTask allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLSessionUploadTask, _sel_allocWithZone_, zone); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLSessionUploadTask alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSessionUploadTask, _sel_alloc); + return NSURLSessionUploadTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionUploadTask, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionUploadTask, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSessionUploadTask, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLSessionUploadTask, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionUploadTask, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionUploadTask, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionUploadTask, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSessionUploadTask, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLSessionUploadTask, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionUploadTask = + objc.getClass("classes.NSURLSessionUploadTask"); +void _ObjCBlock_ffiVoid_NSData_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSData_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSData extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSData._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSData castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSData._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSData.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSData_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSData.fromFunction(void Function(objc.NSData?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSData_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSData.castFromPointer(arg0, + retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSData.listener(void Function(objc.NSData?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSData(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSData_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn(arg0.address == 0 + ? null + : objc.NSData.castFromPointer(arg0, + retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(objc.NSData? arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function( + ffi.Pointer, ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr); +} + +late final _sel_cancelByProducingResumeData_ = + objc.registerName("cancelByProducingResumeData:"); +final _objc_msgSend_555 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_uploadTaskWithRequest_fromFile_ = + objc.registerName("uploadTaskWithRequest:fromFile:"); +final _objc_msgSend_556 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_uploadTaskWithRequest_fromData_ = + objc.registerName("uploadTaskWithRequest:fromData:"); +final _objc_msgSend_557 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_uploadTaskWithResumeData_ = + objc.registerName("uploadTaskWithResumeData:"); +final _objc_msgSend_558 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_uploadTaskWithStreamedRequest_ = + objc.registerName("uploadTaskWithStreamedRequest:"); +final _objc_msgSend_559 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSURLSessionDownloadTask +class NSURLSessionDownloadTask extends NSURLSessionTask { + NSURLSessionDownloadTask._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionDownloadTask] that points to the same underlying object as [other]. + NSURLSessionDownloadTask.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionDownloadTask] that wraps the given raw object pointer. + NSURLSessionDownloadTask.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionDownloadTask]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionDownloadTask); + } + + /// cancelByProducingResumeData: + void cancelByProducingResumeData_( + ObjCBlock_ffiVoid_NSData completionHandler) { + _objc_msgSend_555(this.pointer, _sel_cancelByProducingResumeData_, + completionHandler.pointer); + } + + /// init + NSURLSessionDownloadTask init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLSessionDownloadTask new1() { + final _ret = _objc_msgSend_19(_class_NSURLSessionDownloadTask, _sel_new); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSURLSessionDownloadTask allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLSessionDownloadTask, _sel_allocWithZone_, zone); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLSessionDownloadTask alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSessionDownloadTask, _sel_alloc); + return NSURLSessionDownloadTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionDownloadTask, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionDownloadTask, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSessionDownloadTask, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLSessionDownloadTask, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionDownloadTask, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionDownloadTask, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionDownloadTask, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSessionDownloadTask, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLSessionDownloadTask, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionDownloadTask = + objc.getClass("classes.NSURLSessionDownloadTask"); +late final _sel_downloadTaskWithRequest_ = + objc.registerName("downloadTaskWithRequest:"); +final _objc_msgSend_560 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_downloadTaskWithURL_ = + objc.registerName("downloadTaskWithURL:"); +final _objc_msgSend_561 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_downloadTaskWithResumeData_ = + objc.registerName("downloadTaskWithResumeData:"); +final _objc_msgSend_562 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSURLSessionStreamTask +class NSURLSessionStreamTask extends NSURLSessionTask { + NSURLSessionStreamTask._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionStreamTask] that points to the same underlying object as [other]. + NSURLSessionStreamTask.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionStreamTask] that wraps the given raw object pointer. + NSURLSessionStreamTask.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionStreamTask]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionStreamTask); + } + + /// readDataOfMinLength:maxLength:timeout:completionHandler: + void readDataOfMinLength_maxLength_timeout_completionHandler_( + int minBytes, + int maxBytes, + double timeout, + ObjCBlock_ffiVoid_NSData_bool_NSError completionHandler) { + _objc_msgSend_563( + this.pointer, + _sel_readDataOfMinLength_maxLength_timeout_completionHandler_, + minBytes, + maxBytes, + timeout, + completionHandler.pointer); + } + + /// writeData:timeout:completionHandler: + void writeData_timeout_completionHandler_(objc.NSData data, double timeout, + ObjCBlock_ffiVoid_NSError completionHandler) { + _objc_msgSend_564(this.pointer, _sel_writeData_timeout_completionHandler_, + data.pointer, timeout, completionHandler.pointer); + } + + /// captureStreams + void captureStreams() { + _objc_msgSend_7(this.pointer, _sel_captureStreams); + } + + /// closeWrite + void closeWrite() { + _objc_msgSend_7(this.pointer, _sel_closeWrite); + } + + /// closeRead + void closeRead() { + _objc_msgSend_7(this.pointer, _sel_closeRead); + } + + /// startSecureConnection + void startSecureConnection() { + _objc_msgSend_7(this.pointer, _sel_startSecureConnection); + } + + /// stopSecureConnection + void stopSecureConnection() { + _objc_msgSend_7(this.pointer, _sel_stopSecureConnection); + } + + /// init + NSURLSessionStreamTask init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionStreamTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLSessionStreamTask new1() { + final _ret = _objc_msgSend_19(_class_NSURLSessionStreamTask, _sel_new); + return NSURLSessionStreamTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSURLSessionStreamTask allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLSessionStreamTask, _sel_allocWithZone_, zone); + return NSURLSessionStreamTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLSessionStreamTask alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSessionStreamTask, _sel_alloc); + return NSURLSessionStreamTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionStreamTask, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionStreamTask, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSessionStreamTask, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLSessionStreamTask, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionStreamTask, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionStreamTask, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionStreamTask, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSessionStreamTask, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLSessionStreamTask, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionStreamTask = + objc.getClass("classes.NSURLSessionStreamTask"); +void _ObjCBlock_ffiVoid_NSData_bool_NSError_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + bool arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Bool arg1, ffi.Pointer arg2)>>() + .asFunction< + void Function(ffi.Pointer, bool, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_NSData_bool_NSError_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + bool arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function(ffi.Pointer, + bool, ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSData_bool_NSError extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSData_bool_NSError._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSData_bool_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSData_bool_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSData_bool_NSError.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Bool arg1, ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSData_bool_NSError_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSData_bool_NSError.fromFunction( + void Function(objc.NSData, bool, objc.NSError?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSData_bool_NSError_closureTrampoline) + .cast(), + (ffi.Pointer arg0, bool arg1, ffi.Pointer arg2) => fn( + objc.NSData.castFromPointer(arg0, retain: true, release: true), + arg1, + arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSData_bool_NSError.listener( + void Function(objc.NSData, bool, objc.NSError?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSData_bool_NSError( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSData_bool_NSError_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, bool arg1, + ffi.Pointer arg2) => + fn(objc.NSData.castFromPointer(arg0, retain: false, release: true), arg1, arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Bool, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(objc.NSData arg0, bool arg1, objc.NSError? arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Bool arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + bool, + ffi.Pointer)>()( + pointer, arg0.pointer, arg1, arg2?.pointer ?? ffi.nullptr); +} + +late final _sel_readDataOfMinLength_maxLength_timeout_completionHandler_ = objc + .registerName("readDataOfMinLength:maxLength:timeout:completionHandler:"); +final _objc_msgSend_563 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong, + ffi.Double, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + double, + ffi.Pointer)>(); +late final _sel_writeData_timeout_completionHandler_ = + objc.registerName("writeData:timeout:completionHandler:"); +final _objc_msgSend_564 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Double, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + double, + ffi.Pointer)>(); +late final _sel_captureStreams = objc.registerName("captureStreams"); +late final _sel_closeWrite = objc.registerName("closeWrite"); +late final _sel_closeRead = objc.registerName("closeRead"); +late final _sel_startSecureConnection = + objc.registerName("startSecureConnection"); +late final _sel_stopSecureConnection = + objc.registerName("stopSecureConnection"); +late final _sel_streamTaskWithHostName_port_ = + objc.registerName("streamTaskWithHostName:port:"); +final _objc_msgSend_565 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); + +/// NSNetService +class NSNetService extends objc.NSObject { + NSNetService._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSNetService] that points to the same underlying object as [other]. + NSNetService.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSNetService] that wraps the given raw object pointer. + NSNetService.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSNetService]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSNetService); + } + + /// initWithDomain:type:name:port: + NSNetService initWithDomain_type_name_port_( + objc.NSString domain, objc.NSString type, objc.NSString name, int port) { + final _ret = _objc_msgSend_566( + this.pointer, + _sel_initWithDomain_type_name_port_, + domain.pointer, + type.pointer, + name.pointer, + port); + return NSNetService.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithDomain:type:name: + NSNetService initWithDomain_type_name_( + objc.NSString domain, objc.NSString type, objc.NSString name) { + final _ret = _objc_msgSend_567(this.pointer, _sel_initWithDomain_type_name_, + domain.pointer, type.pointer, name.pointer); + return NSNetService.castFromPointer(_ret, retain: true, release: true); + } + + /// scheduleInRunLoop:forMode: + void scheduleInRunLoop_forMode_(NSRunLoop aRunLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_scheduleInRunLoop_forMode_, + aRunLoop.pointer, mode.pointer); + } + + /// removeFromRunLoop:forMode: + void removeFromRunLoop_forMode_(NSRunLoop aRunLoop, objc.NSString mode) { + _objc_msgSend_227(this.pointer, _sel_removeFromRunLoop_forMode_, + aRunLoop.pointer, mode.pointer); + } + + /// delegate + objc.ObjCObjectBase? get delegate { + final _ret = _objc_msgSend_83(this.pointer, _sel_delegate); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setDelegate: + set delegate(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setDelegate_, value?.pointer ?? ffi.nullptr); + } + + /// includesPeerToPeer + bool get includesPeerToPeer { + return _objc_msgSend_13(this.pointer, _sel_includesPeerToPeer); + } + + /// setIncludesPeerToPeer: + set includesPeerToPeer(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setIncludesPeerToPeer_, value); + } + + /// name + objc.NSString get name { + final _ret = _objc_msgSend_11(this.pointer, _sel_name); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// type + objc.NSString get type { + final _ret = _objc_msgSend_11(this.pointer, _sel_type); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// domain + objc.NSString get domain { + final _ret = _objc_msgSend_11(this.pointer, _sel_domain); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// hostName + objc.NSString? get hostName { + final _ret = _objc_msgSend_20(this.pointer, _sel_hostName); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// addresses + objc.NSArray? get addresses { + final _ret = _objc_msgSend_86(this.pointer, _sel_addresses); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// port + int get port { + return _objc_msgSend_123(this.pointer, _sel_port); + } + + /// publish + void publish() { + _objc_msgSend_7(this.pointer, _sel_publish); + } + + /// publishWithOptions: + void publishWithOptions_(NSNetServiceOptions options) { + _objc_msgSend_568(this.pointer, _sel_publishWithOptions_, options.value); + } + + /// resolve + void resolve() { + _objc_msgSend_7(this.pointer, _sel_resolve); + } + + /// stop + void stop() { + _objc_msgSend_7(this.pointer, _sel_stop); + } + + /// dictionaryFromTXTRecordData: + static objc.NSDictionary dictionaryFromTXTRecordData_(objc.NSData txtData) { + final _ret = _objc_msgSend_569(_class_NSNetService, + _sel_dictionaryFromTXTRecordData_, txtData.pointer); + return objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// dataFromTXTRecordDictionary: + static objc.NSData dataFromTXTRecordDictionary_( + objc.NSDictionary txtDictionary) { + final _ret = _objc_msgSend_570(_class_NSNetService, + _sel_dataFromTXTRecordDictionary_, txtDictionary.pointer); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// resolveWithTimeout: + void resolveWithTimeout_(double timeout) { + _objc_msgSend_571(this.pointer, _sel_resolveWithTimeout_, timeout); + } + + /// getInputStream:outputStream: + bool getInputStream_outputStream_( + ffi.Pointer> inputStream, + ffi.Pointer> outputStream) { + return _objc_msgSend_572(this.pointer, _sel_getInputStream_outputStream_, + inputStream, outputStream); + } + + /// setTXTRecordData: + bool setTXTRecordData_(objc.NSData? recordData) { + return _objc_msgSend_573(this.pointer, _sel_setTXTRecordData_, + recordData?.pointer ?? ffi.nullptr); + } + + /// TXTRecordData + objc.NSData? TXTRecordData() { + final _ret = _objc_msgSend_334(this.pointer, _sel_TXTRecordData); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// startMonitoring + void startMonitoring() { + _objc_msgSend_7(this.pointer, _sel_startMonitoring); + } + + /// stopMonitoring + void stopMonitoring() { + _objc_msgSend_7(this.pointer, _sel_stopMonitoring); + } + + /// init + NSNetService init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSNetService.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSNetService new1() { + final _ret = _objc_msgSend_19(_class_NSNetService, _sel_new); + return NSNetService.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSNetService allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSNetService, _sel_allocWithZone_, zone); + return NSNetService.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSNetService alloc() { + final _ret = _objc_msgSend_19(_class_NSNetService, _sel_alloc); + return NSNetService.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSNetService, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSNetService, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSNetService, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSNetService, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSNetService, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSNetService, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSNetService, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSNetService, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSNetService, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSNetService = objc.getClass("classes.NSNetService"); +late final _sel_initWithDomain_type_name_port_ = + objc.registerName("initWithDomain:type:name:port:"); +final _objc_msgSend_566 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Int)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_initWithDomain_type_name_ = + objc.registerName("initWithDomain:type:name:"); +final _objc_msgSend_567 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_includesPeerToPeer = objc.registerName("includesPeerToPeer"); +late final _sel_setIncludesPeerToPeer_ = + objc.registerName("setIncludesPeerToPeer:"); +late final _sel_type = objc.registerName("type"); + +enum NSNetServiceOptions { + NSNetServiceNoAutoRename(1), + NSNetServiceListenForConnections(2); + + final int value; + const NSNetServiceOptions(this.value); + + static NSNetServiceOptions fromValue(int value) => switch (value) { + 1 => NSNetServiceNoAutoRename, + 2 => NSNetServiceListenForConnections, + _ => + throw ArgumentError("Unknown value for NSNetServiceOptions: $value"), + }; +} + +late final _sel_publishWithOptions_ = objc.registerName("publishWithOptions:"); +final _objc_msgSend_568 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_resolve = objc.registerName("resolve"); +late final _sel_stop = objc.registerName("stop"); +late final _sel_dictionaryFromTXTRecordData_ = + objc.registerName("dictionaryFromTXTRecordData:"); +final _objc_msgSend_569 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_dataFromTXTRecordDictionary_ = + objc.registerName("dataFromTXTRecordDictionary:"); +final _objc_msgSend_570 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_resolveWithTimeout_ = objc.registerName("resolveWithTimeout:"); +final _objc_msgSend_571 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Double)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, double)>(); +late final _sel_getInputStream_outputStream_ = + objc.registerName("getInputStream:outputStream:"); +final _objc_msgSend_572 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>>() + .asFunction< + bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer>)>(); +late final _sel_setTXTRecordData_ = objc.registerName("setTXTRecordData:"); +final _objc_msgSend_573 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_TXTRecordData = objc.registerName("TXTRecordData"); +late final _sel_startMonitoring = objc.registerName("startMonitoring"); +late final _sel_stopMonitoring = objc.registerName("stopMonitoring"); +late final _sel_streamTaskWithNetService_ = + objc.registerName("streamTaskWithNetService:"); +final _objc_msgSend_574 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +/// NSURLSessionWebSocketTask +class NSURLSessionWebSocketTask extends NSURLSessionTask { + NSURLSessionWebSocketTask._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionWebSocketTask] that points to the same underlying object as [other]. + NSURLSessionWebSocketTask.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionWebSocketTask] that wraps the given raw object pointer. + NSURLSessionWebSocketTask.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionWebSocketTask]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionWebSocketTask); + } + + /// sendMessage:completionHandler: + void sendMessage_completionHandler_(NSURLSessionWebSocketMessage message, + ObjCBlock_ffiVoid_NSError completionHandler) { + _objc_msgSend_576(this.pointer, _sel_sendMessage_completionHandler_, + message.pointer, completionHandler.pointer); + } + + /// receiveMessageWithCompletionHandler: + void receiveMessageWithCompletionHandler_( + ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError + completionHandler) { + _objc_msgSend_577(this.pointer, _sel_receiveMessageWithCompletionHandler_, + completionHandler.pointer); + } + + /// sendPingWithPongReceiveHandler: + void sendPingWithPongReceiveHandler_( + ObjCBlock_ffiVoid_NSError pongReceiveHandler) { + _objc_msgSend_578(this.pointer, _sel_sendPingWithPongReceiveHandler_, + pongReceiveHandler.pointer); + } + + /// cancelWithCloseCode:reason: + void cancelWithCloseCode_reason_( + NSURLSessionWebSocketCloseCode closeCode, objc.NSData? reason) { + _objc_msgSend_579(this.pointer, _sel_cancelWithCloseCode_reason_, + closeCode.value, reason?.pointer ?? ffi.nullptr); + } + + /// maximumMessageSize + int get maximumMessageSize { + return _objc_msgSend_123(this.pointer, _sel_maximumMessageSize); + } + + /// setMaximumMessageSize: + set maximumMessageSize(int value) { + return _objc_msgSend_142(this.pointer, _sel_setMaximumMessageSize_, value); + } + + /// closeCode + NSURLSessionWebSocketCloseCode get closeCode { + final _ret = _objc_msgSend_580(this.pointer, _sel_closeCode); + return NSURLSessionWebSocketCloseCode.fromValue(_ret); + } + + /// closeReason + objc.NSData? get closeReason { + final _ret = _objc_msgSend_334(this.pointer, _sel_closeReason); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSURLSessionWebSocketTask init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionWebSocketTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLSessionWebSocketTask new1() { + final _ret = _objc_msgSend_19(_class_NSURLSessionWebSocketTask, _sel_new); + return NSURLSessionWebSocketTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSURLSessionWebSocketTask allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLSessionWebSocketTask, _sel_allocWithZone_, zone); + return NSURLSessionWebSocketTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLSessionWebSocketTask alloc() { + final _ret = _objc_msgSend_19(_class_NSURLSessionWebSocketTask, _sel_alloc); + return NSURLSessionWebSocketTask.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionWebSocketTask, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionWebSocketTask, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSURLSessionWebSocketTask, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLSessionWebSocketTask, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionWebSocketTask, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionWebSocketTask, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionWebSocketTask, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSURLSessionWebSocketTask, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLSessionWebSocketTask, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionWebSocketTask = + objc.getClass("classes.NSURLSessionWebSocketTask"); + +/// NSURLSessionWebSocketMessage +class NSURLSessionWebSocketMessage extends objc.NSObject { + NSURLSessionWebSocketMessage._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSURLSessionWebSocketMessage] that points to the same underlying object as [other]. + NSURLSessionWebSocketMessage.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSURLSessionWebSocketMessage] that wraps the given raw object pointer. + NSURLSessionWebSocketMessage.castFromPointer( + ffi.Pointer other, + {bool retain = false, + bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSURLSessionWebSocketMessage]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSURLSessionWebSocketMessage); + } + + /// initWithData: + NSURLSessionWebSocketMessage initWithData_(objc.NSData data) { + final _ret = + _objc_msgSend_337(this.pointer, _sel_initWithData_, data.pointer); + return NSURLSessionWebSocketMessage.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithString: + NSURLSessionWebSocketMessage initWithString_(objc.NSString string) { + final _ret = + _objc_msgSend_63(this.pointer, _sel_initWithString_, string.pointer); + return NSURLSessionWebSocketMessage.castFromPointer(_ret, + retain: true, release: true); + } + + /// type + NSURLSessionWebSocketMessageType get type { + final _ret = _objc_msgSend_575(this.pointer, _sel_type); + return NSURLSessionWebSocketMessageType.fromValue(_ret); + } + + /// data + objc.NSData? get data { + final _ret = _objc_msgSend_334(this.pointer, _sel_data); + return _ret.address == 0 + ? null + : objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// string + objc.NSString? get string { + final _ret = _objc_msgSend_20(this.pointer, _sel_string); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSURLSessionWebSocketMessage init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSURLSessionWebSocketMessage.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSURLSessionWebSocketMessage new1() { + final _ret = + _objc_msgSend_19(_class_NSURLSessionWebSocketMessage, _sel_new); + return NSURLSessionWebSocketMessage.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSURLSessionWebSocketMessage allocWithZone_( + ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSURLSessionWebSocketMessage, _sel_allocWithZone_, zone); + return NSURLSessionWebSocketMessage.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSURLSessionWebSocketMessage alloc() { + final _ret = + _objc_msgSend_19(_class_NSURLSessionWebSocketMessage, _sel_alloc); + return NSURLSessionWebSocketMessage.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSURLSessionWebSocketMessage, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSURLSessionWebSocketMessage, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13(_class_NSURLSessionWebSocketMessage, + _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSURLSessionWebSocketMessage, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSURLSessionWebSocketMessage, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSURLSessionWebSocketMessage, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSURLSessionWebSocketMessage, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33(_class_NSURLSessionWebSocketMessage, + _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSURLSessionWebSocketMessage, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSURLSessionWebSocketMessage = + objc.getClass("classes.NSURLSessionWebSocketMessage"); + +enum NSURLSessionWebSocketMessageType { + NSURLSessionWebSocketMessageTypeData(0), + NSURLSessionWebSocketMessageTypeString(1); + + final int value; + const NSURLSessionWebSocketMessageType(this.value); + + static NSURLSessionWebSocketMessageType fromValue(int value) => + switch (value) { + 0 => NSURLSessionWebSocketMessageTypeData, + 1 => NSURLSessionWebSocketMessageTypeString, + _ => throw ArgumentError( + "Unknown value for NSURLSessionWebSocketMessageType: $value"), + }; +} + +final _objc_msgSend_575 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_sendMessage_completionHandler_ = + objc.registerName("sendMessage:completionHandler:"); +final _objc_msgSend_576 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Pointer arg1)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer)>()(arg0, arg1); +void _ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1) => + (objc.getBlockClosure(block) as void Function(ffi.Pointer, + ffi.Pointer))(arg0, arg1); + +class ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError + extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0, + ffi.Pointer arg1)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError.fromFunction( + void Function(NSURLSessionWebSocketMessage?, objc.NSError?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError_closureTrampoline) + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1) => fn( + arg0.address == 0 + ? null + : NSURLSessionWebSocketMessage.castFromPointer(arg0, retain: true, release: true), + arg1.address == 0 ? null : objc.NSError.castFromPointer(arg1, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError.listener( + void Function(NSURLSessionWebSocketMessage?, objc.NSError?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= + ffi.NativeCallable, ffi.Pointer, ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSURLSessionWebSocketMessage_NSError_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1) => fn( + arg0.address == 0 + ? null + : NSURLSessionWebSocketMessage.castFromPointer(arg0, + retain: false, release: true), + arg1.address == 0 + ? null + : objc.NSError.castFromPointer(arg1, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(NSURLSessionWebSocketMessage? arg0, objc.NSError? arg1) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()( + pointer, arg0?.pointer ?? ffi.nullptr, arg1?.pointer ?? ffi.nullptr); +} + +late final _sel_receiveMessageWithCompletionHandler_ = + objc.registerName("receiveMessageWithCompletionHandler:"); +final _objc_msgSend_577 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_sendPingWithPongReceiveHandler_ = + objc.registerName("sendPingWithPongReceiveHandler:"); +final _objc_msgSend_578 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); + +enum NSURLSessionWebSocketCloseCode { + NSURLSessionWebSocketCloseCodeInvalid(0), + NSURLSessionWebSocketCloseCodeNormalClosure(1000), + NSURLSessionWebSocketCloseCodeGoingAway(1001), + NSURLSessionWebSocketCloseCodeProtocolError(1002), + NSURLSessionWebSocketCloseCodeUnsupportedData(1003), + NSURLSessionWebSocketCloseCodeNoStatusReceived(1005), + NSURLSessionWebSocketCloseCodeAbnormalClosure(1006), + NSURLSessionWebSocketCloseCodeInvalidFramePayloadData(1007), + NSURLSessionWebSocketCloseCodePolicyViolation(1008), + NSURLSessionWebSocketCloseCodeMessageTooBig(1009), + NSURLSessionWebSocketCloseCodeMandatoryExtensionMissing(1010), + NSURLSessionWebSocketCloseCodeInternalServerError(1011), + NSURLSessionWebSocketCloseCodeTLSHandshakeFailure(1015); + + final int value; + const NSURLSessionWebSocketCloseCode(this.value); + + static NSURLSessionWebSocketCloseCode fromValue(int value) => switch (value) { + 0 => NSURLSessionWebSocketCloseCodeInvalid, + 1000 => NSURLSessionWebSocketCloseCodeNormalClosure, + 1001 => NSURLSessionWebSocketCloseCodeGoingAway, + 1002 => NSURLSessionWebSocketCloseCodeProtocolError, + 1003 => NSURLSessionWebSocketCloseCodeUnsupportedData, + 1005 => NSURLSessionWebSocketCloseCodeNoStatusReceived, + 1006 => NSURLSessionWebSocketCloseCodeAbnormalClosure, + 1007 => NSURLSessionWebSocketCloseCodeInvalidFramePayloadData, + 1008 => NSURLSessionWebSocketCloseCodePolicyViolation, + 1009 => NSURLSessionWebSocketCloseCodeMessageTooBig, + 1010 => NSURLSessionWebSocketCloseCodeMandatoryExtensionMissing, + 1011 => NSURLSessionWebSocketCloseCodeInternalServerError, + 1015 => NSURLSessionWebSocketCloseCodeTLSHandshakeFailure, + _ => throw ArgumentError( + "Unknown value for NSURLSessionWebSocketCloseCode: $value"), + }; +} + +late final _sel_cancelWithCloseCode_reason_ = + objc.registerName("cancelWithCloseCode:reason:"); +final _objc_msgSend_579 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_maximumMessageSize = objc.registerName("maximumMessageSize"); +late final _sel_setMaximumMessageSize_ = + objc.registerName("setMaximumMessageSize:"); +late final _sel_closeCode = objc.registerName("closeCode"); +final _objc_msgSend_580 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_closeReason = objc.registerName("closeReason"); +late final _sel_webSocketTaskWithURL_ = + objc.registerName("webSocketTaskWithURL:"); +final _objc_msgSend_581 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_webSocketTaskWithURL_protocols_ = + objc.registerName("webSocketTaskWithURL:protocols:"); +final _objc_msgSend_582 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_webSocketTaskWithRequest_ = + objc.registerName("webSocketTaskWithRequest:"); +final _objc_msgSend_583 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError + extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError.fromFunction( + void Function(objc.NSData?, NSURLResponse?, objc.NSError?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError_closureTrampoline) + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1, ffi.Pointer arg2) => fn( + arg0.address == 0 ? null : objc.NSData.castFromPointer(arg0, retain: true, release: true), + arg1.address == 0 ? null : NSURLResponse.castFromPointer(arg1, retain: true, release: true), + arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError.listener( + void Function(objc.NSData?, NSURLResponse?, objc.NSError?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError( + objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= + ffi.NativeCallable, ffi.Pointer, ffi.Pointer, ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSData_NSURLResponse_NSError_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + fn( + arg0.address == 0 + ? null + : objc.NSData.castFromPointer(arg0, retain: false, release: true), + arg1.address == 0 ? null : NSURLResponse.castFromPointer(arg1, retain: false, release: true), + arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(objc.NSData? arg0, NSURLResponse? arg1, objc.NSError? arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()( + pointer, + arg0?.pointer ?? ffi.nullptr, + arg1?.pointer ?? ffi.nullptr, + arg2?.pointer ?? ffi.nullptr); +} + +late final _sel_dataTaskWithRequest_completionHandler_ = + objc.registerName("dataTaskWithRequest:completionHandler:"); +final _objc_msgSend_584 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_dataTaskWithURL_completionHandler_ = + objc.registerName("dataTaskWithURL:completionHandler:"); +final _objc_msgSend_585 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_uploadTaskWithRequest_fromFile_completionHandler_ = + objc.registerName("uploadTaskWithRequest:fromFile:completionHandler:"); +final _objc_msgSend_586 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_uploadTaskWithRequest_fromData_completionHandler_ = + objc.registerName("uploadTaskWithRequest:fromData:completionHandler:"); +final _objc_msgSend_587 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_uploadTaskWithResumeData_completionHandler_ = + objc.registerName("uploadTaskWithResumeData:completionHandler:"); +final _objc_msgSend_588 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError_fnPtrTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()(arg0, arg1, arg2); +void _ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError_closureTrampoline( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer))(arg0, arg1, arg2); + +class ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError._( + ffi.Pointer pointer, + {bool retain = false, + bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError.fromFunction( + void Function(objc.NSURL?, NSURLResponse?, objc.NSError?) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError_closureTrampoline) + .cast(), + (ffi.Pointer arg0, ffi.Pointer arg1, ffi.Pointer arg2) => fn( + arg0.address == 0 ? null : objc.NSURL.castFromPointer(arg0, retain: true, release: true), + arg1.address == 0 ? null : NSURLResponse.castFromPointer(arg1, retain: true, release: true), + arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError.listener( + void Function(objc.NSURL?, NSURLResponse?, objc.NSError?) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= + ffi.NativeCallable, ffi.Pointer, ffi.Pointer, ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSURL_NSURLResponse_NSError_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2) => + fn( + arg0.address == 0 + ? null + : objc.NSURL.castFromPointer(arg0, retain: false, release: true), + arg1.address == 0 ? null : NSURLResponse.castFromPointer(arg1, retain: false, release: true), + arg2.address == 0 ? null : objc.NSError.castFromPointer(arg2, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>? _dartFuncListenerTrampoline; + + void call(objc.NSURL? arg0, NSURLResponse? arg1, objc.NSError? arg2) => + pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer block, + ffi.Pointer arg0, + ffi.Pointer arg1, + ffi.Pointer arg2)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>()( + pointer, + arg0?.pointer ?? ffi.nullptr, + arg1?.pointer ?? ffi.nullptr, + arg2?.pointer ?? ffi.nullptr); +} + +late final _sel_downloadTaskWithRequest_completionHandler_ = + objc.registerName("downloadTaskWithRequest:completionHandler:"); +final _objc_msgSend_589 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_downloadTaskWithURL_completionHandler_ = + objc.registerName("downloadTaskWithURL:completionHandler:"); +final _objc_msgSend_590 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_downloadTaskWithResumeData_completionHandler_ = + objc.registerName("downloadTaskWithResumeData:completionHandler:"); +final _objc_msgSend_591 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSProtocolChecker +class NSProtocolChecker extends objc.NSProxy { + NSProtocolChecker._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSProtocolChecker] that points to the same underlying object as [other]. + NSProtocolChecker.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSProtocolChecker] that wraps the given raw object pointer. + NSProtocolChecker.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSProtocolChecker]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSProtocolChecker); + } + + /// protocol + objc.Protocol get protocol { + final _ret = _objc_msgSend_592(this.pointer, _sel_protocol); + return objc.Protocol.castFromPointer(_ret, retain: true, release: true); + } + + /// target + objc.NSObject? get target { + final _ret = _objc_msgSend_397(this.pointer, _sel_target); + return _ret.address == 0 + ? null + : objc.NSObject.castFromPointer(_ret, retain: true, release: true); + } + + /// protocolCheckerWithTarget:protocol: + static NSProtocolChecker protocolCheckerWithTarget_protocol_( + objc.NSObject anObject, objc.Protocol aProtocol) { + final _ret = _objc_msgSend_593( + _class_NSProtocolChecker, + _sel_protocolCheckerWithTarget_protocol_, + anObject.pointer, + aProtocol.pointer); + return NSProtocolChecker.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithTarget:protocol: + NSProtocolChecker initWithTarget_protocol_( + objc.NSObject anObject, objc.Protocol aProtocol) { + final _ret = _objc_msgSend_593(this.pointer, _sel_initWithTarget_protocol_, + anObject.pointer, aProtocol.pointer); + return NSProtocolChecker.castFromPointer(_ret, retain: true, release: true); + } + + /// alloc + static objc.ObjCObjectBase alloc() { + final _ret = _objc_msgSend_19(_class_NSProtocolChecker, _sel_alloc); + return objc.ObjCObjectBase(_ret, retain: false, release: true); + } + + /// respondsToSelector: + static bool respondsToSelector_(ffi.Pointer aSelector) { + return _objc_msgSend_241( + _class_NSProtocolChecker, _sel_respondsToSelector_, aSelector); + } +} + +late final _class_NSProtocolChecker = + objc.getClass("classes.NSProtocolChecker"); +final _objc_msgSend_592 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_target = objc.registerName("target"); +late final _sel_protocolCheckerWithTarget_protocol_ = + objc.registerName("protocolCheckerWithTarget:protocol:"); +final _objc_msgSend_593 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithTarget_protocol_ = + objc.registerName("initWithTarget:protocol:"); + +/// NSTask +class NSTask extends objc.NSObject { + NSTask._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSTask] that points to the same underlying object as [other]. + NSTask.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSTask] that wraps the given raw object pointer. + NSTask.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSTask]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSTask); + } + + /// init + NSTask init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSTask.castFromPointer(_ret, retain: true, release: true); + } + + /// executableURL + objc.NSURL? get executableURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_executableURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// setExecutableURL: + set executableURL(objc.NSURL? value) { + return _objc_msgSend_25( + this.pointer, _sel_setExecutableURL_, value?.pointer ?? ffi.nullptr); + } + + /// arguments + objc.NSArray? get arguments { + final _ret = _objc_msgSend_86(this.pointer, _sel_arguments); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setArguments: + set arguments(objc.NSArray? value) { + return _objc_msgSend_546( + this.pointer, _sel_setArguments_, value?.pointer ?? ffi.nullptr); + } + + /// environment + objc.NSDictionary? get environment { + final _ret = _objc_msgSend_82(this.pointer, _sel_environment); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setEnvironment: + set environment(objc.NSDictionary? value) { + return _objc_msgSend_187( + this.pointer, _sel_setEnvironment_, value?.pointer ?? ffi.nullptr); + } + + /// currentDirectoryURL + objc.NSURL? get currentDirectoryURL { + final _ret = _objc_msgSend_24(this.pointer, _sel_currentDirectoryURL); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// setCurrentDirectoryURL: + set currentDirectoryURL(objc.NSURL? value) { + return _objc_msgSend_25(this.pointer, _sel_setCurrentDirectoryURL_, + value?.pointer ?? ffi.nullptr); + } + + /// standardInput + objc.ObjCObjectBase? get standardInput { + final _ret = _objc_msgSend_83(this.pointer, _sel_standardInput); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setStandardInput: + set standardInput(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setStandardInput_, value?.pointer ?? ffi.nullptr); + } + + /// standardOutput + objc.ObjCObjectBase? get standardOutput { + final _ret = _objc_msgSend_83(this.pointer, _sel_standardOutput); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setStandardOutput: + set standardOutput(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setStandardOutput_, value?.pointer ?? ffi.nullptr); + } + + /// standardError + objc.ObjCObjectBase? get standardError { + final _ret = _objc_msgSend_83(this.pointer, _sel_standardError); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setStandardError: + set standardError(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setStandardError_, value?.pointer ?? ffi.nullptr); + } + + /// launchAndReturnError: + bool launchAndReturnError_(ffi.Pointer> error) { + return _objc_msgSend_39(this.pointer, _sel_launchAndReturnError_, error); + } + + /// interrupt + void interrupt() { + _objc_msgSend_7(this.pointer, _sel_interrupt); + } + + /// terminate + void terminate() { + _objc_msgSend_7(this.pointer, _sel_terminate); + } + + /// suspend + bool suspend() { + return _objc_msgSend_13(this.pointer, _sel_suspend); + } + + /// resume + bool resume() { + return _objc_msgSend_13(this.pointer, _sel_resume); + } + + /// processIdentifier + int get processIdentifier { + return _objc_msgSend_273(this.pointer, _sel_processIdentifier); + } + + /// isRunning + bool get running { + return _objc_msgSend_13(this.pointer, _sel_isRunning); + } + + /// terminationStatus + int get terminationStatus { + return _objc_msgSend_273(this.pointer, _sel_terminationStatus); + } + + /// terminationReason + NSTaskTerminationReason get terminationReason { + final _ret = _objc_msgSend_594(this.pointer, _sel_terminationReason); + return NSTaskTerminationReason.fromValue(_ret); + } + + /// terminationHandler + ObjCBlock_ffiVoid_NSTask? get terminationHandler { + final _ret = _objc_msgSend_595(this.pointer, _sel_terminationHandler); + return _ret.address == 0 + ? null + : ObjCBlock_ffiVoid_NSTask.castFromPointer(_ret, + retain: true, release: true); + } + + /// setTerminationHandler: + set terminationHandler(ObjCBlock_ffiVoid_NSTask? value) { + return _objc_msgSend_596(this.pointer, _sel_setTerminationHandler_, + value?.pointer ?? ffi.nullptr); + } + + /// qualityOfService + NSQualityOfService get qualityOfService { + final _ret = _objc_msgSend_394(this.pointer, _sel_qualityOfService); + return NSQualityOfService.fromValue(_ret); + } + + /// setQualityOfService: + set qualityOfService(NSQualityOfService value) { + return _objc_msgSend_395( + this.pointer, _sel_setQualityOfService_, value.value); + } + + /// launchedTaskWithExecutableURL:arguments:error:terminationHandler: + static NSTask? + launchedTaskWithExecutableURL_arguments_error_terminationHandler_( + objc.NSURL url, + objc.NSArray arguments, + ffi.Pointer> error, + ObjCBlock_ffiVoid_NSTask? terminationHandler) { + final _ret = _objc_msgSend_597( + _class_NSTask, + _sel_launchedTaskWithExecutableURL_arguments_error_terminationHandler_, + url.pointer, + arguments.pointer, + error, + terminationHandler?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSTask.castFromPointer(_ret, retain: true, release: true); + } + + /// waitUntilExit + void waitUntilExit() { + _objc_msgSend_7(this.pointer, _sel_waitUntilExit); + } + + /// launchPath + objc.NSString? get launchPath { + final _ret = _objc_msgSend_20(this.pointer, _sel_launchPath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setLaunchPath: + set launchPath(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setLaunchPath_, value?.pointer ?? ffi.nullptr); + } + + /// currentDirectoryPath + objc.NSString get currentDirectoryPath { + final _ret = _objc_msgSend_11(this.pointer, _sel_currentDirectoryPath); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setCurrentDirectoryPath: + set currentDirectoryPath(objc.NSString value) { + return _objc_msgSend_12( + this.pointer, _sel_setCurrentDirectoryPath_, value.pointer); + } + + /// launch + void launch() { + _objc_msgSend_7(this.pointer, _sel_launch); + } + + /// launchedTaskWithLaunchPath:arguments: + static NSTask launchedTaskWithLaunchPath_arguments_( + objc.NSString path, objc.NSArray arguments) { + final _ret = _objc_msgSend_598( + _class_NSTask, + _sel_launchedTaskWithLaunchPath_arguments_, + path.pointer, + arguments.pointer); + return NSTask.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSTask new1() { + final _ret = _objc_msgSend_19(_class_NSTask, _sel_new); + return NSTask.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSTask allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSTask, _sel_allocWithZone_, zone); + return NSTask.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSTask alloc() { + final _ret = _objc_msgSend_19(_class_NSTask, _sel_alloc); + return NSTask.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSTask, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSTask, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSTask, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSTask, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSTask, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31( + _class_NSTask, _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSTask, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSTask, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19(_class_NSTask, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSTask = objc.getClass("classes.NSTask"); +late final _sel_setExecutableURL_ = objc.registerName("setExecutableURL:"); +late final _sel_setArguments_ = objc.registerName("setArguments:"); +late final _sel_setEnvironment_ = objc.registerName("setEnvironment:"); +late final _sel_currentDirectoryURL = objc.registerName("currentDirectoryURL"); +late final _sel_setCurrentDirectoryURL_ = + objc.registerName("setCurrentDirectoryURL:"); +late final _sel_standardInput = objc.registerName("standardInput"); +late final _sel_setStandardInput_ = objc.registerName("setStandardInput:"); +late final _sel_standardOutput = objc.registerName("standardOutput"); +late final _sel_setStandardOutput_ = objc.registerName("setStandardOutput:"); +late final _sel_standardError = objc.registerName("standardError"); +late final _sel_setStandardError_ = objc.registerName("setStandardError:"); +late final _sel_launchAndReturnError_ = + objc.registerName("launchAndReturnError:"); +late final _sel_interrupt = objc.registerName("interrupt"); +late final _sel_terminate = objc.registerName("terminate"); +late final _sel_isRunning = objc.registerName("isRunning"); +late final _sel_terminationStatus = objc.registerName("terminationStatus"); + +enum NSTaskTerminationReason { + NSTaskTerminationReasonExit(1), + NSTaskTerminationReasonUncaughtSignal(2); + + final int value; + const NSTaskTerminationReason(this.value); + + static NSTaskTerminationReason fromValue(int value) => switch (value) { + 1 => NSTaskTerminationReasonExit, + 2 => NSTaskTerminationReasonUncaughtSignal, + _ => throw ArgumentError( + "Unknown value for NSTaskTerminationReason: $value"), + }; +} + +late final _sel_terminationReason = objc.registerName("terminationReason"); +final _objc_msgSend_594 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +void _ObjCBlock_ffiVoid_NSTask_fnPtrTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + block.ref.target + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>>() + .asFunction)>()(arg0); +void _ObjCBlock_ffiVoid_NSTask_closureTrampoline( + ffi.Pointer block, ffi.Pointer arg0) => + (objc.getBlockClosure(block) as void Function( + ffi.Pointer))(arg0); + +class ObjCBlock_ffiVoid_NSTask extends objc.ObjCBlockBase { + ObjCBlock_ffiVoid_NSTask._(ffi.Pointer pointer, + {bool retain = false, bool release = true}) + : super(pointer, retain: retain, release: release); + + /// Returns a block that wraps the given raw block pointer. + static ObjCBlock_ffiVoid_NSTask castFromPointer( + ffi.Pointer pointer, + {bool retain = false, + bool release = false}) { + return ObjCBlock_ffiVoid_NSTask._(pointer, + retain: retain, release: release); + } + + /// Creates a block from a C function pointer. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSTask.fromFunctionPointer( + ffi.Pointer< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer arg0)>> + ptr) + : this._(objc.newPointerBlock( + _cFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSTask_fnPtrTrampoline) + .cast(), + ptr.cast())); + static ffi.Pointer? _cFuncTrampoline; + + /// Creates a block from a Dart function. + /// + /// This block must be invoked by native code running on the same thread as + /// the isolate that registered it. Invoking the block on the wrong thread + /// will result in a crash. + ObjCBlock_ffiVoid_NSTask.fromFunction(void Function(NSTask) fn) + : this._(objc.newClosureBlock( + _dartFuncTrampoline ??= ffi.Pointer.fromFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>( + _ObjCBlock_ffiVoid_NSTask_closureTrampoline) + .cast(), + (ffi.Pointer arg0) => + fn(NSTask.castFromPointer(arg0, retain: true, release: true)))); + static ffi.Pointer? _dartFuncTrampoline; + + /// Creates a listener block from a Dart function. + /// + /// This is based on FFI's NativeCallable.listener, and has the same + /// capabilities and limitations. This block can be invoked from any thread, + /// but only supports void functions, and is not run synchronously. See + /// NativeCallable.listener for more details. + /// + /// Note that unlike the default behavior of NativeCallable.listener, listener + /// blocks do not keep the isolate alive. + ObjCBlock_ffiVoid_NSTask.listener(void Function(NSTask) fn) + : this._(wrapListenerBlock_ObjCBlock_ffiVoid_NSTask(objc.newClosureBlock( + (_dartFuncListenerTrampoline ??= ffi.NativeCallable< + ffi.Void Function(ffi.Pointer, + ffi.Pointer)>.listener( + _ObjCBlock_ffiVoid_NSTask_closureTrampoline) + ..keepIsolateAlive = false) + .nativeFunction + .cast(), + (ffi.Pointer arg0) => fn( + NSTask.castFromPointer(arg0, retain: false, release: true))))); + static ffi.NativeCallable< + ffi.Void Function( + ffi.Pointer, ffi.Pointer)>? + _dartFuncListenerTrampoline; + + void call(NSTask arg0) => pointer.ref.invoke + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer block, + ffi.Pointer arg0)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer)>()(pointer, arg0.pointer); +} + +late final _sel_terminationHandler = objc.registerName("terminationHandler"); +final _objc_msgSend_595 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setTerminationHandler_ = + objc.registerName("setTerminationHandler:"); +final _objc_msgSend_596 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_launchedTaskWithExecutableURL_arguments_error_terminationHandler_ = + objc.registerName( + "launchedTaskWithExecutableURL:arguments:error:terminationHandler:"); +final _objc_msgSend_597 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>, + ffi.Pointer)>(); +late final _sel_waitUntilExit = objc.registerName("waitUntilExit"); +late final _sel_launchPath = objc.registerName("launchPath"); +late final _sel_setLaunchPath_ = objc.registerName("setLaunchPath:"); +late final _sel_setCurrentDirectoryPath_ = + objc.registerName("setCurrentDirectoryPath:"); +late final _sel_launch = objc.registerName("launch"); +late final _sel_launchedTaskWithLaunchPath_arguments_ = + objc.registerName("launchedTaskWithLaunchPath:arguments:"); +final _objc_msgSend_598 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSXMLElement +class NSXMLElement extends NSXMLNode { + NSXMLElement._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSXMLElement] that points to the same underlying object as [other]. + NSXMLElement.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSXMLElement] that wraps the given raw object pointer. + NSXMLElement.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSXMLElement]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSXMLElement); + } + + /// initWithName: + NSXMLElement initWithName_(objc.NSString name) { + final _ret = + _objc_msgSend_63(this.pointer, _sel_initWithName_, name.pointer); + return NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithName:URI: + NSXMLElement initWithName_URI_(objc.NSString name, objc.NSString? URI) { + final _ret = _objc_msgSend_599(this.pointer, _sel_initWithName_URI_, + name.pointer, URI?.pointer ?? ffi.nullptr); + return NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithName:stringValue: + NSXMLElement initWithName_stringValue_( + objc.NSString name, objc.NSString? string) { + final _ret = _objc_msgSend_599(this.pointer, _sel_initWithName_stringValue_, + name.pointer, string?.pointer ?? ffi.nullptr); + return NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithXMLString:error: + NSXMLElement? initWithXMLString_error_( + objc.NSString string, ffi.Pointer> error) { + final _ret = _objc_msgSend_600( + this.pointer, _sel_initWithXMLString_error_, string.pointer, error); + return _ret.address == 0 + ? null + : NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind:options: + NSXMLElement initWithKind_options_( + NSXMLNodeKind kind, NSXMLNodeOptions options) { + final _ret = _objc_msgSend_601( + this.pointer, _sel_initWithKind_options_, kind.value, options.value); + return NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// elementsForName: + objc.NSArray elementsForName_(objc.NSString name) { + final _ret = + _objc_msgSend_387(this.pointer, _sel_elementsForName_, name.pointer); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// elementsForLocalName:URI: + objc.NSArray elementsForLocalName_URI_( + objc.NSString localName, objc.NSString? URI) { + final _ret = _objc_msgSend_602(this.pointer, _sel_elementsForLocalName_URI_, + localName.pointer, URI?.pointer ?? ffi.nullptr); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// addAttribute: + void addAttribute_(NSXMLNode attribute) { + _objc_msgSend_618(this.pointer, _sel_addAttribute_, attribute.pointer); + } + + /// removeAttributeForName: + void removeAttributeForName_(objc.NSString name) { + _objc_msgSend_108(this.pointer, _sel_removeAttributeForName_, name.pointer); + } + + /// attributes + objc.NSArray? get attributes { + final _ret = _objc_msgSend_86(this.pointer, _sel_attributes); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setAttributes: + set attributes(objc.NSArray? value) { + return _objc_msgSend_546( + this.pointer, _sel_setAttributes_, value?.pointer ?? ffi.nullptr); + } + + /// setAttributesWithDictionary: + void setAttributesWithDictionary_(objc.NSDictionary attributes) { + _objc_msgSend_639( + this.pointer, _sel_setAttributesWithDictionary_, attributes.pointer); + } + + /// attributeForName: + NSXMLNode? attributeForName_(objc.NSString name) { + final _ret = + _objc_msgSend_622(this.pointer, _sel_attributeForName_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// attributeForLocalName:URI: + NSXMLNode? attributeForLocalName_URI_( + objc.NSString localName, objc.NSString? URI) { + final _ret = _objc_msgSend_640( + this.pointer, + _sel_attributeForLocalName_URI_, + localName.pointer, + URI?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// addNamespace: + void addNamespace_(NSXMLNode aNamespace) { + _objc_msgSend_618(this.pointer, _sel_addNamespace_, aNamespace.pointer); + } + + /// removeNamespaceForPrefix: + void removeNamespaceForPrefix_(objc.NSString name) { + _objc_msgSend_108( + this.pointer, _sel_removeNamespaceForPrefix_, name.pointer); + } + + /// namespaces + objc.NSArray? get namespaces { + final _ret = _objc_msgSend_86(this.pointer, _sel_namespaces); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// setNamespaces: + set namespaces(objc.NSArray? value) { + return _objc_msgSend_546( + this.pointer, _sel_setNamespaces_, value?.pointer ?? ffi.nullptr); + } + + /// namespaceForPrefix: + NSXMLNode? namespaceForPrefix_(objc.NSString name) { + final _ret = + _objc_msgSend_622(this.pointer, _sel_namespaceForPrefix_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// resolveNamespaceForName: + NSXMLNode? resolveNamespaceForName_(objc.NSString name) { + final _ret = _objc_msgSend_622( + this.pointer, _sel_resolveNamespaceForName_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// resolvePrefixForNamespaceURI: + objc.NSString? resolvePrefixForNamespaceURI_(objc.NSString namespaceURI) { + final _ret = _objc_msgSend_42( + this.pointer, _sel_resolvePrefixForNamespaceURI_, namespaceURI.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// insertChild:atIndex: + void insertChild_atIndex_(NSXMLNode child, int index) { + _objc_msgSend_616( + this.pointer, _sel_insertChild_atIndex_, child.pointer, index); + } + + /// insertChildren:atIndex: + void insertChildren_atIndex_(objc.NSArray children, int index) { + _objc_msgSend_617( + this.pointer, _sel_insertChildren_atIndex_, children.pointer, index); + } + + /// removeChildAtIndex: + void removeChildAtIndex_(int index) { + _objc_msgSend_422(this.pointer, _sel_removeChildAtIndex_, index); + } + + /// setChildren: + void setChildren_(objc.NSArray? children) { + _objc_msgSend_269( + this.pointer, _sel_setChildren_, children?.pointer ?? ffi.nullptr); + } + + /// addChild: + void addChild_(NSXMLNode child) { + _objc_msgSend_618(this.pointer, _sel_addChild_, child.pointer); + } + + /// replaceChildAtIndex:withNode: + void replaceChildAtIndex_withNode_(int index, NSXMLNode node) { + _objc_msgSend_619( + this.pointer, _sel_replaceChildAtIndex_withNode_, index, node.pointer); + } + + /// normalizeAdjacentTextNodesPreservingCDATA: + void normalizeAdjacentTextNodesPreservingCDATA_(bool preserve) { + _objc_msgSend_348(this.pointer, + _sel_normalizeAdjacentTextNodesPreservingCDATA_, preserve); + } + + /// setAttributesAsDictionary: + void setAttributesAsDictionary_(objc.NSDictionary attributes) { + _objc_msgSend_639( + this.pointer, _sel_setAttributesAsDictionary_, attributes.pointer); + } + + /// init + NSXMLElement init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind: + NSXMLElement initWithKind_(NSXMLNodeKind kind) { + final _ret = + _objc_msgSend_603(this.pointer, _sel_initWithKind_, kind.value); + return NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// document + static objc.ObjCObjectBase document() { + final _ret = _objc_msgSend_19(_class_NSXMLElement, _sel_document); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// documentWithRootElement: + static objc.ObjCObjectBase documentWithRootElement_(NSXMLElement element) { + final _ret = _objc_msgSend_604( + _class_NSXMLElement, _sel_documentWithRootElement_, element.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName: + static objc.ObjCObjectBase elementWithName_(objc.NSString name) { + final _ret = _objc_msgSend_63( + _class_NSXMLElement, _sel_elementWithName_, name.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:URI: + static objc.ObjCObjectBase elementWithName_URI_( + objc.NSString name, objc.NSString URI) { + final _ret = _objc_msgSend_605(_class_NSXMLElement, + _sel_elementWithName_URI_, name.pointer, URI.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:stringValue: + static objc.ObjCObjectBase elementWithName_stringValue_( + objc.NSString name, objc.NSString string) { + final _ret = _objc_msgSend_605(_class_NSXMLElement, + _sel_elementWithName_stringValue_, name.pointer, string.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:children:attributes: + static objc.ObjCObjectBase elementWithName_children_attributes_( + objc.NSString name, objc.NSArray? children, objc.NSArray? attributes) { + final _ret = _objc_msgSend_606( + _class_NSXMLElement, + _sel_elementWithName_children_attributes_, + name.pointer, + children?.pointer ?? ffi.nullptr, + attributes?.pointer ?? ffi.nullptr); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:stringValue: + static objc.ObjCObjectBase attributeWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLElement, + _sel_attributeWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:URI:stringValue: + static objc.ObjCObjectBase attributeWithName_URI_stringValue_( + objc.NSString name, objc.NSString URI, objc.NSString stringValue) { + final _ret = _objc_msgSend_567( + _class_NSXMLElement, + _sel_attributeWithName_URI_stringValue_, + name.pointer, + URI.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// namespaceWithName:stringValue: + static objc.ObjCObjectBase namespaceWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLElement, + _sel_namespaceWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// processingInstructionWithName:stringValue: + static objc.ObjCObjectBase processingInstructionWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605( + _class_NSXMLElement, + _sel_processingInstructionWithName_stringValue_, + name.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// commentWithStringValue: + static objc.ObjCObjectBase commentWithStringValue_( + objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLElement, _sel_commentWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// textWithStringValue: + static objc.ObjCObjectBase textWithStringValue_(objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLElement, _sel_textWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// DTDNodeWithXMLString: + static objc.ObjCObjectBase? DTDNodeWithXMLString_(objc.NSString string) { + final _ret = _objc_msgSend_35( + _class_NSXMLElement, _sel_DTDNodeWithXMLString_, string.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// localNameForName: + static objc.NSString localNameForName_(objc.NSString name) { + final _ret = _objc_msgSend_306( + _class_NSXMLElement, _sel_localNameForName_, name.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// prefixForName: + static objc.NSString? prefixForName_(objc.NSString name) { + final _ret = _objc_msgSend_42( + _class_NSXMLElement, _sel_prefixForName_, name.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// predefinedNamespaceForPrefix: + static NSXMLNode? predefinedNamespaceForPrefix_(objc.NSString name) { + final _ret = _objc_msgSend_622( + _class_NSXMLElement, _sel_predefinedNamespaceForPrefix_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSXMLElement new1() { + final _ret = _objc_msgSend_19(_class_NSXMLElement, _sel_new); + return NSXMLElement.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSXMLElement allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSXMLElement, _sel_allocWithZone_, zone); + return NSXMLElement.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSXMLElement alloc() { + final _ret = _objc_msgSend_19(_class_NSXMLElement, _sel_alloc); + return NSXMLElement.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSXMLElement, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSXMLElement, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSXMLElement, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSXMLElement, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSXMLElement, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSXMLElement, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSXMLElement, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSXMLElement, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSXMLElement, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSXMLElement = objc.getClass("classes.NSXMLElement"); +late final _sel_initWithName_URI_ = objc.registerName("initWithName:URI:"); +final _objc_msgSend_599 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithName_stringValue_ = + objc.registerName("initWithName:stringValue:"); +late final _sel_initWithXMLString_error_ = + objc.registerName("initWithXMLString:error:"); +final _objc_msgSend_600 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); + +enum NSXMLNodeKind { + NSXMLInvalidKind(0), + NSXMLDocumentKind(1), + NSXMLElementKind(2), + NSXMLAttributeKind(3), + NSXMLNamespaceKind(4), + NSXMLProcessingInstructionKind(5), + NSXMLCommentKind(6), + NSXMLTextKind(7), + NSXMLDTDKind(8), + NSXMLEntityDeclarationKind(9), + NSXMLAttributeDeclarationKind(10), + NSXMLElementDeclarationKind(11), + NSXMLNotationDeclarationKind(12); + + final int value; + const NSXMLNodeKind(this.value); + + static NSXMLNodeKind fromValue(int value) => switch (value) { + 0 => NSXMLInvalidKind, + 1 => NSXMLDocumentKind, + 2 => NSXMLElementKind, + 3 => NSXMLAttributeKind, + 4 => NSXMLNamespaceKind, + 5 => NSXMLProcessingInstructionKind, + 6 => NSXMLCommentKind, + 7 => NSXMLTextKind, + 8 => NSXMLDTDKind, + 9 => NSXMLEntityDeclarationKind, + 10 => NSXMLAttributeDeclarationKind, + 11 => NSXMLElementDeclarationKind, + 12 => NSXMLNotationDeclarationKind, + _ => throw ArgumentError("Unknown value for NSXMLNodeKind: $value"), + }; +} + +enum NSXMLNodeOptions { + NSXMLNodeOptionsNone(0), + NSXMLNodeIsCDATA(1), + NSXMLNodeExpandEmptyElement(2), + NSXMLNodeCompactEmptyElement(4), + NSXMLNodeUseSingleQuotes(8), + NSXMLNodeUseDoubleQuotes(16), + NSXMLNodeNeverEscapeContents(32), + NSXMLDocumentTidyHTML(512), + NSXMLDocumentTidyXML(1024), + NSXMLDocumentValidate(8192), + NSXMLNodeLoadExternalEntitiesAlways(16384), + NSXMLNodeLoadExternalEntitiesSameOriginOnly(32768), + NSXMLNodeLoadExternalEntitiesNever(524288), + NSXMLDocumentXInclude(65536), + NSXMLNodePrettyPrint(131072), + NSXMLDocumentIncludeContentTypeDeclaration(262144), + NSXMLNodePreserveNamespaceOrder(1048576), + NSXMLNodePreserveAttributeOrder(2097152), + NSXMLNodePreserveEntities(4194304), + NSXMLNodePreservePrefixes(8388608), + NSXMLNodePreserveCDATA(16777216), + NSXMLNodePreserveWhitespace(33554432), + NSXMLNodePreserveDTD(67108864), + NSXMLNodePreserveCharacterReferences(134217728), + NSXMLNodePromoteSignificantWhitespace(268435456), + NSXMLNodePreserveEmptyElements(6), + NSXMLNodePreserveQuotes(24), + NSXMLNodePreserveAll(4293918750); + + final int value; + const NSXMLNodeOptions(this.value); + + static NSXMLNodeOptions fromValue(int value) => switch (value) { + 0 => NSXMLNodeOptionsNone, + 1 => NSXMLNodeIsCDATA, + 2 => NSXMLNodeExpandEmptyElement, + 4 => NSXMLNodeCompactEmptyElement, + 8 => NSXMLNodeUseSingleQuotes, + 16 => NSXMLNodeUseDoubleQuotes, + 32 => NSXMLNodeNeverEscapeContents, + 512 => NSXMLDocumentTidyHTML, + 1024 => NSXMLDocumentTidyXML, + 8192 => NSXMLDocumentValidate, + 16384 => NSXMLNodeLoadExternalEntitiesAlways, + 32768 => NSXMLNodeLoadExternalEntitiesSameOriginOnly, + 524288 => NSXMLNodeLoadExternalEntitiesNever, + 65536 => NSXMLDocumentXInclude, + 131072 => NSXMLNodePrettyPrint, + 262144 => NSXMLDocumentIncludeContentTypeDeclaration, + 1048576 => NSXMLNodePreserveNamespaceOrder, + 2097152 => NSXMLNodePreserveAttributeOrder, + 4194304 => NSXMLNodePreserveEntities, + 8388608 => NSXMLNodePreservePrefixes, + 16777216 => NSXMLNodePreserveCDATA, + 33554432 => NSXMLNodePreserveWhitespace, + 67108864 => NSXMLNodePreserveDTD, + 134217728 => NSXMLNodePreserveCharacterReferences, + 268435456 => NSXMLNodePromoteSignificantWhitespace, + 6 => NSXMLNodePreserveEmptyElements, + 24 => NSXMLNodePreserveQuotes, + 4293918750 => NSXMLNodePreserveAll, + _ => throw ArgumentError("Unknown value for NSXMLNodeOptions: $value"), + }; +} + +late final _sel_initWithKind_options_ = + objc.registerName("initWithKind:options:"); +final _objc_msgSend_601 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int, int)>(); +late final _sel_elementsForName_ = objc.registerName("elementsForName:"); +late final _sel_elementsForLocalName_URI_ = + objc.registerName("elementsForLocalName:URI:"); +final _objc_msgSend_602 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); + +/// NSXMLNode +class NSXMLNode extends objc.NSObject { + NSXMLNode._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSXMLNode] that points to the same underlying object as [other]. + NSXMLNode.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSXMLNode] that wraps the given raw object pointer. + NSXMLNode.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSXMLNode]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSXMLNode); + } + + /// init + NSXMLNode init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind: + NSXMLNode initWithKind_(NSXMLNodeKind kind) { + final _ret = + _objc_msgSend_603(this.pointer, _sel_initWithKind_, kind.value); + return NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind:options: + NSXMLNode initWithKind_options_( + NSXMLNodeKind kind, NSXMLNodeOptions options) { + final _ret = _objc_msgSend_601( + this.pointer, _sel_initWithKind_options_, kind.value, options.value); + return NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// document + static objc.ObjCObjectBase document() { + final _ret = _objc_msgSend_19(_class_NSXMLNode, _sel_document); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// documentWithRootElement: + static objc.ObjCObjectBase documentWithRootElement_(NSXMLElement element) { + final _ret = _objc_msgSend_604( + _class_NSXMLNode, _sel_documentWithRootElement_, element.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName: + static objc.ObjCObjectBase elementWithName_(objc.NSString name) { + final _ret = + _objc_msgSend_63(_class_NSXMLNode, _sel_elementWithName_, name.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:URI: + static objc.ObjCObjectBase elementWithName_URI_( + objc.NSString name, objc.NSString URI) { + final _ret = _objc_msgSend_605( + _class_NSXMLNode, _sel_elementWithName_URI_, name.pointer, URI.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:stringValue: + static objc.ObjCObjectBase elementWithName_stringValue_( + objc.NSString name, objc.NSString string) { + final _ret = _objc_msgSend_605(_class_NSXMLNode, + _sel_elementWithName_stringValue_, name.pointer, string.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:children:attributes: + static objc.ObjCObjectBase elementWithName_children_attributes_( + objc.NSString name, objc.NSArray? children, objc.NSArray? attributes) { + final _ret = _objc_msgSend_606( + _class_NSXMLNode, + _sel_elementWithName_children_attributes_, + name.pointer, + children?.pointer ?? ffi.nullptr, + attributes?.pointer ?? ffi.nullptr); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:stringValue: + static objc.ObjCObjectBase attributeWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLNode, + _sel_attributeWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:URI:stringValue: + static objc.ObjCObjectBase attributeWithName_URI_stringValue_( + objc.NSString name, objc.NSString URI, objc.NSString stringValue) { + final _ret = _objc_msgSend_567( + _class_NSXMLNode, + _sel_attributeWithName_URI_stringValue_, + name.pointer, + URI.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// namespaceWithName:stringValue: + static objc.ObjCObjectBase namespaceWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLNode, + _sel_namespaceWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// processingInstructionWithName:stringValue: + static objc.ObjCObjectBase processingInstructionWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605( + _class_NSXMLNode, + _sel_processingInstructionWithName_stringValue_, + name.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// commentWithStringValue: + static objc.ObjCObjectBase commentWithStringValue_( + objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLNode, _sel_commentWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// textWithStringValue: + static objc.ObjCObjectBase textWithStringValue_(objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLNode, _sel_textWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// DTDNodeWithXMLString: + static objc.ObjCObjectBase? DTDNodeWithXMLString_(objc.NSString string) { + final _ret = _objc_msgSend_35( + _class_NSXMLNode, _sel_DTDNodeWithXMLString_, string.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// kind + NSXMLNodeKind get kind { + final _ret = _objc_msgSend_607(this.pointer, _sel_kind); + return NSXMLNodeKind.fromValue(_ret); + } + + /// name + objc.NSString? get name { + final _ret = _objc_msgSend_20(this.pointer, _sel_name); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setName: + set name(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setName_, value?.pointer ?? ffi.nullptr); + } + + /// objectValue + objc.ObjCObjectBase? get objectValue { + final _ret = _objc_msgSend_83(this.pointer, _sel_objectValue); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setObjectValue: + set objectValue(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setObjectValue_, value?.pointer ?? ffi.nullptr); + } + + /// stringValue + objc.NSString? get stringValue { + final _ret = _objc_msgSend_20(this.pointer, _sel_stringValue); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setStringValue: + set stringValue(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setStringValue_, value?.pointer ?? ffi.nullptr); + } + + /// setStringValue:resolvingEntities: + void setStringValue_resolvingEntities_(objc.NSString string, bool resolve) { + _objc_msgSend_608(this.pointer, _sel_setStringValue_resolvingEntities_, + string.pointer, resolve); + } + + /// index + int get index { + return _objc_msgSend_57(this.pointer, _sel_index); + } + + /// level + int get level { + return _objc_msgSend_57(this.pointer, _sel_level); + } + + /// rootDocument + NSXMLDocument? get rootDocument { + final _ret = _objc_msgSend_633(this.pointer, _sel_rootDocument); + return _ret.address == 0 + ? null + : NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// parent + NSXMLNode? get parent { + final _ret = _objc_msgSend_634(this.pointer, _sel_parent); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// childCount + int get childCount { + return _objc_msgSend_57(this.pointer, _sel_childCount); + } + + /// children + objc.NSArray? get children { + final _ret = _objc_msgSend_86(this.pointer, _sel_children); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// childAtIndex: + NSXMLNode? childAtIndex_(int index) { + final _ret = _objc_msgSend_635(this.pointer, _sel_childAtIndex_, index); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// previousSibling + NSXMLNode? get previousSibling { + final _ret = _objc_msgSend_634(this.pointer, _sel_previousSibling); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// nextSibling + NSXMLNode? get nextSibling { + final _ret = _objc_msgSend_634(this.pointer, _sel_nextSibling); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// previousNode + NSXMLNode? get previousNode { + final _ret = _objc_msgSend_634(this.pointer, _sel_previousNode); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// nextNode + NSXMLNode? get nextNode { + final _ret = _objc_msgSend_634(this.pointer, _sel_nextNode); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// detach + void detach() { + _objc_msgSend_7(this.pointer, _sel_detach); + } + + /// XPath + objc.NSString? get XPath { + final _ret = _objc_msgSend_20(this.pointer, _sel_XPath); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// localName + objc.NSString? get localName { + final _ret = _objc_msgSend_20(this.pointer, _sel_localName); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// prefix + objc.NSString? get prefix { + final _ret = _objc_msgSend_20(this.pointer, _sel_prefix); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// URI + objc.NSString? get URI { + final _ret = _objc_msgSend_20(this.pointer, _sel_URI); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setURI: + set URI(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setURI_, value?.pointer ?? ffi.nullptr); + } + + /// localNameForName: + static objc.NSString localNameForName_(objc.NSString name) { + final _ret = _objc_msgSend_306( + _class_NSXMLNode, _sel_localNameForName_, name.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// prefixForName: + static objc.NSString? prefixForName_(objc.NSString name) { + final _ret = + _objc_msgSend_42(_class_NSXMLNode, _sel_prefixForName_, name.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// predefinedNamespaceForPrefix: + static NSXMLNode? predefinedNamespaceForPrefix_(objc.NSString name) { + final _ret = _objc_msgSend_622( + _class_NSXMLNode, _sel_predefinedNamespaceForPrefix_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } + + /// description + objc.NSString get description { + final _ret = _objc_msgSend_11(this.pointer, _sel_description); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// XMLString + objc.NSString get XMLString { + final _ret = _objc_msgSend_11(this.pointer, _sel_XMLString); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// XMLStringWithOptions: + objc.NSString XMLStringWithOptions_(NSXMLNodeOptions options) { + final _ret = _objc_msgSend_636( + this.pointer, _sel_XMLStringWithOptions_, options.value); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// canonicalXMLStringPreservingComments: + objc.NSString canonicalXMLStringPreservingComments_(bool comments) { + final _ret = _objc_msgSend_637( + this.pointer, _sel_canonicalXMLStringPreservingComments_, comments); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// nodesForXPath:error: + objc.NSArray? nodesForXPath_error_( + objc.NSString xpath, ffi.Pointer> error) { + final _ret = _objc_msgSend_290( + this.pointer, _sel_nodesForXPath_error_, xpath.pointer, error); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// objectsForXQuery:constants:error: + objc.NSArray? objectsForXQuery_constants_error_( + objc.NSString xquery, + objc.NSDictionary? constants, + ffi.Pointer> error) { + final _ret = _objc_msgSend_638( + this.pointer, + _sel_objectsForXQuery_constants_error_, + xquery.pointer, + constants?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// objectsForXQuery:error: + objc.NSArray? objectsForXQuery_error_( + objc.NSString xquery, ffi.Pointer> error) { + final _ret = _objc_msgSend_290( + this.pointer, _sel_objectsForXQuery_error_, xquery.pointer, error); + return _ret.address == 0 + ? null + : objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSXMLNode new1() { + final _ret = _objc_msgSend_19(_class_NSXMLNode, _sel_new); + return NSXMLNode.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSXMLNode allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28(_class_NSXMLNode, _sel_allocWithZone_, zone); + return NSXMLNode.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSXMLNode alloc() { + final _ret = _objc_msgSend_19(_class_NSXMLNode, _sel_alloc); + return NSXMLNode.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSXMLNode, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSXMLNode, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSXMLNode, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSXMLNode, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSXMLNode, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSXMLNode, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSXMLNode, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = + _objc_msgSend_33(_class_NSXMLNode, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSXMLNode, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSXMLNode = objc.getClass("classes.NSXMLNode"); +late final _sel_initWithKind_ = objc.registerName("initWithKind:"); +final _objc_msgSend_603 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_document = objc.registerName("document"); +late final _sel_documentWithRootElement_ = + objc.registerName("documentWithRootElement:"); +final _objc_msgSend_604 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_elementWithName_ = objc.registerName("elementWithName:"); +late final _sel_elementWithName_URI_ = + objc.registerName("elementWithName:URI:"); +final _objc_msgSend_605 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_elementWithName_stringValue_ = + objc.registerName("elementWithName:stringValue:"); +late final _sel_elementWithName_children_attributes_ = + objc.registerName("elementWithName:children:attributes:"); +final _objc_msgSend_606 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_attributeWithName_stringValue_ = + objc.registerName("attributeWithName:stringValue:"); +late final _sel_attributeWithName_URI_stringValue_ = + objc.registerName("attributeWithName:URI:stringValue:"); +late final _sel_namespaceWithName_stringValue_ = + objc.registerName("namespaceWithName:stringValue:"); +late final _sel_processingInstructionWithName_stringValue_ = + objc.registerName("processingInstructionWithName:stringValue:"); +late final _sel_commentWithStringValue_ = + objc.registerName("commentWithStringValue:"); +late final _sel_textWithStringValue_ = + objc.registerName("textWithStringValue:"); +late final _sel_DTDNodeWithXMLString_ = + objc.registerName("DTDNodeWithXMLString:"); +final _objc_msgSend_607 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_objectValue = objc.registerName("objectValue"); +late final _sel_setObjectValue_ = objc.registerName("setObjectValue:"); +late final _sel_stringValue = objc.registerName("stringValue"); +late final _sel_setStringValue_ = objc.registerName("setStringValue:"); +late final _sel_setStringValue_resolvingEntities_ = + objc.registerName("setStringValue:resolvingEntities:"); +final _objc_msgSend_608 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Bool)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + bool)>(); +late final _sel_index = objc.registerName("index"); +late final _sel_level = objc.registerName("level"); + +/// NSXMLDocument +class NSXMLDocument extends NSXMLNode { + NSXMLDocument._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSXMLDocument] that points to the same underlying object as [other]. + NSXMLDocument.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSXMLDocument] that wraps the given raw object pointer. + NSXMLDocument.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSXMLDocument]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSXMLDocument); + } + + /// init + NSXMLDocument init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithXMLString:options:error: + NSXMLDocument? initWithXMLString_options_error_(objc.NSString string, + NSXMLNodeOptions mask, ffi.Pointer> error) { + final _ret = _objc_msgSend_609( + this.pointer, + _sel_initWithXMLString_options_error_, + string.pointer, + mask.value, + error); + return _ret.address == 0 + ? null + : NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithContentsOfURL:options:error: + NSXMLDocument? initWithContentsOfURL_options_error_(objc.NSURL url, + NSXMLNodeOptions mask, ffi.Pointer> error) { + final _ret = _objc_msgSend_610( + this.pointer, + _sel_initWithContentsOfURL_options_error_, + url.pointer, + mask.value, + error); + return _ret.address == 0 + ? null + : NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithData:options:error: + NSXMLDocument? initWithData_options_error_(objc.NSData data, + NSXMLNodeOptions mask, ffi.Pointer> error) { + final _ret = _objc_msgSend_611(this.pointer, + _sel_initWithData_options_error_, data.pointer, mask.value, error); + return _ret.address == 0 + ? null + : NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithRootElement: + NSXMLDocument initWithRootElement_(NSXMLElement? element) { + final _ret = _objc_msgSend_612(this.pointer, _sel_initWithRootElement_, + element?.pointer ?? ffi.nullptr); + return NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// replacementClassForClass: + static objc.ObjCObjectBase replacementClassForClass_( + objc.ObjCObjectBase cls) { + final _ret = _objc_msgSend_613( + _class_NSXMLDocument, _sel_replacementClassForClass_, cls.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// characterEncoding + objc.NSString? get characterEncoding { + final _ret = _objc_msgSend_20(this.pointer, _sel_characterEncoding); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setCharacterEncoding: + set characterEncoding(objc.NSString? value) { + return _objc_msgSend_21(this.pointer, _sel_setCharacterEncoding_, + value?.pointer ?? ffi.nullptr); + } + + /// version + objc.NSString? get version { + final _ret = _objc_msgSend_20(this.pointer, _sel_version); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setVersion: + set version(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setVersion_, value?.pointer ?? ffi.nullptr); + } + + /// isStandalone + bool get standalone { + return _objc_msgSend_13(this.pointer, _sel_isStandalone); + } + + /// setStandalone: + set standalone(bool value) { + return _objc_msgSend_14(this.pointer, _sel_setStandalone_, value); + } + + /// documentContentKind + NSXMLDocumentContentKind get documentContentKind { + final _ret = _objc_msgSend_614(this.pointer, _sel_documentContentKind); + return NSXMLDocumentContentKind.fromValue(_ret); + } + + /// setDocumentContentKind: + set documentContentKind(NSXMLDocumentContentKind value) { + return _objc_msgSend_615( + this.pointer, _sel_setDocumentContentKind_, value.value); + } + + /// MIMEType + objc.NSString? get MIMEType { + final _ret = _objc_msgSend_20(this.pointer, _sel_MIMEType); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setMIMEType: + set MIMEType(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setMIMEType_, value?.pointer ?? ffi.nullptr); + } + + /// DTD + NSXMLDTD? get DTD { + final _ret = _objc_msgSend_625(this.pointer, _sel_DTD); + return _ret.address == 0 + ? null + : NSXMLDTD.castFromPointer(_ret, retain: true, release: true); + } + + /// setDTD: + set DTD(NSXMLDTD? value) { + return _objc_msgSend_626( + this.pointer, _sel_setDTD_, value?.pointer ?? ffi.nullptr); + } + + /// setRootElement: + void setRootElement_(NSXMLElement root) { + _objc_msgSend_627(this.pointer, _sel_setRootElement_, root.pointer); + } + + /// rootElement + NSXMLElement? rootElement() { + final _ret = _objc_msgSend_628(this.pointer, _sel_rootElement); + return _ret.address == 0 + ? null + : NSXMLElement.castFromPointer(_ret, retain: true, release: true); + } + + /// insertChild:atIndex: + void insertChild_atIndex_(NSXMLNode child, int index) { + _objc_msgSend_616( + this.pointer, _sel_insertChild_atIndex_, child.pointer, index); + } + + /// insertChildren:atIndex: + void insertChildren_atIndex_(objc.NSArray children, int index) { + _objc_msgSend_617( + this.pointer, _sel_insertChildren_atIndex_, children.pointer, index); + } + + /// removeChildAtIndex: + void removeChildAtIndex_(int index) { + _objc_msgSend_422(this.pointer, _sel_removeChildAtIndex_, index); + } + + /// setChildren: + void setChildren_(objc.NSArray? children) { + _objc_msgSend_269( + this.pointer, _sel_setChildren_, children?.pointer ?? ffi.nullptr); + } + + /// addChild: + void addChild_(NSXMLNode child) { + _objc_msgSend_618(this.pointer, _sel_addChild_, child.pointer); + } + + /// replaceChildAtIndex:withNode: + void replaceChildAtIndex_withNode_(int index, NSXMLNode node) { + _objc_msgSend_619( + this.pointer, _sel_replaceChildAtIndex_withNode_, index, node.pointer); + } + + /// XMLData + objc.NSData get XMLData { + final _ret = _objc_msgSend_113(this.pointer, _sel_XMLData); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// XMLDataWithOptions: + objc.NSData XMLDataWithOptions_(NSXMLNodeOptions options) { + final _ret = _objc_msgSend_629( + this.pointer, _sel_XMLDataWithOptions_, options.value); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// objectByApplyingXSLT:arguments:error: + objc.ObjCObjectBase? objectByApplyingXSLT_arguments_error_( + objc.NSData xslt, + objc.NSDictionary? arguments, + ffi.Pointer> error) { + final _ret = _objc_msgSend_630( + this.pointer, + _sel_objectByApplyingXSLT_arguments_error_, + xslt.pointer, + arguments?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// objectByApplyingXSLTString:arguments:error: + objc.ObjCObjectBase? objectByApplyingXSLTString_arguments_error_( + objc.NSString xslt, + objc.NSDictionary? arguments, + ffi.Pointer> error) { + final _ret = _objc_msgSend_631( + this.pointer, + _sel_objectByApplyingXSLTString_arguments_error_, + xslt.pointer, + arguments?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// objectByApplyingXSLTAtURL:arguments:error: + objc.ObjCObjectBase? objectByApplyingXSLTAtURL_arguments_error_( + objc.NSURL xsltURL, + objc.NSDictionary? argument, + ffi.Pointer> error) { + final _ret = _objc_msgSend_632( + this.pointer, + _sel_objectByApplyingXSLTAtURL_arguments_error_, + xsltURL.pointer, + argument?.pointer ?? ffi.nullptr, + error); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// validateAndReturnError: + bool validateAndReturnError_( + ffi.Pointer> error) { + return _objc_msgSend_39(this.pointer, _sel_validateAndReturnError_, error); + } + + /// initWithKind: + NSXMLDocument initWithKind_(NSXMLNodeKind kind) { + final _ret = + _objc_msgSend_603(this.pointer, _sel_initWithKind_, kind.value); + return NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind:options: + NSXMLDocument initWithKind_options_( + NSXMLNodeKind kind, NSXMLNodeOptions options) { + final _ret = _objc_msgSend_601( + this.pointer, _sel_initWithKind_options_, kind.value, options.value); + return NSXMLDocument.castFromPointer(_ret, retain: true, release: true); + } + + /// document + static objc.ObjCObjectBase document() { + final _ret = _objc_msgSend_19(_class_NSXMLDocument, _sel_document); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// documentWithRootElement: + static objc.ObjCObjectBase documentWithRootElement_(NSXMLElement element) { + final _ret = _objc_msgSend_604( + _class_NSXMLDocument, _sel_documentWithRootElement_, element.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName: + static objc.ObjCObjectBase elementWithName_(objc.NSString name) { + final _ret = _objc_msgSend_63( + _class_NSXMLDocument, _sel_elementWithName_, name.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:URI: + static objc.ObjCObjectBase elementWithName_URI_( + objc.NSString name, objc.NSString URI) { + final _ret = _objc_msgSend_605(_class_NSXMLDocument, + _sel_elementWithName_URI_, name.pointer, URI.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:stringValue: + static objc.ObjCObjectBase elementWithName_stringValue_( + objc.NSString name, objc.NSString string) { + final _ret = _objc_msgSend_605(_class_NSXMLDocument, + _sel_elementWithName_stringValue_, name.pointer, string.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:children:attributes: + static objc.ObjCObjectBase elementWithName_children_attributes_( + objc.NSString name, objc.NSArray? children, objc.NSArray? attributes) { + final _ret = _objc_msgSend_606( + _class_NSXMLDocument, + _sel_elementWithName_children_attributes_, + name.pointer, + children?.pointer ?? ffi.nullptr, + attributes?.pointer ?? ffi.nullptr); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:stringValue: + static objc.ObjCObjectBase attributeWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLDocument, + _sel_attributeWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:URI:stringValue: + static objc.ObjCObjectBase attributeWithName_URI_stringValue_( + objc.NSString name, objc.NSString URI, objc.NSString stringValue) { + final _ret = _objc_msgSend_567( + _class_NSXMLDocument, + _sel_attributeWithName_URI_stringValue_, + name.pointer, + URI.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// namespaceWithName:stringValue: + static objc.ObjCObjectBase namespaceWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLDocument, + _sel_namespaceWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// processingInstructionWithName:stringValue: + static objc.ObjCObjectBase processingInstructionWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605( + _class_NSXMLDocument, + _sel_processingInstructionWithName_stringValue_, + name.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// commentWithStringValue: + static objc.ObjCObjectBase commentWithStringValue_( + objc.NSString stringValue) { + final _ret = _objc_msgSend_63(_class_NSXMLDocument, + _sel_commentWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// textWithStringValue: + static objc.ObjCObjectBase textWithStringValue_(objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLDocument, _sel_textWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// DTDNodeWithXMLString: + static objc.ObjCObjectBase? DTDNodeWithXMLString_(objc.NSString string) { + final _ret = _objc_msgSend_35( + _class_NSXMLDocument, _sel_DTDNodeWithXMLString_, string.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// localNameForName: + static objc.NSString localNameForName_(objc.NSString name) { + final _ret = _objc_msgSend_306( + _class_NSXMLDocument, _sel_localNameForName_, name.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// prefixForName: + static objc.NSString? prefixForName_(objc.NSString name) { + final _ret = _objc_msgSend_42( + _class_NSXMLDocument, _sel_prefixForName_, name.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// predefinedNamespaceForPrefix: + static NSXMLNode? predefinedNamespaceForPrefix_(objc.NSString name) { + final _ret = _objc_msgSend_622( + _class_NSXMLDocument, _sel_predefinedNamespaceForPrefix_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } +} + +late final _class_NSXMLDocument = objc.getClass("classes.NSXMLDocument"); +late final _sel_initWithXMLString_options_error_ = + objc.registerName("initWithXMLString:options:error:"); +final _objc_msgSend_609 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_initWithContentsOfURL_options_error_ = + objc.registerName("initWithContentsOfURL:options:error:"); +final _objc_msgSend_610 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_initWithData_options_error_ = + objc.registerName("initWithData:options:error:"); +final _objc_msgSend_611 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer>)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer>)>(); +late final _sel_initWithRootElement_ = + objc.registerName("initWithRootElement:"); +final _objc_msgSend_612 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_replacementClassForClass_ = + objc.registerName("replacementClassForClass:"); +final _objc_msgSend_613 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_characterEncoding = objc.registerName("characterEncoding"); +late final _sel_setCharacterEncoding_ = + objc.registerName("setCharacterEncoding:"); +late final _sel_setVersion_ = objc.registerName("setVersion:"); +late final _sel_isStandalone = objc.registerName("isStandalone"); +late final _sel_setStandalone_ = objc.registerName("setStandalone:"); + +enum NSXMLDocumentContentKind { + NSXMLDocumentXMLKind(0), + NSXMLDocumentXHTMLKind(1), + NSXMLDocumentHTMLKind(2), + NSXMLDocumentTextKind(3); + + final int value; + const NSXMLDocumentContentKind(this.value); + + static NSXMLDocumentContentKind fromValue(int value) => switch (value) { + 0 => NSXMLDocumentXMLKind, + 1 => NSXMLDocumentXHTMLKind, + 2 => NSXMLDocumentHTMLKind, + 3 => NSXMLDocumentTextKind, + _ => throw ArgumentError( + "Unknown value for NSXMLDocumentContentKind: $value"), + }; +} + +late final _sel_documentContentKind = objc.registerName("documentContentKind"); +final _objc_msgSend_614 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDocumentContentKind_ = + objc.registerName("setDocumentContentKind:"); +final _objc_msgSend_615 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setMIMEType_ = objc.registerName("setMIMEType:"); + +/// NSXMLDTD +class NSXMLDTD extends NSXMLNode { + NSXMLDTD._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSXMLDTD] that points to the same underlying object as [other]. + NSXMLDTD.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSXMLDTD] that wraps the given raw object pointer. + NSXMLDTD.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSXMLDTD]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0(obj.pointer, _sel_isKindOfClass_, _class_NSXMLDTD); + } + + /// init + NSXMLDTD init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSXMLDTD.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind:options: + NSXMLDTD initWithKind_options_(NSXMLNodeKind kind, NSXMLNodeOptions options) { + final _ret = _objc_msgSend_601( + this.pointer, _sel_initWithKind_options_, kind.value, options.value); + return NSXMLDTD.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithContentsOfURL:options:error: + NSXMLDTD? initWithContentsOfURL_options_error_(objc.NSURL url, + NSXMLNodeOptions mask, ffi.Pointer> error) { + final _ret = _objc_msgSend_610( + this.pointer, + _sel_initWithContentsOfURL_options_error_, + url.pointer, + mask.value, + error); + return _ret.address == 0 + ? null + : NSXMLDTD.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithData:options:error: + NSXMLDTD? initWithData_options_error_(objc.NSData data, NSXMLNodeOptions mask, + ffi.Pointer> error) { + final _ret = _objc_msgSend_611(this.pointer, + _sel_initWithData_options_error_, data.pointer, mask.value, error); + return _ret.address == 0 + ? null + : NSXMLDTD.castFromPointer(_ret, retain: true, release: true); + } + + /// publicID + objc.NSString? get publicID { + final _ret = _objc_msgSend_20(this.pointer, _sel_publicID); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPublicID: + set publicID(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setPublicID_, value?.pointer ?? ffi.nullptr); + } + + /// systemID + objc.NSString? get systemID { + final _ret = _objc_msgSend_20(this.pointer, _sel_systemID); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setSystemID: + set systemID(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setSystemID_, value?.pointer ?? ffi.nullptr); + } + + /// insertChild:atIndex: + void insertChild_atIndex_(NSXMLNode child, int index) { + _objc_msgSend_616( + this.pointer, _sel_insertChild_atIndex_, child.pointer, index); + } + + /// insertChildren:atIndex: + void insertChildren_atIndex_(objc.NSArray children, int index) { + _objc_msgSend_617( + this.pointer, _sel_insertChildren_atIndex_, children.pointer, index); + } + + /// removeChildAtIndex: + void removeChildAtIndex_(int index) { + _objc_msgSend_422(this.pointer, _sel_removeChildAtIndex_, index); + } + + /// setChildren: + void setChildren_(objc.NSArray? children) { + _objc_msgSend_269( + this.pointer, _sel_setChildren_, children?.pointer ?? ffi.nullptr); + } + + /// addChild: + void addChild_(NSXMLNode child) { + _objc_msgSend_618(this.pointer, _sel_addChild_, child.pointer); + } + + /// replaceChildAtIndex:withNode: + void replaceChildAtIndex_withNode_(int index, NSXMLNode node) { + _objc_msgSend_619( + this.pointer, _sel_replaceChildAtIndex_withNode_, index, node.pointer); + } + + /// entityDeclarationForName: + NSXMLDTDNode? entityDeclarationForName_(objc.NSString name) { + final _ret = _objc_msgSend_623( + this.pointer, _sel_entityDeclarationForName_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// notationDeclarationForName: + NSXMLDTDNode? notationDeclarationForName_(objc.NSString name) { + final _ret = _objc_msgSend_623( + this.pointer, _sel_notationDeclarationForName_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// elementDeclarationForName: + NSXMLDTDNode? elementDeclarationForName_(objc.NSString name) { + final _ret = _objc_msgSend_623( + this.pointer, _sel_elementDeclarationForName_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// attributeDeclarationForName:elementName: + NSXMLDTDNode? attributeDeclarationForName_elementName_( + objc.NSString name, objc.NSString elementName) { + final _ret = _objc_msgSend_624( + this.pointer, + _sel_attributeDeclarationForName_elementName_, + name.pointer, + elementName.pointer); + return _ret.address == 0 + ? null + : NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// predefinedEntityDeclarationForName: + static NSXMLDTDNode? predefinedEntityDeclarationForName_(objc.NSString name) { + final _ret = _objc_msgSend_623(_class_NSXMLDTD, + _sel_predefinedEntityDeclarationForName_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind: + NSXMLDTD initWithKind_(NSXMLNodeKind kind) { + final _ret = + _objc_msgSend_603(this.pointer, _sel_initWithKind_, kind.value); + return NSXMLDTD.castFromPointer(_ret, retain: true, release: true); + } + + /// document + static objc.ObjCObjectBase document() { + final _ret = _objc_msgSend_19(_class_NSXMLDTD, _sel_document); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// documentWithRootElement: + static objc.ObjCObjectBase documentWithRootElement_(NSXMLElement element) { + final _ret = _objc_msgSend_604( + _class_NSXMLDTD, _sel_documentWithRootElement_, element.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName: + static objc.ObjCObjectBase elementWithName_(objc.NSString name) { + final _ret = + _objc_msgSend_63(_class_NSXMLDTD, _sel_elementWithName_, name.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:URI: + static objc.ObjCObjectBase elementWithName_URI_( + objc.NSString name, objc.NSString URI) { + final _ret = _objc_msgSend_605( + _class_NSXMLDTD, _sel_elementWithName_URI_, name.pointer, URI.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:stringValue: + static objc.ObjCObjectBase elementWithName_stringValue_( + objc.NSString name, objc.NSString string) { + final _ret = _objc_msgSend_605(_class_NSXMLDTD, + _sel_elementWithName_stringValue_, name.pointer, string.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:children:attributes: + static objc.ObjCObjectBase elementWithName_children_attributes_( + objc.NSString name, objc.NSArray? children, objc.NSArray? attributes) { + final _ret = _objc_msgSend_606( + _class_NSXMLDTD, + _sel_elementWithName_children_attributes_, + name.pointer, + children?.pointer ?? ffi.nullptr, + attributes?.pointer ?? ffi.nullptr); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:stringValue: + static objc.ObjCObjectBase attributeWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLDTD, + _sel_attributeWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:URI:stringValue: + static objc.ObjCObjectBase attributeWithName_URI_stringValue_( + objc.NSString name, objc.NSString URI, objc.NSString stringValue) { + final _ret = _objc_msgSend_567( + _class_NSXMLDTD, + _sel_attributeWithName_URI_stringValue_, + name.pointer, + URI.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// namespaceWithName:stringValue: + static objc.ObjCObjectBase namespaceWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLDTD, + _sel_namespaceWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// processingInstructionWithName:stringValue: + static objc.ObjCObjectBase processingInstructionWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605( + _class_NSXMLDTD, + _sel_processingInstructionWithName_stringValue_, + name.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// commentWithStringValue: + static objc.ObjCObjectBase commentWithStringValue_( + objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLDTD, _sel_commentWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// textWithStringValue: + static objc.ObjCObjectBase textWithStringValue_(objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLDTD, _sel_textWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// DTDNodeWithXMLString: + static objc.ObjCObjectBase? DTDNodeWithXMLString_(objc.NSString string) { + final _ret = _objc_msgSend_35( + _class_NSXMLDTD, _sel_DTDNodeWithXMLString_, string.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// localNameForName: + static objc.NSString localNameForName_(objc.NSString name) { + final _ret = _objc_msgSend_306( + _class_NSXMLDTD, _sel_localNameForName_, name.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// prefixForName: + static objc.NSString? prefixForName_(objc.NSString name) { + final _ret = + _objc_msgSend_42(_class_NSXMLDTD, _sel_prefixForName_, name.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// predefinedNamespaceForPrefix: + static NSXMLNode? predefinedNamespaceForPrefix_(objc.NSString name) { + final _ret = _objc_msgSend_622( + _class_NSXMLDTD, _sel_predefinedNamespaceForPrefix_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } +} + +late final _class_NSXMLDTD = objc.getClass("classes.NSXMLDTD"); +late final _sel_setPublicID_ = objc.registerName("setPublicID:"); +late final _sel_setSystemID_ = objc.registerName("setSystemID:"); +late final _sel_insertChild_atIndex_ = + objc.registerName("insertChild:atIndex:"); +final _objc_msgSend_616 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_insertChildren_atIndex_ = + objc.registerName("insertChildren:atIndex:"); +final _objc_msgSend_617 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_removeChildAtIndex_ = objc.registerName("removeChildAtIndex:"); +late final _sel_setChildren_ = objc.registerName("setChildren:"); +late final _sel_addChild_ = objc.registerName("addChild:"); +final _objc_msgSend_618 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_replaceChildAtIndex_withNode_ = + objc.registerName("replaceChildAtIndex:withNode:"); +final _objc_msgSend_619 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); + +/// NSXMLDTDNode +class NSXMLDTDNode extends NSXMLNode { + NSXMLDTDNode._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSXMLDTDNode] that points to the same underlying object as [other]. + NSXMLDTDNode.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSXMLDTDNode] that wraps the given raw object pointer. + NSXMLDTDNode.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSXMLDTDNode]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSXMLDTDNode); + } + + /// initWithXMLString: + NSXMLDTDNode? initWithXMLString_(objc.NSString string) { + final _ret = + _objc_msgSend_35(this.pointer, _sel_initWithXMLString_, string.pointer); + return _ret.address == 0 + ? null + : NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithKind:options: + NSXMLDTDNode initWithKind_options_( + NSXMLNodeKind kind, NSXMLNodeOptions options) { + final _ret = _objc_msgSend_601( + this.pointer, _sel_initWithKind_options_, kind.value, options.value); + return NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSXMLDTDNode init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// DTDKind + NSXMLDTDNodeKind get DTDKind { + final _ret = _objc_msgSend_620(this.pointer, _sel_DTDKind); + return NSXMLDTDNodeKind.fromValue(_ret); + } + + /// setDTDKind: + set DTDKind(NSXMLDTDNodeKind value) { + return _objc_msgSend_621(this.pointer, _sel_setDTDKind_, value.value); + } + + /// isExternal + bool get external1 { + return _objc_msgSend_13(this.pointer, _sel_isExternal); + } + + /// publicID + objc.NSString? get publicID { + final _ret = _objc_msgSend_20(this.pointer, _sel_publicID); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setPublicID: + set publicID(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setPublicID_, value?.pointer ?? ffi.nullptr); + } + + /// systemID + objc.NSString? get systemID { + final _ret = _objc_msgSend_20(this.pointer, _sel_systemID); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setSystemID: + set systemID(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setSystemID_, value?.pointer ?? ffi.nullptr); + } + + /// notationName + objc.NSString? get notationName { + final _ret = _objc_msgSend_20(this.pointer, _sel_notationName); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setNotationName: + set notationName(objc.NSString? value) { + return _objc_msgSend_21( + this.pointer, _sel_setNotationName_, value?.pointer ?? ffi.nullptr); + } + + /// initWithKind: + NSXMLDTDNode initWithKind_(NSXMLNodeKind kind) { + final _ret = + _objc_msgSend_603(this.pointer, _sel_initWithKind_, kind.value); + return NSXMLDTDNode.castFromPointer(_ret, retain: true, release: true); + } + + /// document + static objc.ObjCObjectBase document() { + final _ret = _objc_msgSend_19(_class_NSXMLDTDNode, _sel_document); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// documentWithRootElement: + static objc.ObjCObjectBase documentWithRootElement_(NSXMLElement element) { + final _ret = _objc_msgSend_604( + _class_NSXMLDTDNode, _sel_documentWithRootElement_, element.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName: + static objc.ObjCObjectBase elementWithName_(objc.NSString name) { + final _ret = _objc_msgSend_63( + _class_NSXMLDTDNode, _sel_elementWithName_, name.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:URI: + static objc.ObjCObjectBase elementWithName_URI_( + objc.NSString name, objc.NSString URI) { + final _ret = _objc_msgSend_605(_class_NSXMLDTDNode, + _sel_elementWithName_URI_, name.pointer, URI.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:stringValue: + static objc.ObjCObjectBase elementWithName_stringValue_( + objc.NSString name, objc.NSString string) { + final _ret = _objc_msgSend_605(_class_NSXMLDTDNode, + _sel_elementWithName_stringValue_, name.pointer, string.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// elementWithName:children:attributes: + static objc.ObjCObjectBase elementWithName_children_attributes_( + objc.NSString name, objc.NSArray? children, objc.NSArray? attributes) { + final _ret = _objc_msgSend_606( + _class_NSXMLDTDNode, + _sel_elementWithName_children_attributes_, + name.pointer, + children?.pointer ?? ffi.nullptr, + attributes?.pointer ?? ffi.nullptr); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:stringValue: + static objc.ObjCObjectBase attributeWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLDTDNode, + _sel_attributeWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// attributeWithName:URI:stringValue: + static objc.ObjCObjectBase attributeWithName_URI_stringValue_( + objc.NSString name, objc.NSString URI, objc.NSString stringValue) { + final _ret = _objc_msgSend_567( + _class_NSXMLDTDNode, + _sel_attributeWithName_URI_stringValue_, + name.pointer, + URI.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// namespaceWithName:stringValue: + static objc.ObjCObjectBase namespaceWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605(_class_NSXMLDTDNode, + _sel_namespaceWithName_stringValue_, name.pointer, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// processingInstructionWithName:stringValue: + static objc.ObjCObjectBase processingInstructionWithName_stringValue_( + objc.NSString name, objc.NSString stringValue) { + final _ret = _objc_msgSend_605( + _class_NSXMLDTDNode, + _sel_processingInstructionWithName_stringValue_, + name.pointer, + stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// commentWithStringValue: + static objc.ObjCObjectBase commentWithStringValue_( + objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLDTDNode, _sel_commentWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// textWithStringValue: + static objc.ObjCObjectBase textWithStringValue_(objc.NSString stringValue) { + final _ret = _objc_msgSend_63( + _class_NSXMLDTDNode, _sel_textWithStringValue_, stringValue.pointer); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// DTDNodeWithXMLString: + static objc.ObjCObjectBase? DTDNodeWithXMLString_(objc.NSString string) { + final _ret = _objc_msgSend_35( + _class_NSXMLDTDNode, _sel_DTDNodeWithXMLString_, string.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// localNameForName: + static objc.NSString localNameForName_(objc.NSString name) { + final _ret = _objc_msgSend_306( + _class_NSXMLDTDNode, _sel_localNameForName_, name.pointer); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// prefixForName: + static objc.NSString? prefixForName_(objc.NSString name) { + final _ret = _objc_msgSend_42( + _class_NSXMLDTDNode, _sel_prefixForName_, name.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// predefinedNamespaceForPrefix: + static NSXMLNode? predefinedNamespaceForPrefix_(objc.NSString name) { + final _ret = _objc_msgSend_622( + _class_NSXMLDTDNode, _sel_predefinedNamespaceForPrefix_, name.pointer); + return _ret.address == 0 + ? null + : NSXMLNode.castFromPointer(_ret, retain: true, release: true); + } +} + +late final _class_NSXMLDTDNode = objc.getClass("classes.NSXMLDTDNode"); +late final _sel_initWithXMLString_ = objc.registerName("initWithXMLString:"); + +enum NSXMLDTDNodeKind { + NSXMLEntityGeneralKind(1), + NSXMLEntityParsedKind(2), + NSXMLEntityUnparsedKind(3), + NSXMLEntityParameterKind(4), + NSXMLEntityPredefined(5), + NSXMLAttributeCDATAKind(6), + NSXMLAttributeIDKind(7), + NSXMLAttributeIDRefKind(8), + NSXMLAttributeIDRefsKind(9), + NSXMLAttributeEntityKind(10), + NSXMLAttributeEntitiesKind(11), + NSXMLAttributeNMTokenKind(12), + NSXMLAttributeNMTokensKind(13), + NSXMLAttributeEnumerationKind(14), + NSXMLAttributeNotationKind(15), + NSXMLElementDeclarationUndefinedKind(16), + NSXMLElementDeclarationEmptyKind(17), + NSXMLElementDeclarationAnyKind(18), + NSXMLElementDeclarationMixedKind(19), + NSXMLElementDeclarationElementKind(20); + + final int value; + const NSXMLDTDNodeKind(this.value); + + static NSXMLDTDNodeKind fromValue(int value) => switch (value) { + 1 => NSXMLEntityGeneralKind, + 2 => NSXMLEntityParsedKind, + 3 => NSXMLEntityUnparsedKind, + 4 => NSXMLEntityParameterKind, + 5 => NSXMLEntityPredefined, + 6 => NSXMLAttributeCDATAKind, + 7 => NSXMLAttributeIDKind, + 8 => NSXMLAttributeIDRefKind, + 9 => NSXMLAttributeIDRefsKind, + 10 => NSXMLAttributeEntityKind, + 11 => NSXMLAttributeEntitiesKind, + 12 => NSXMLAttributeNMTokenKind, + 13 => NSXMLAttributeNMTokensKind, + 14 => NSXMLAttributeEnumerationKind, + 15 => NSXMLAttributeNotationKind, + 16 => NSXMLElementDeclarationUndefinedKind, + 17 => NSXMLElementDeclarationEmptyKind, + 18 => NSXMLElementDeclarationAnyKind, + 19 => NSXMLElementDeclarationMixedKind, + 20 => NSXMLElementDeclarationElementKind, + _ => throw ArgumentError("Unknown value for NSXMLDTDNodeKind: $value"), + }; +} + +late final _sel_DTDKind = objc.registerName("DTDKind"); +final _objc_msgSend_620 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedLong Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDTDKind_ = objc.registerName("setDTDKind:"); +final _objc_msgSend_621 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_isExternal = objc.registerName("isExternal"); +late final _sel_notationName = objc.registerName("notationName"); +late final _sel_setNotationName_ = objc.registerName("setNotationName:"); +late final _sel_localNameForName_ = objc.registerName("localNameForName:"); +late final _sel_prefixForName_ = objc.registerName("prefixForName:"); +late final _sel_predefinedNamespaceForPrefix_ = + objc.registerName("predefinedNamespaceForPrefix:"); +final _objc_msgSend_622 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_entityDeclarationForName_ = + objc.registerName("entityDeclarationForName:"); +final _objc_msgSend_623 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_notationDeclarationForName_ = + objc.registerName("notationDeclarationForName:"); +late final _sel_elementDeclarationForName_ = + objc.registerName("elementDeclarationForName:"); +late final _sel_attributeDeclarationForName_elementName_ = + objc.registerName("attributeDeclarationForName:elementName:"); +final _objc_msgSend_624 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_predefinedEntityDeclarationForName_ = + objc.registerName("predefinedEntityDeclarationForName:"); +late final _sel_DTD = objc.registerName("DTD"); +final _objc_msgSend_625 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setDTD_ = objc.registerName("setDTD:"); +final _objc_msgSend_626 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setRootElement_ = objc.registerName("setRootElement:"); +final _objc_msgSend_627 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_rootElement = objc.registerName("rootElement"); +final _objc_msgSend_628 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_XMLData = objc.registerName("XMLData"); +late final _sel_XMLDataWithOptions_ = objc.registerName("XMLDataWithOptions:"); +final _objc_msgSend_629 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_objectByApplyingXSLT_arguments_error_ = + objc.registerName("objectByApplyingXSLT:arguments:error:"); +final _objc_msgSend_630 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_objectByApplyingXSLTString_arguments_error_ = + objc.registerName("objectByApplyingXSLTString:arguments:error:"); +final _objc_msgSend_631 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_objectByApplyingXSLTAtURL_arguments_error_ = + objc.registerName("objectByApplyingXSLTAtURL:arguments:error:"); +final _objc_msgSend_632 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_validateAndReturnError_ = + objc.registerName("validateAndReturnError:"); +late final _sel_rootDocument = objc.registerName("rootDocument"); +final _objc_msgSend_633 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_parent = objc.registerName("parent"); +final _objc_msgSend_634 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_childCount = objc.registerName("childCount"); +late final _sel_children = objc.registerName("children"); +late final _sel_childAtIndex_ = objc.registerName("childAtIndex:"); +final _objc_msgSend_635 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_previousSibling = objc.registerName("previousSibling"); +late final _sel_nextSibling = objc.registerName("nextSibling"); +late final _sel_previousNode = objc.registerName("previousNode"); +late final _sel_nextNode = objc.registerName("nextNode"); +late final _sel_detach = objc.registerName("detach"); +late final _sel_XPath = objc.registerName("XPath"); +late final _sel_localName = objc.registerName("localName"); +late final _sel_prefix = objc.registerName("prefix"); +late final _sel_URI = objc.registerName("URI"); +late final _sel_setURI_ = objc.registerName("setURI:"); +late final _sel_XMLString = objc.registerName("XMLString"); +late final _sel_XMLStringWithOptions_ = + objc.registerName("XMLStringWithOptions:"); +final _objc_msgSend_636 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_canonicalXMLStringPreservingComments_ = + objc.registerName("canonicalXMLStringPreservingComments:"); +final _objc_msgSend_637 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Bool)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, bool)>(); +late final _sel_nodesForXPath_error_ = + objc.registerName("nodesForXPath:error:"); +late final _sel_objectsForXQuery_constants_error_ = + objc.registerName("objectsForXQuery:constants:error:"); +final _objc_msgSend_638 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer>)>(); +late final _sel_objectsForXQuery_error_ = + objc.registerName("objectsForXQuery:error:"); +late final _sel_addAttribute_ = objc.registerName("addAttribute:"); +late final _sel_removeAttributeForName_ = + objc.registerName("removeAttributeForName:"); +late final _sel_attributes = objc.registerName("attributes"); +late final _sel_setAttributes_ = objc.registerName("setAttributes:"); +late final _sel_setAttributesWithDictionary_ = + objc.registerName("setAttributesWithDictionary:"); +final _objc_msgSend_639 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_attributeForName_ = objc.registerName("attributeForName:"); +late final _sel_attributeForLocalName_URI_ = + objc.registerName("attributeForLocalName:URI:"); +final _objc_msgSend_640 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_addNamespace_ = objc.registerName("addNamespace:"); +late final _sel_removeNamespaceForPrefix_ = + objc.registerName("removeNamespaceForPrefix:"); +late final _sel_namespaces = objc.registerName("namespaces"); +late final _sel_setNamespaces_ = objc.registerName("setNamespaces:"); +late final _sel_namespaceForPrefix_ = objc.registerName("namespaceForPrefix:"); +late final _sel_resolveNamespaceForName_ = + objc.registerName("resolveNamespaceForName:"); +late final _sel_resolvePrefixForNamespaceURI_ = + objc.registerName("resolvePrefixForNamespaceURI:"); +late final _sel_normalizeAdjacentTextNodesPreservingCDATA_ = + objc.registerName("normalizeAdjacentTextNodesPreservingCDATA:"); +late final _sel_setAttributesAsDictionary_ = + objc.registerName("setAttributesAsDictionary:"); + +/// NSScriptClassDescription +class NSScriptClassDescription extends NSClassDescription { + NSScriptClassDescription._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSScriptClassDescription] that points to the same underlying object as [other]. + NSScriptClassDescription.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSScriptClassDescription] that wraps the given raw object pointer. + NSScriptClassDescription.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSScriptClassDescription]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSScriptClassDescription); + } + + /// classDescriptionForClass: + static NSClassDescription? classDescriptionForClass_( + objc.ObjCObjectBase aClass) { + final _ret = _objc_msgSend_692(_class_NSScriptClassDescription, + _sel_classDescriptionForClass_, aClass.pointer); + return _ret.address == 0 + ? null + : NSClassDescription.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithSuiteName:className:dictionary: + NSScriptClassDescription? initWithSuiteName_className_dictionary_( + objc.NSString suiteName, + objc.NSString className, + objc.NSDictionary? classDeclaration) { + final _ret = _objc_msgSend_642( + this.pointer, + _sel_initWithSuiteName_className_dictionary_, + suiteName.pointer, + className.pointer, + classDeclaration?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSScriptClassDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// suiteName + objc.NSString? get suiteName { + final _ret = _objc_msgSend_20(this.pointer, _sel_suiteName); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// className + objc.NSString? get className { + final _ret = _objc_msgSend_20(this.pointer, _sel_className); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// implementationClassName + objc.NSString? get implementationClassName { + final _ret = _objc_msgSend_20(this.pointer, _sel_implementationClassName); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// superclassDescription + NSScriptClassDescription? get superclassDescription { + final _ret = _objc_msgSend_643(this.pointer, _sel_superclassDescription); + return _ret.address == 0 + ? null + : NSScriptClassDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// appleEventCode + int get appleEventCode { + return _objc_msgSend_644(this.pointer, _sel_appleEventCode); + } + + /// matchesAppleEventCode: + bool matchesAppleEventCode_(int appleEventCode) { + return _objc_msgSend_645( + this.pointer, _sel_matchesAppleEventCode_, appleEventCode); + } + + /// supportsCommand: + bool supportsCommand_(NSScriptCommandDescription commandDescription) { + return _objc_msgSend_687( + this.pointer, _sel_supportsCommand_, commandDescription.pointer); + } + + /// selectorForCommand: + ffi.Pointer selectorForCommand_( + NSScriptCommandDescription commandDescription) { + return _objc_msgSend_688( + this.pointer, _sel_selectorForCommand_, commandDescription.pointer); + } + + /// typeForKey: + objc.NSString? typeForKey_(objc.NSString key) { + final _ret = _objc_msgSend_42(this.pointer, _sel_typeForKey_, key.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// classDescriptionForKey: + NSScriptClassDescription? classDescriptionForKey_(objc.NSString key) { + final _ret = _objc_msgSend_689( + this.pointer, _sel_classDescriptionForKey_, key.pointer); + return _ret.address == 0 + ? null + : NSScriptClassDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// appleEventCodeForKey: + int appleEventCodeForKey_(objc.NSString key) { + return _objc_msgSend_646( + this.pointer, _sel_appleEventCodeForKey_, key.pointer); + } + + /// keyWithAppleEventCode: + objc.NSString? keyWithAppleEventCode_(int appleEventCode) { + final _ret = _objc_msgSend_690( + this.pointer, _sel_keyWithAppleEventCode_, appleEventCode); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// defaultSubcontainerAttributeKey + objc.NSString? get defaultSubcontainerAttributeKey { + final _ret = + _objc_msgSend_20(this.pointer, _sel_defaultSubcontainerAttributeKey); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// isLocationRequiredToCreateForKey: + bool isLocationRequiredToCreateForKey_(objc.NSString toManyRelationshipKey) { + return _objc_msgSend_31(this.pointer, + _sel_isLocationRequiredToCreateForKey_, toManyRelationshipKey.pointer); + } + + /// hasPropertyForKey: + bool hasPropertyForKey_(objc.NSString key) { + return _objc_msgSend_31(this.pointer, _sel_hasPropertyForKey_, key.pointer); + } + + /// hasOrderedToManyRelationshipForKey: + bool hasOrderedToManyRelationshipForKey_(objc.NSString key) { + return _objc_msgSend_31( + this.pointer, _sel_hasOrderedToManyRelationshipForKey_, key.pointer); + } + + /// hasReadablePropertyForKey: + bool hasReadablePropertyForKey_(objc.NSString key) { + return _objc_msgSend_31( + this.pointer, _sel_hasReadablePropertyForKey_, key.pointer); + } + + /// hasWritablePropertyForKey: + bool hasWritablePropertyForKey_(objc.NSString key) { + return _objc_msgSend_31( + this.pointer, _sel_hasWritablePropertyForKey_, key.pointer); + } + + /// isReadOnlyKey: + bool isReadOnlyKey_(objc.NSString key) { + return _objc_msgSend_31(this.pointer, _sel_isReadOnlyKey_, key.pointer); + } + + /// registerClassDescription:forClass: + static void registerClassDescription_forClass_( + NSClassDescription description, objc.ObjCObjectBase aClass) { + _objc_msgSend_691( + _class_NSScriptClassDescription, + _sel_registerClassDescription_forClass_, + description.pointer, + aClass.pointer); + } + + /// invalidateClassDescriptionCache + static void invalidateClassDescriptionCache() { + _objc_msgSend_7( + _class_NSScriptClassDescription, _sel_invalidateClassDescriptionCache); + } + + /// init + NSScriptClassDescription init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSScriptClassDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSScriptClassDescription new1() { + final _ret = _objc_msgSend_19(_class_NSScriptClassDescription, _sel_new); + return NSScriptClassDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSScriptClassDescription allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSScriptClassDescription, _sel_allocWithZone_, zone); + return NSScriptClassDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSScriptClassDescription alloc() { + final _ret = _objc_msgSend_19(_class_NSScriptClassDescription, _sel_alloc); + return NSScriptClassDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSScriptClassDescription, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSScriptClassDescription, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSScriptClassDescription, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSScriptClassDescription, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSScriptClassDescription, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSScriptClassDescription, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSScriptClassDescription, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSScriptClassDescription, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSScriptClassDescription, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSScriptClassDescription = + objc.getClass("classes.NSScriptClassDescription"); +late final _sel_classDescriptionForClass_ = + objc.registerName("classDescriptionForClass:"); +final _objc_msgSend_641 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithSuiteName_className_dictionary_ = + objc.registerName("initWithSuiteName:className:dictionary:"); +final _objc_msgSend_642 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_suiteName = objc.registerName("suiteName"); +late final _sel_className = objc.registerName("className"); +late final _sel_implementationClassName = + objc.registerName("implementationClassName"); +late final _sel_superclassDescription = + objc.registerName("superclassDescription"); +final _objc_msgSend_643 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_appleEventCode = objc.registerName("appleEventCode"); +final _objc_msgSend_644 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedInt Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_matchesAppleEventCode_ = + objc.registerName("matchesAppleEventCode:"); +final _objc_msgSend_645 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedInt)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, int)>(); + +/// NSScriptCommandDescription +class NSScriptCommandDescription extends objc.NSObject { + NSScriptCommandDescription._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSScriptCommandDescription] that points to the same underlying object as [other]. + NSScriptCommandDescription.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSScriptCommandDescription] that wraps the given raw object pointer. + NSScriptCommandDescription.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSScriptCommandDescription]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSScriptCommandDescription); + } + + /// init + NSScriptCommandDescription init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSScriptCommandDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithSuiteName:commandName:dictionary: + NSScriptCommandDescription? initWithSuiteName_commandName_dictionary_( + objc.NSString suiteName, + objc.NSString commandName, + objc.NSDictionary? commandDeclaration) { + final _ret = _objc_msgSend_642( + this.pointer, + _sel_initWithSuiteName_commandName_dictionary_, + suiteName.pointer, + commandName.pointer, + commandDeclaration?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSScriptCommandDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithCoder: + NSScriptCommandDescription? initWithCoder_(objc.NSCoder inCoder) { + final _ret = + _objc_msgSend_239(this.pointer, _sel_initWithCoder_, inCoder.pointer); + return _ret.address == 0 + ? null + : NSScriptCommandDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// suiteName + objc.NSString get suiteName { + final _ret = _objc_msgSend_11(this.pointer, _sel_suiteName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// commandName + objc.NSString get commandName { + final _ret = _objc_msgSend_11(this.pointer, _sel_commandName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// appleEventClassCode + int get appleEventClassCode { + return _objc_msgSend_644(this.pointer, _sel_appleEventClassCode); + } + + /// appleEventCode + int get appleEventCode { + return _objc_msgSend_644(this.pointer, _sel_appleEventCode); + } + + /// commandClassName + objc.NSString get commandClassName { + final _ret = _objc_msgSend_11(this.pointer, _sel_commandClassName); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// returnType + objc.NSString? get returnType { + final _ret = _objc_msgSend_20(this.pointer, _sel_returnType); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// appleEventCodeForReturnType + int get appleEventCodeForReturnType { + return _objc_msgSend_644(this.pointer, _sel_appleEventCodeForReturnType); + } + + /// argumentNames + objc.NSArray get argumentNames { + final _ret = _objc_msgSend_33(this.pointer, _sel_argumentNames); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// typeForArgumentWithName: + objc.NSString? typeForArgumentWithName_(objc.NSString argumentName) { + final _ret = _objc_msgSend_42( + this.pointer, _sel_typeForArgumentWithName_, argumentName.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// appleEventCodeForArgumentWithName: + int appleEventCodeForArgumentWithName_(objc.NSString argumentName) { + return _objc_msgSend_646(this.pointer, + _sel_appleEventCodeForArgumentWithName_, argumentName.pointer); + } + + /// isOptionalArgumentWithName: + bool isOptionalArgumentWithName_(objc.NSString argumentName) { + return _objc_msgSend_31( + this.pointer, _sel_isOptionalArgumentWithName_, argumentName.pointer); + } + + /// createCommandInstance + NSScriptCommand createCommandInstance() { + final _ret = _objc_msgSend_685(this.pointer, _sel_createCommandInstance); + return NSScriptCommand.castFromPointer(_ret, retain: true, release: true); + } + + /// createCommandInstanceWithZone: + NSScriptCommand createCommandInstanceWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_686( + this.pointer, _sel_createCommandInstanceWithZone_, zone); + return NSScriptCommand.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSScriptCommandDescription new1() { + final _ret = _objc_msgSend_19(_class_NSScriptCommandDescription, _sel_new); + return NSScriptCommandDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSScriptCommandDescription allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSScriptCommandDescription, _sel_allocWithZone_, zone); + return NSScriptCommandDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSScriptCommandDescription alloc() { + final _ret = + _objc_msgSend_19(_class_NSScriptCommandDescription, _sel_alloc); + return NSScriptCommandDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSScriptCommandDescription, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSScriptCommandDescription, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13(_class_NSScriptCommandDescription, + _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSScriptCommandDescription, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSScriptCommandDescription, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSScriptCommandDescription, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSScriptCommandDescription, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSScriptCommandDescription, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSScriptCommandDescription, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSScriptCommandDescription = + objc.getClass("classes.NSScriptCommandDescription"); +late final _sel_initWithSuiteName_commandName_dictionary_ = + objc.registerName("initWithSuiteName:commandName:dictionary:"); +late final _sel_commandName = objc.registerName("commandName"); +late final _sel_appleEventClassCode = objc.registerName("appleEventClassCode"); +late final _sel_commandClassName = objc.registerName("commandClassName"); +late final _sel_returnType = objc.registerName("returnType"); +late final _sel_appleEventCodeForReturnType = + objc.registerName("appleEventCodeForReturnType"); +late final _sel_argumentNames = objc.registerName("argumentNames"); +late final _sel_typeForArgumentWithName_ = + objc.registerName("typeForArgumentWithName:"); +late final _sel_appleEventCodeForArgumentWithName_ = + objc.registerName("appleEventCodeForArgumentWithName:"); +final _objc_msgSend_646 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedInt Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_isOptionalArgumentWithName_ = + objc.registerName("isOptionalArgumentWithName:"); + +/// NSScriptCommand +class NSScriptCommand extends objc.NSObject { + NSScriptCommand._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSScriptCommand] that points to the same underlying object as [other]. + NSScriptCommand.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSScriptCommand] that wraps the given raw object pointer. + NSScriptCommand.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSScriptCommand]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSScriptCommand); + } + + /// initWithCommandDescription: + NSScriptCommand initWithCommandDescription_( + NSScriptCommandDescription commandDef) { + final _ret = _objc_msgSend_647( + this.pointer, _sel_initWithCommandDescription_, commandDef.pointer); + return NSScriptCommand.castFromPointer(_ret, retain: true, release: true); + } + + /// initWithCoder: + NSScriptCommand? initWithCoder_(objc.NSCoder inCoder) { + final _ret = + _objc_msgSend_239(this.pointer, _sel_initWithCoder_, inCoder.pointer); + return _ret.address == 0 + ? null + : NSScriptCommand.castFromPointer(_ret, retain: true, release: true); + } + + /// commandDescription + NSScriptCommandDescription get commandDescription { + final _ret = _objc_msgSend_648(this.pointer, _sel_commandDescription); + return NSScriptCommandDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// directParameter + objc.ObjCObjectBase? get directParameter { + final _ret = _objc_msgSend_83(this.pointer, _sel_directParameter); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// setDirectParameter: + set directParameter(objc.ObjCObjectBase? value) { + return _objc_msgSend_200( + this.pointer, _sel_setDirectParameter_, value?.pointer ?? ffi.nullptr); + } + + /// receiversSpecifier + NSScriptObjectSpecifier? get receiversSpecifier { + final _ret = _objc_msgSend_677(this.pointer, _sel_receiversSpecifier); + return _ret.address == 0 + ? null + : NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// setReceiversSpecifier: + set receiversSpecifier(NSScriptObjectSpecifier? value) { + return _objc_msgSend_678(this.pointer, _sel_setReceiversSpecifier_, + value?.pointer ?? ffi.nullptr); + } + + /// evaluatedReceivers + objc.ObjCObjectBase? get evaluatedReceivers { + final _ret = _objc_msgSend_83(this.pointer, _sel_evaluatedReceivers); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// arguments + objc.NSDictionary? get arguments { + final _ret = _objc_msgSend_82(this.pointer, _sel_arguments); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// setArguments: + set arguments(objc.NSDictionary? value) { + return _objc_msgSend_187( + this.pointer, _sel_setArguments_, value?.pointer ?? ffi.nullptr); + } + + /// evaluatedArguments + objc.NSDictionary? get evaluatedArguments { + final _ret = _objc_msgSend_82(this.pointer, _sel_evaluatedArguments); + return _ret.address == 0 + ? null + : objc.NSDictionary.castFromPointer(_ret, retain: true, release: true); + } + + /// isWellFormed + bool get wellFormed { + return _objc_msgSend_13(this.pointer, _sel_isWellFormed); + } + + /// performDefaultImplementation + objc.ObjCObjectBase? performDefaultImplementation() { + final _ret = + _objc_msgSend_83(this.pointer, _sel_performDefaultImplementation); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// executeCommand + objc.ObjCObjectBase? executeCommand() { + final _ret = _objc_msgSend_83(this.pointer, _sel_executeCommand); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// scriptErrorNumber + int get scriptErrorNumber { + return _objc_msgSend_123(this.pointer, _sel_scriptErrorNumber); + } + + /// setScriptErrorNumber: + set scriptErrorNumber(int value) { + return _objc_msgSend_142(this.pointer, _sel_setScriptErrorNumber_, value); + } + + /// scriptErrorOffendingObjectDescriptor + NSAppleEventDescriptor? get scriptErrorOffendingObjectDescriptor { + final _ret = _objc_msgSend_682( + this.pointer, _sel_scriptErrorOffendingObjectDescriptor); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// setScriptErrorOffendingObjectDescriptor: + set scriptErrorOffendingObjectDescriptor(NSAppleEventDescriptor? value) { + return _objc_msgSend_683( + this.pointer, + _sel_setScriptErrorOffendingObjectDescriptor_, + value?.pointer ?? ffi.nullptr); + } + + /// scriptErrorExpectedTypeDescriptor + NSAppleEventDescriptor? get scriptErrorExpectedTypeDescriptor { + final _ret = + _objc_msgSend_682(this.pointer, _sel_scriptErrorExpectedTypeDescriptor); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// setScriptErrorExpectedTypeDescriptor: + set scriptErrorExpectedTypeDescriptor(NSAppleEventDescriptor? value) { + return _objc_msgSend_683( + this.pointer, + _sel_setScriptErrorExpectedTypeDescriptor_, + value?.pointer ?? ffi.nullptr); + } + + /// scriptErrorString + objc.NSString? get scriptErrorString { + final _ret = _objc_msgSend_20(this.pointer, _sel_scriptErrorString); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setScriptErrorString: + set scriptErrorString(objc.NSString? value) { + return _objc_msgSend_21(this.pointer, _sel_setScriptErrorString_, + value?.pointer ?? ffi.nullptr); + } + + /// currentCommand + static NSScriptCommand? currentCommand() { + final _ret = _objc_msgSend_684(_class_NSScriptCommand, _sel_currentCommand); + return _ret.address == 0 + ? null + : NSScriptCommand.castFromPointer(_ret, retain: true, release: true); + } + + /// appleEvent + NSAppleEventDescriptor? get appleEvent { + final _ret = _objc_msgSend_682(this.pointer, _sel_appleEvent); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// suspendExecution + void suspendExecution() { + _objc_msgSend_7(this.pointer, _sel_suspendExecution); + } + + /// resumeExecutionWithResult: + void resumeExecutionWithResult_(objc.ObjCObjectBase? result) { + _objc_msgSend_226(this.pointer, _sel_resumeExecutionWithResult_, + result?.pointer ?? ffi.nullptr); + } + + /// init + NSScriptCommand init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSScriptCommand.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static NSScriptCommand new1() { + final _ret = _objc_msgSend_19(_class_NSScriptCommand, _sel_new); + return NSScriptCommand.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static NSScriptCommand allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSScriptCommand, _sel_allocWithZone_, zone); + return NSScriptCommand.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static NSScriptCommand alloc() { + final _ret = _objc_msgSend_19(_class_NSScriptCommand, _sel_alloc); + return NSScriptCommand.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSScriptCommand, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSScriptCommand, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSScriptCommand, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSScriptCommand, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSScriptCommand, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSScriptCommand, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSScriptCommand, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSScriptCommand, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_NSScriptCommand, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSScriptCommand = objc.getClass("classes.NSScriptCommand"); +late final _sel_initWithCommandDescription_ = + objc.registerName("initWithCommandDescription:"); +final _objc_msgSend_647 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_commandDescription = objc.registerName("commandDescription"); +final _objc_msgSend_648 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_directParameter = objc.registerName("directParameter"); +late final _sel_setDirectParameter_ = objc.registerName("setDirectParameter:"); + +/// NSScriptObjectSpecifier +class NSScriptObjectSpecifier extends objc.NSObject { + NSScriptObjectSpecifier._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSScriptObjectSpecifier] that points to the same underlying object as [other]. + NSScriptObjectSpecifier.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSScriptObjectSpecifier] that wraps the given raw object pointer. + NSScriptObjectSpecifier.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSScriptObjectSpecifier]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSScriptObjectSpecifier); + } + + /// objectSpecifierWithDescriptor: + static NSScriptObjectSpecifier? objectSpecifierWithDescriptor_( + NSAppleEventDescriptor descriptor) { + final _ret = _objc_msgSend_674(_class_NSScriptObjectSpecifier, + _sel_objectSpecifierWithDescriptor_, descriptor.pointer); + return _ret.address == 0 + ? null + : NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithContainerSpecifier:key: + NSScriptObjectSpecifier initWithContainerSpecifier_key_( + NSScriptObjectSpecifier container, objc.NSString property) { + final _ret = _objc_msgSend_675( + this.pointer, + _sel_initWithContainerSpecifier_key_, + container.pointer, + property.pointer); + return NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithContainerClassDescription:containerSpecifier:key: + NSScriptObjectSpecifier + initWithContainerClassDescription_containerSpecifier_key_( + NSScriptClassDescription classDesc, + NSScriptObjectSpecifier? container, + objc.NSString property) { + final _ret = _objc_msgSend_676( + this.pointer, + _sel_initWithContainerClassDescription_containerSpecifier_key_, + classDesc.pointer, + container?.pointer ?? ffi.nullptr, + property.pointer); + return NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithCoder: + NSScriptObjectSpecifier? initWithCoder_(objc.NSCoder inCoder) { + final _ret = + _objc_msgSend_239(this.pointer, _sel_initWithCoder_, inCoder.pointer); + return _ret.address == 0 + ? null + : NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// childSpecifier + NSScriptObjectSpecifier? get childSpecifier { + final _ret = _objc_msgSend_677(this.pointer, _sel_childSpecifier); + return _ret.address == 0 + ? null + : NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// setChildSpecifier: + set childSpecifier(NSScriptObjectSpecifier? value) { + return _objc_msgSend_678( + this.pointer, _sel_setChildSpecifier_, value?.pointer ?? ffi.nullptr); + } + + /// containerSpecifier + NSScriptObjectSpecifier? get containerSpecifier { + final _ret = _objc_msgSend_677(this.pointer, _sel_containerSpecifier); + return _ret.address == 0 + ? null + : NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// setContainerSpecifier: + set containerSpecifier(NSScriptObjectSpecifier? value) { + return _objc_msgSend_678(this.pointer, _sel_setContainerSpecifier_, + value?.pointer ?? ffi.nullptr); + } + + /// containerIsObjectBeingTested + bool get containerIsObjectBeingTested { + return _objc_msgSend_13(this.pointer, _sel_containerIsObjectBeingTested); + } + + /// setContainerIsObjectBeingTested: + set containerIsObjectBeingTested(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setContainerIsObjectBeingTested_, value); + } + + /// containerIsRangeContainerObject + bool get containerIsRangeContainerObject { + return _objc_msgSend_13(this.pointer, _sel_containerIsRangeContainerObject); + } + + /// setContainerIsRangeContainerObject: + set containerIsRangeContainerObject(bool value) { + return _objc_msgSend_14( + this.pointer, _sel_setContainerIsRangeContainerObject_, value); + } + + /// key + objc.NSString get key { + final _ret = _objc_msgSend_11(this.pointer, _sel_key); + return objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// setKey: + set key(objc.NSString value) { + return _objc_msgSend_12(this.pointer, _sel_setKey_, value.pointer); + } + + /// containerClassDescription + NSScriptClassDescription? get containerClassDescription { + final _ret = + _objc_msgSend_643(this.pointer, _sel_containerClassDescription); + return _ret.address == 0 + ? null + : NSScriptClassDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// setContainerClassDescription: + set containerClassDescription(NSScriptClassDescription? value) { + return _objc_msgSend_679(this.pointer, _sel_setContainerClassDescription_, + value?.pointer ?? ffi.nullptr); + } + + /// keyClassDescription + NSScriptClassDescription? get keyClassDescription { + final _ret = _objc_msgSend_643(this.pointer, _sel_keyClassDescription); + return _ret.address == 0 + ? null + : NSScriptClassDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// indicesOfObjectsByEvaluatingWithContainer:count: + ffi.Pointer indicesOfObjectsByEvaluatingWithContainer_count_( + objc.ObjCObjectBase container, ffi.Pointer count) { + return _objc_msgSend_680( + this.pointer, + _sel_indicesOfObjectsByEvaluatingWithContainer_count_, + container.pointer, + count); + } + + /// objectsByEvaluatingWithContainers: + objc.ObjCObjectBase? objectsByEvaluatingWithContainers_( + objc.ObjCObjectBase containers) { + final _ret = _objc_msgSend_681(this.pointer, + _sel_objectsByEvaluatingWithContainers_, containers.pointer); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// objectsByEvaluatingSpecifier + objc.ObjCObjectBase? get objectsByEvaluatingSpecifier { + final _ret = + _objc_msgSend_83(this.pointer, _sel_objectsByEvaluatingSpecifier); + return _ret.address == 0 + ? null + : objc.ObjCObjectBase(_ret, retain: true, release: true); + } + + /// evaluationErrorNumber + int get evaluationErrorNumber { + return _objc_msgSend_123(this.pointer, _sel_evaluationErrorNumber); + } + + /// setEvaluationErrorNumber: + set evaluationErrorNumber(int value) { + return _objc_msgSend_142( + this.pointer, _sel_setEvaluationErrorNumber_, value); + } + + /// evaluationErrorSpecifier + NSScriptObjectSpecifier? get evaluationErrorSpecifier { + final _ret = _objc_msgSend_677(this.pointer, _sel_evaluationErrorSpecifier); + return _ret.address == 0 + ? null + : NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptor + NSAppleEventDescriptor? get descriptor { + final _ret = _objc_msgSend_682(this.pointer, _sel_descriptor); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSScriptObjectSpecifier init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSScriptObjectSpecifier.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSScriptObjectSpecifier new1() { + final _ret = _objc_msgSend_19(_class_NSScriptObjectSpecifier, _sel_new); + return NSScriptObjectSpecifier.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSScriptObjectSpecifier allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSScriptObjectSpecifier, _sel_allocWithZone_, zone); + return NSScriptObjectSpecifier.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSScriptObjectSpecifier alloc() { + final _ret = _objc_msgSend_19(_class_NSScriptObjectSpecifier, _sel_alloc); + return NSScriptObjectSpecifier.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSScriptObjectSpecifier, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSScriptObjectSpecifier, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSScriptObjectSpecifier, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSScriptObjectSpecifier, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSScriptObjectSpecifier, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSScriptObjectSpecifier, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSScriptObjectSpecifier, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSScriptObjectSpecifier, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSScriptObjectSpecifier, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSScriptObjectSpecifier = + objc.getClass("classes.NSScriptObjectSpecifier"); + +/// NSAppleEventDescriptor +class NSAppleEventDescriptor extends objc.NSObject { + NSAppleEventDescriptor._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSAppleEventDescriptor] that points to the same underlying object as [other]. + NSAppleEventDescriptor.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSAppleEventDescriptor] that wraps the given raw object pointer. + NSAppleEventDescriptor.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSAppleEventDescriptor]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSAppleEventDescriptor); + } + + /// nullDescriptor + static NSAppleEventDescriptor nullDescriptor() { + final _ret = + _objc_msgSend_649(_class_NSAppleEventDescriptor, _sel_nullDescriptor); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithDescriptorType:bytes:length: + static NSAppleEventDescriptor? descriptorWithDescriptorType_bytes_length_( + int descriptorType, ffi.Pointer bytes, int byteCount) { + final _ret = _objc_msgSend_650( + _class_NSAppleEventDescriptor, + _sel_descriptorWithDescriptorType_bytes_length_, + descriptorType, + bytes, + byteCount); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithDescriptorType:data: + static NSAppleEventDescriptor? descriptorWithDescriptorType_data_( + int descriptorType, objc.NSData? data) { + final _ret = _objc_msgSend_651( + _class_NSAppleEventDescriptor, + _sel_descriptorWithDescriptorType_data_, + descriptorType, + data?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithBoolean: + static NSAppleEventDescriptor descriptorWithBoolean_(int boolean) { + final _ret = _objc_msgSend_652( + _class_NSAppleEventDescriptor, _sel_descriptorWithBoolean_, boolean); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithEnumCode: + static NSAppleEventDescriptor descriptorWithEnumCode_(int enumerator) { + final _ret = _objc_msgSend_653(_class_NSAppleEventDescriptor, + _sel_descriptorWithEnumCode_, enumerator); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithInt32: + static NSAppleEventDescriptor descriptorWithInt32_(int signedInt) { + final _ret = _objc_msgSend_654( + _class_NSAppleEventDescriptor, _sel_descriptorWithInt32_, signedInt); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithDouble: + static NSAppleEventDescriptor descriptorWithDouble_(double doubleValue) { + final _ret = _objc_msgSend_655( + _class_NSAppleEventDescriptor, _sel_descriptorWithDouble_, doubleValue); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithTypeCode: + static NSAppleEventDescriptor descriptorWithTypeCode_(int typeCode) { + final _ret = _objc_msgSend_653( + _class_NSAppleEventDescriptor, _sel_descriptorWithTypeCode_, typeCode); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithString: + static NSAppleEventDescriptor descriptorWithString_(objc.NSString string) { + final _ret = _objc_msgSend_656(_class_NSAppleEventDescriptor, + _sel_descriptorWithString_, string.pointer); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithDate: + static NSAppleEventDescriptor descriptorWithDate_(objc.NSDate date) { + final _ret = _objc_msgSend_657( + _class_NSAppleEventDescriptor, _sel_descriptorWithDate_, date.pointer); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithFileURL: + static NSAppleEventDescriptor descriptorWithFileURL_(objc.NSURL fileURL) { + final _ret = _objc_msgSend_658(_class_NSAppleEventDescriptor, + _sel_descriptorWithFileURL_, fileURL.pointer); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// appleEventWithEventClass:eventID:targetDescriptor:returnID:transactionID: + static NSAppleEventDescriptor + appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_( + int eventClass, + int eventID, + NSAppleEventDescriptor? targetDescriptor, + int returnID, + int transactionID) { + final _ret = _objc_msgSend_659( + _class_NSAppleEventDescriptor, + _sel_appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_, + eventClass, + eventID, + targetDescriptor?.pointer ?? ffi.nullptr, + returnID, + transactionID); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// listDescriptor + static NSAppleEventDescriptor listDescriptor() { + final _ret = + _objc_msgSend_649(_class_NSAppleEventDescriptor, _sel_listDescriptor); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// recordDescriptor + static NSAppleEventDescriptor recordDescriptor() { + final _ret = + _objc_msgSend_649(_class_NSAppleEventDescriptor, _sel_recordDescriptor); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// currentProcessDescriptor + static NSAppleEventDescriptor currentProcessDescriptor() { + final _ret = _objc_msgSend_649( + _class_NSAppleEventDescriptor, _sel_currentProcessDescriptor); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithProcessIdentifier: + static NSAppleEventDescriptor descriptorWithProcessIdentifier_( + int processIdentifier) { + final _ret = _objc_msgSend_654(_class_NSAppleEventDescriptor, + _sel_descriptorWithProcessIdentifier_, processIdentifier); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithBundleIdentifier: + static NSAppleEventDescriptor descriptorWithBundleIdentifier_( + objc.NSString bundleIdentifier) { + final _ret = _objc_msgSend_656(_class_NSAppleEventDescriptor, + _sel_descriptorWithBundleIdentifier_, bundleIdentifier.pointer); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// descriptorWithApplicationURL: + static NSAppleEventDescriptor descriptorWithApplicationURL_( + objc.NSURL applicationURL) { + final _ret = _objc_msgSend_658(_class_NSAppleEventDescriptor, + _sel_descriptorWithApplicationURL_, applicationURL.pointer); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithAEDescNoCopy: + NSAppleEventDescriptor initWithAEDescNoCopy_(ffi.Pointer aeDesc) { + final _ret = + _objc_msgSend_660(this.pointer, _sel_initWithAEDescNoCopy_, aeDesc); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: false, release: true); + } + + /// initWithDescriptorType:bytes:length: + NSAppleEventDescriptor? initWithDescriptorType_bytes_length_( + int descriptorType, ffi.Pointer bytes, int byteCount) { + final _ret = _objc_msgSend_661( + this.pointer, + _sel_initWithDescriptorType_bytes_length_, + descriptorType, + bytes, + byteCount); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithDescriptorType:data: + NSAppleEventDescriptor? initWithDescriptorType_data_( + int descriptorType, objc.NSData? data) { + final _ret = _objc_msgSend_662( + this.pointer, + _sel_initWithDescriptorType_data_, + descriptorType, + data?.pointer ?? ffi.nullptr); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// initWithEventClass:eventID:targetDescriptor:returnID:transactionID: + NSAppleEventDescriptor + initWithEventClass_eventID_targetDescriptor_returnID_transactionID_( + int eventClass, + int eventID, + NSAppleEventDescriptor? targetDescriptor, + int returnID, + int transactionID) { + final _ret = _objc_msgSend_663( + this.pointer, + _sel_initWithEventClass_eventID_targetDescriptor_returnID_transactionID_, + eventClass, + eventID, + targetDescriptor?.pointer ?? ffi.nullptr, + returnID, + transactionID); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// initListDescriptor + NSAppleEventDescriptor initListDescriptor() { + final _ret = _objc_msgSend_19(this.pointer, _sel_initListDescriptor); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// initRecordDescriptor + NSAppleEventDescriptor initRecordDescriptor() { + final _ret = _objc_msgSend_19(this.pointer, _sel_initRecordDescriptor); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// aeDesc + ffi.Pointer get aeDesc { + return _objc_msgSend_664(this.pointer, _sel_aeDesc); + } + + /// descriptorType + int get descriptorType { + return _objc_msgSend_644(this.pointer, _sel_descriptorType); + } + + /// data + objc.NSData get data { + final _ret = _objc_msgSend_113(this.pointer, _sel_data); + return objc.NSData.castFromPointer(_ret, retain: true, release: true); + } + + /// booleanValue + int get booleanValue { + return _objc_msgSend_665(this.pointer, _sel_booleanValue); + } + + /// enumCodeValue + int get enumCodeValue { + return _objc_msgSend_644(this.pointer, _sel_enumCodeValue); + } + + /// int32Value + int get int32Value { + return _objc_msgSend_273(this.pointer, _sel_int32Value); + } + + /// doubleValue + double get doubleValue { + return objc.useMsgSendVariants + ? _objc_msgSend_18Fpret(this.pointer, _sel_doubleValue) + : _objc_msgSend_18(this.pointer, _sel_doubleValue); + } + + /// typeCodeValue + int get typeCodeValue { + return _objc_msgSend_644(this.pointer, _sel_typeCodeValue); + } + + /// stringValue + objc.NSString? get stringValue { + final _ret = _objc_msgSend_20(this.pointer, _sel_stringValue); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// dateValue + objc.NSDate? get dateValue { + final _ret = _objc_msgSend_124(this.pointer, _sel_dateValue); + return _ret.address == 0 + ? null + : objc.NSDate.castFromPointer(_ret, retain: true, release: true); + } + + /// fileURLValue + objc.NSURL? get fileURLValue { + final _ret = _objc_msgSend_24(this.pointer, _sel_fileURLValue); + return _ret.address == 0 + ? null + : objc.NSURL.castFromPointer(_ret, retain: true, release: true); + } + + /// eventClass + int get eventClass { + return _objc_msgSend_644(this.pointer, _sel_eventClass); + } + + /// eventID + int get eventID { + return _objc_msgSend_644(this.pointer, _sel_eventID); + } + + /// returnID + int get returnID { + return _objc_msgSend_666(this.pointer, _sel_returnID); + } + + /// transactionID + int get transactionID { + return _objc_msgSend_273(this.pointer, _sel_transactionID); + } + + /// setParamDescriptor:forKeyword: + void setParamDescriptor_forKeyword_( + NSAppleEventDescriptor descriptor, int keyword) { + _objc_msgSend_667(this.pointer, _sel_setParamDescriptor_forKeyword_, + descriptor.pointer, keyword); + } + + /// paramDescriptorForKeyword: + NSAppleEventDescriptor? paramDescriptorForKeyword_(int keyword) { + final _ret = _objc_msgSend_668( + this.pointer, _sel_paramDescriptorForKeyword_, keyword); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// removeParamDescriptorWithKeyword: + void removeParamDescriptorWithKeyword_(int keyword) { + _objc_msgSend_669( + this.pointer, _sel_removeParamDescriptorWithKeyword_, keyword); + } + + /// setAttributeDescriptor:forKeyword: + void setAttributeDescriptor_forKeyword_( + NSAppleEventDescriptor descriptor, int keyword) { + _objc_msgSend_667(this.pointer, _sel_setAttributeDescriptor_forKeyword_, + descriptor.pointer, keyword); + } + + /// attributeDescriptorForKeyword: + NSAppleEventDescriptor? attributeDescriptorForKeyword_(int keyword) { + final _ret = _objc_msgSend_668( + this.pointer, _sel_attributeDescriptorForKeyword_, keyword); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// sendEventWithOptions:timeout:error: + NSAppleEventDescriptor? sendEventWithOptions_timeout_error_( + NSAppleEventSendOptions sendOptions, + double timeoutInSeconds, + ffi.Pointer> error) { + final _ret = _objc_msgSend_670( + this.pointer, + _sel_sendEventWithOptions_timeout_error_, + sendOptions.value, + timeoutInSeconds, + error); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// isRecordDescriptor + bool get isRecordDescriptor { + return _objc_msgSend_13(this.pointer, _sel_isRecordDescriptor); + } + + /// numberOfItems + int get numberOfItems { + return _objc_msgSend_123(this.pointer, _sel_numberOfItems); + } + + /// insertDescriptor:atIndex: + void insertDescriptor_atIndex_(NSAppleEventDescriptor descriptor, int index) { + _objc_msgSend_671(this.pointer, _sel_insertDescriptor_atIndex_, + descriptor.pointer, index); + } + + /// descriptorAtIndex: + NSAppleEventDescriptor? descriptorAtIndex_(int index) { + final _ret = + _objc_msgSend_672(this.pointer, _sel_descriptorAtIndex_, index); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// removeDescriptorAtIndex: + void removeDescriptorAtIndex_(int index) { + _objc_msgSend_143(this.pointer, _sel_removeDescriptorAtIndex_, index); + } + + /// setDescriptor:forKeyword: + void setDescriptor_forKeyword_( + NSAppleEventDescriptor descriptor, int keyword) { + _objc_msgSend_667(this.pointer, _sel_setDescriptor_forKeyword_, + descriptor.pointer, keyword); + } + + /// descriptorForKeyword: + NSAppleEventDescriptor? descriptorForKeyword_(int keyword) { + final _ret = + _objc_msgSend_668(this.pointer, _sel_descriptorForKeyword_, keyword); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// removeDescriptorWithKeyword: + void removeDescriptorWithKeyword_(int keyword) { + _objc_msgSend_669(this.pointer, _sel_removeDescriptorWithKeyword_, keyword); + } + + /// keywordForDescriptorAtIndex: + int keywordForDescriptorAtIndex_(int index) { + return _objc_msgSend_673( + this.pointer, _sel_keywordForDescriptorAtIndex_, index); + } + + /// coerceToDescriptorType: + NSAppleEventDescriptor? coerceToDescriptorType_(int descriptorType) { + final _ret = _objc_msgSend_668( + this.pointer, _sel_coerceToDescriptorType_, descriptorType); + return _ret.address == 0 + ? null + : NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// init + NSAppleEventDescriptor init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSAppleEventDescriptor new1() { + final _ret = _objc_msgSend_19(_class_NSAppleEventDescriptor, _sel_new); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSAppleEventDescriptor allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_NSAppleEventDescriptor, _sel_allocWithZone_, zone); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSAppleEventDescriptor alloc() { + final _ret = _objc_msgSend_19(_class_NSAppleEventDescriptor, _sel_alloc); + return NSAppleEventDescriptor.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSAppleEventDescriptor, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSAppleEventDescriptor, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSAppleEventDescriptor, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_NSAppleEventDescriptor, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSAppleEventDescriptor, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSAppleEventDescriptor, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSAppleEventDescriptor, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSAppleEventDescriptor, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSAppleEventDescriptor, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSAppleEventDescriptor = + objc.getClass("classes.NSAppleEventDescriptor"); +late final _sel_nullDescriptor = objc.registerName("nullDescriptor"); +final _objc_msgSend_649 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_descriptorWithDescriptorType_bytes_length_ = + objc.registerName("descriptorWithDescriptorType:bytes:length:"); +final _objc_msgSend_650 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedInt, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int, ffi.Pointer, int)>(); +late final _sel_descriptorWithDescriptorType_data_ = + objc.registerName("descriptorWithDescriptorType:data:"); +final _objc_msgSend_651 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedInt, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_descriptorWithBoolean_ = + objc.registerName("descriptorWithBoolean:"); +final _objc_msgSend_652 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedChar)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_descriptorWithEnumCode_ = + objc.registerName("descriptorWithEnumCode:"); +final _objc_msgSend_653 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedInt)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_descriptorWithInt32_ = + objc.registerName("descriptorWithInt32:"); +final _objc_msgSend_654 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Int)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_descriptorWithDouble_ = + objc.registerName("descriptorWithDouble:"); +final _objc_msgSend_655 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Double)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, double)>(); +late final _sel_descriptorWithTypeCode_ = + objc.registerName("descriptorWithTypeCode:"); +late final _sel_descriptorWithString_ = + objc.registerName("descriptorWithString:"); +final _objc_msgSend_656 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_descriptorWithDate_ = objc.registerName("descriptorWithDate:"); +final _objc_msgSend_657 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_descriptorWithFileURL_ = + objc.registerName("descriptorWithFileURL:"); +final _objc_msgSend_658 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_appleEventWithEventClass_eventID_targetDescriptor_returnID_transactionID_ = + objc.registerName( + "appleEventWithEventClass:eventID:targetDescriptor:returnID:transactionID:"); +final _objc_msgSend_659 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedInt, + ffi.UnsignedInt, + ffi.Pointer, + ffi.Short, + ffi.Int)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer, + int, + int)>(); +late final _sel_listDescriptor = objc.registerName("listDescriptor"); +late final _sel_recordDescriptor = objc.registerName("recordDescriptor"); +late final _sel_currentProcessDescriptor = + objc.registerName("currentProcessDescriptor"); +late final _sel_descriptorWithProcessIdentifier_ = + objc.registerName("descriptorWithProcessIdentifier:"); +late final _sel_descriptorWithBundleIdentifier_ = + objc.registerName("descriptorWithBundleIdentifier:"); +late final _sel_descriptorWithApplicationURL_ = + objc.registerName("descriptorWithApplicationURL:"); + +@ffi.Packed(2) +final class AEDesc extends ffi.Struct { + @ffi.UnsignedInt() + external int descriptorType; + + external ffi.Pointer> dataHandle; +} + +final class OpaqueAEDataStorageType extends ffi.Opaque {} + +late final _sel_initWithAEDescNoCopy_ = + objc.registerName("initWithAEDescNoCopy:"); +final _objc_msgSend_660 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithDescriptorType_bytes_length_ = + objc.registerName("initWithDescriptorType:bytes:length:"); +final _objc_msgSend_661 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedInt, + ffi.Pointer, + ffi.UnsignedLong)>>() + .asFunction< + instancetype Function(ffi.Pointer, + ffi.Pointer, int, ffi.Pointer, int)>(); +late final _sel_initWithDescriptorType_data_ = + objc.registerName("initWithDescriptorType:data:"); +final _objc_msgSend_662 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedInt, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + int, + ffi.Pointer)>(); +late final _sel_initWithEventClass_eventID_targetDescriptor_returnID_transactionID_ = + objc.registerName( + "initWithEventClass:eventID:targetDescriptor:returnID:transactionID:"); +final _objc_msgSend_663 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedInt, + ffi.UnsignedInt, + ffi.Pointer, + ffi.Short, + ffi.Int)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + int, + int, + ffi.Pointer, + int, + int)>(); +late final _sel_initListDescriptor = objc.registerName("initListDescriptor"); +late final _sel_initRecordDescriptor = + objc.registerName("initRecordDescriptor"); +late final _sel_aeDesc = objc.registerName("aeDesc"); +final _objc_msgSend_664 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_descriptorType = objc.registerName("descriptorType"); +late final _sel_booleanValue = objc.registerName("booleanValue"); +final _objc_msgSend_665 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedChar Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_enumCodeValue = objc.registerName("enumCodeValue"); +late final _sel_int32Value = objc.registerName("int32Value"); +late final _sel_doubleValue = objc.registerName("doubleValue"); +late final _sel_typeCodeValue = objc.registerName("typeCodeValue"); +late final _sel_dateValue = objc.registerName("dateValue"); +late final _sel_fileURLValue = objc.registerName("fileURLValue"); +late final _sel_eventClass = objc.registerName("eventClass"); +late final _sel_eventID = objc.registerName("eventID"); +late final _sel_returnID = objc.registerName("returnID"); +final _objc_msgSend_666 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Short Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + int Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_transactionID = objc.registerName("transactionID"); +late final _sel_setParamDescriptor_forKeyword_ = + objc.registerName("setParamDescriptor:forKeyword:"); +final _objc_msgSend_667 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedInt)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_paramDescriptorForKeyword_ = + objc.registerName("paramDescriptorForKeyword:"); +final _objc_msgSend_668 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedInt)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_removeParamDescriptorWithKeyword_ = + objc.registerName("removeParamDescriptorWithKeyword:"); +final _objc_msgSend_669 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedInt)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_setAttributeDescriptor_forKeyword_ = + objc.registerName("setAttributeDescriptor:forKeyword:"); +late final _sel_attributeDescriptorForKeyword_ = + objc.registerName("attributeDescriptorForKeyword:"); + +enum NSAppleEventSendOptions { + NSAppleEventSendNoReply(1), + NSAppleEventSendQueueReply(2), + NSAppleEventSendWaitForReply(3), + NSAppleEventSendNeverInteract(16), + NSAppleEventSendCanInteract(32), + NSAppleEventSendAlwaysInteract(48), + NSAppleEventSendCanSwitchLayer(64), + NSAppleEventSendDontRecord(4096), + NSAppleEventSendDontExecute(8192), + NSAppleEventSendDontAnnotate(65536), + NSAppleEventSendDefaultOptions(35); + + final int value; + const NSAppleEventSendOptions(this.value); + + static NSAppleEventSendOptions fromValue(int value) => switch (value) { + 1 => NSAppleEventSendNoReply, + 2 => NSAppleEventSendQueueReply, + 3 => NSAppleEventSendWaitForReply, + 16 => NSAppleEventSendNeverInteract, + 32 => NSAppleEventSendCanInteract, + 48 => NSAppleEventSendAlwaysInteract, + 64 => NSAppleEventSendCanSwitchLayer, + 4096 => NSAppleEventSendDontRecord, + 8192 => NSAppleEventSendDontExecute, + 65536 => NSAppleEventSendDontAnnotate, + 35 => NSAppleEventSendDefaultOptions, + _ => throw ArgumentError( + "Unknown value for NSAppleEventSendOptions: $value"), + }; +} + +late final _sel_sendEventWithOptions_timeout_error_ = + objc.registerName("sendEventWithOptions:timeout:error:"); +final _objc_msgSend_670 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.UnsignedLong, + ffi.Double, + ffi.Pointer>)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + int, + double, + ffi.Pointer>)>(); +late final _sel_isRecordDescriptor = objc.registerName("isRecordDescriptor"); +late final _sel_numberOfItems = objc.registerName("numberOfItems"); +late final _sel_insertDescriptor_atIndex_ = + objc.registerName("insertDescriptor:atIndex:"); +final _objc_msgSend_671 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Long)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + int)>(); +late final _sel_descriptorAtIndex_ = objc.registerName("descriptorAtIndex:"); +final _objc_msgSend_672 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_removeDescriptorAtIndex_ = + objc.registerName("removeDescriptorAtIndex:"); +late final _sel_setDescriptor_forKeyword_ = + objc.registerName("setDescriptor:forKeyword:"); +late final _sel_descriptorForKeyword_ = + objc.registerName("descriptorForKeyword:"); +late final _sel_removeDescriptorWithKeyword_ = + objc.registerName("removeDescriptorWithKeyword:"); +late final _sel_keywordForDescriptorAtIndex_ = + objc.registerName("keywordForDescriptorAtIndex:"); +final _objc_msgSend_673 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.UnsignedInt Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_coerceToDescriptorType_ = + objc.registerName("coerceToDescriptorType:"); +late final _sel_objectSpecifierWithDescriptor_ = + objc.registerName("objectSpecifierWithDescriptor:"); +final _objc_msgSend_674 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_initWithContainerSpecifier_key_ = + objc.registerName("initWithContainerSpecifier:key:"); +final _objc_msgSend_675 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_initWithContainerClassDescription_containerSpecifier_key_ = objc + .registerName("initWithContainerClassDescription:containerSpecifier:key:"); +final _objc_msgSend_676 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + instancetype Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_childSpecifier = objc.registerName("childSpecifier"); +final _objc_msgSend_677 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_setChildSpecifier_ = objc.registerName("setChildSpecifier:"); +final _objc_msgSend_678 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_containerSpecifier = objc.registerName("containerSpecifier"); +late final _sel_setContainerSpecifier_ = + objc.registerName("setContainerSpecifier:"); +late final _sel_containerIsObjectBeingTested = + objc.registerName("containerIsObjectBeingTested"); +late final _sel_setContainerIsObjectBeingTested_ = + objc.registerName("setContainerIsObjectBeingTested:"); +late final _sel_containerIsRangeContainerObject = + objc.registerName("containerIsRangeContainerObject"); +late final _sel_setContainerIsRangeContainerObject_ = + objc.registerName("setContainerIsRangeContainerObject:"); +late final _sel_key = objc.registerName("key"); +late final _sel_setKey_ = objc.registerName("setKey:"); +late final _sel_containerClassDescription = + objc.registerName("containerClassDescription"); +late final _sel_setContainerClassDescription_ = + objc.registerName("setContainerClassDescription:"); +final _objc_msgSend_679 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_keyClassDescription = objc.registerName("keyClassDescription"); +late final _sel_indicesOfObjectsByEvaluatingWithContainer_count_ = + objc.registerName("indicesOfObjectsByEvaluatingWithContainer:count:"); +final _objc_msgSend_680 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_objectsByEvaluatingWithContainers_ = + objc.registerName("objectsByEvaluatingWithContainers:"); +final _objc_msgSend_681 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_objectsByEvaluatingSpecifier = + objc.registerName("objectsByEvaluatingSpecifier"); +late final _sel_evaluationErrorNumber = + objc.registerName("evaluationErrorNumber"); +late final _sel_setEvaluationErrorNumber_ = + objc.registerName("setEvaluationErrorNumber:"); +late final _sel_evaluationErrorSpecifier = + objc.registerName("evaluationErrorSpecifier"); +late final _sel_descriptor = objc.registerName("descriptor"); +final _objc_msgSend_682 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_receiversSpecifier = objc.registerName("receiversSpecifier"); +late final _sel_setReceiversSpecifier_ = + objc.registerName("setReceiversSpecifier:"); +late final _sel_evaluatedReceivers = objc.registerName("evaluatedReceivers"); +late final _sel_evaluatedArguments = objc.registerName("evaluatedArguments"); +late final _sel_isWellFormed = objc.registerName("isWellFormed"); +late final _sel_performDefaultImplementation = + objc.registerName("performDefaultImplementation"); +late final _sel_executeCommand = objc.registerName("executeCommand"); +late final _sel_scriptErrorNumber = objc.registerName("scriptErrorNumber"); +late final _sel_setScriptErrorNumber_ = + objc.registerName("setScriptErrorNumber:"); +late final _sel_scriptErrorOffendingObjectDescriptor = + objc.registerName("scriptErrorOffendingObjectDescriptor"); +late final _sel_setScriptErrorOffendingObjectDescriptor_ = + objc.registerName("setScriptErrorOffendingObjectDescriptor:"); +final _objc_msgSend_683 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_scriptErrorExpectedTypeDescriptor = + objc.registerName("scriptErrorExpectedTypeDescriptor"); +late final _sel_setScriptErrorExpectedTypeDescriptor_ = + objc.registerName("setScriptErrorExpectedTypeDescriptor:"); +late final _sel_scriptErrorString = objc.registerName("scriptErrorString"); +late final _sel_setScriptErrorString_ = + objc.registerName("setScriptErrorString:"); +late final _sel_currentCommand = objc.registerName("currentCommand"); +final _objc_msgSend_684 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_appleEvent = objc.registerName("appleEvent"); +late final _sel_suspendExecution = objc.registerName("suspendExecution"); +late final _sel_resumeExecutionWithResult_ = + objc.registerName("resumeExecutionWithResult:"); +late final _sel_createCommandInstance = + objc.registerName("createCommandInstance"); +final _objc_msgSend_685 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_createCommandInstanceWithZone_ = + objc.registerName("createCommandInstanceWithZone:"); +final _objc_msgSend_686 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<_NSZone>)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer<_NSZone>)>(); +late final _sel_supportsCommand_ = objc.registerName("supportsCommand:"); +final _objc_msgSend_687 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Bool Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + bool Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_selectorForCommand_ = objc.registerName("selectorForCommand:"); +final _objc_msgSend_688 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_typeForKey_ = objc.registerName("typeForKey:"); +late final _sel_classDescriptionForKey_ = + objc.registerName("classDescriptionForKey:"); +final _objc_msgSend_689 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_appleEventCodeForKey_ = + objc.registerName("appleEventCodeForKey:"); +late final _sel_keyWithAppleEventCode_ = + objc.registerName("keyWithAppleEventCode:"); +final _objc_msgSend_690 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.UnsignedInt)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_defaultSubcontainerAttributeKey = + objc.registerName("defaultSubcontainerAttributeKey"); +late final _sel_isLocationRequiredToCreateForKey_ = + objc.registerName("isLocationRequiredToCreateForKey:"); +late final _sel_hasPropertyForKey_ = objc.registerName("hasPropertyForKey:"); +late final _sel_hasOrderedToManyRelationshipForKey_ = + objc.registerName("hasOrderedToManyRelationshipForKey:"); +late final _sel_hasReadablePropertyForKey_ = + objc.registerName("hasReadablePropertyForKey:"); +late final _sel_hasWritablePropertyForKey_ = + objc.registerName("hasWritablePropertyForKey:"); +late final _sel_isReadOnlyKey_ = objc.registerName("isReadOnlyKey:"); + +/// NSClassDescription +class NSClassDescription extends objc.NSObject { + NSClassDescription._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [NSClassDescription] that points to the same underlying object as [other]. + NSClassDescription.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [NSClassDescription] that wraps the given raw object pointer. + NSClassDescription.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [NSClassDescription]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_NSClassDescription); + } + + /// registerClassDescription:forClass: + static void registerClassDescription_forClass_( + NSClassDescription description, objc.ObjCObjectBase aClass) { + _objc_msgSend_691( + _class_NSClassDescription, + _sel_registerClassDescription_forClass_, + description.pointer, + aClass.pointer); + } + + /// invalidateClassDescriptionCache + static void invalidateClassDescriptionCache() { + _objc_msgSend_7( + _class_NSClassDescription, _sel_invalidateClassDescriptionCache); + } + + /// classDescriptionForClass: + static NSClassDescription? classDescriptionForClass_( + objc.ObjCObjectBase aClass) { + final _ret = _objc_msgSend_692(_class_NSClassDescription, + _sel_classDescriptionForClass_, aClass.pointer); + return _ret.address == 0 + ? null + : NSClassDescription.castFromPointer(_ret, retain: true, release: true); + } + + /// attributeKeys + objc.NSArray get attributeKeys { + final _ret = _objc_msgSend_33(this.pointer, _sel_attributeKeys); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// toOneRelationshipKeys + objc.NSArray get toOneRelationshipKeys { + final _ret = _objc_msgSend_33(this.pointer, _sel_toOneRelationshipKeys); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// toManyRelationshipKeys + objc.NSArray get toManyRelationshipKeys { + final _ret = _objc_msgSend_33(this.pointer, _sel_toManyRelationshipKeys); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// inverseForRelationshipKey: + objc.NSString? inverseForRelationshipKey_(objc.NSString relationshipKey) { + final _ret = _objc_msgSend_42( + this.pointer, _sel_inverseForRelationshipKey_, relationshipKey.pointer); + return _ret.address == 0 + ? null + : objc.NSString.castFromPointer(_ret, retain: true, release: true); + } + + /// init + NSClassDescription init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return NSClassDescription.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static NSClassDescription new1() { + final _ret = _objc_msgSend_19(_class_NSClassDescription, _sel_new); + return NSClassDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static NSClassDescription allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_NSClassDescription, _sel_allocWithZone_, zone); + return NSClassDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static NSClassDescription alloc() { + final _ret = _objc_msgSend_19(_class_NSClassDescription, _sel_alloc); + return NSClassDescription.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_NSClassDescription, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_NSClassDescription, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_NSClassDescription, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_NSClassDescription, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_NSClassDescription, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_NSClassDescription, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_NSClassDescription, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_NSClassDescription, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_NSClassDescription, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_NSClassDescription = + objc.getClass("classes.NSClassDescription"); +late final _sel_registerClassDescription_forClass_ = + objc.registerName("registerClassDescription:forClass:"); +final _objc_msgSend_691 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + void Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>(); +late final _sel_invalidateClassDescriptionCache = + objc.registerName("invalidateClassDescriptionCache"); +final _objc_msgSend_692 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function( + ffi.Pointer, + ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer, ffi.Pointer)>(); +late final _sel_attributeKeys = objc.registerName("attributeKeys"); +late final _sel_toOneRelationshipKeys = + objc.registerName("toOneRelationshipKeys"); +late final _sel_toManyRelationshipKeys = + objc.registerName("toManyRelationshipKeys"); +late final _sel_inverseForRelationshipKey_ = + objc.registerName("inverseForRelationshipKey:"); + +/// TestClassWrapper +class TestClassWrapper extends objc.NSObject { + TestClassWrapper._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [TestClassWrapper] that points to the same underlying object as [other]. + TestClassWrapper.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [TestClassWrapper] that wraps the given raw object pointer. + TestClassWrapper.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [TestClassWrapper]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_TestClassWrapper); + } + + /// myMethod + TestOtherClassWrapper myMethod() { + final _ret = _objc_msgSend_694(this.pointer, _sel_myMethod); + return TestOtherClassWrapper.castFromPointer(_ret, + retain: true, release: true); + } + + /// create + static TestClassWrapper create() { + final _ret = _objc_msgSend_695(_class_TestClassWrapper, _sel_create); + return TestClassWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// init + TestClassWrapper init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return TestClassWrapper.castFromPointer(_ret, retain: true, release: true); + } + + /// new + static TestClassWrapper new1() { + final _ret = _objc_msgSend_19(_class_TestClassWrapper, _sel_new); + return TestClassWrapper.castFromPointer(_ret, retain: false, release: true); + } + + /// allocWithZone: + static TestClassWrapper allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = + _objc_msgSend_28(_class_TestClassWrapper, _sel_allocWithZone_, zone); + return TestClassWrapper.castFromPointer(_ret, retain: false, release: true); + } + + /// alloc + static TestClassWrapper alloc() { + final _ret = _objc_msgSend_19(_class_TestClassWrapper, _sel_alloc); + return TestClassWrapper.castFromPointer(_ret, retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_TestClassWrapper, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_TestClassWrapper, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_TestClassWrapper, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13(_class_TestClassWrapper, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_TestClassWrapper, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_TestClassWrapper, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_TestClassWrapper, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_TestClassWrapper, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = + _objc_msgSend_19(_class_TestClassWrapper, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_TestClassWrapper = objc.getClass("classes.TestClassWrapper"); + +/// TestOtherClassWrapper +class TestOtherClassWrapper extends objc.NSObject { + TestOtherClassWrapper._(ffi.Pointer pointer, + {bool retain = false, bool release = false}) + : super.castFromPointer(pointer, retain: retain, release: release); + + /// Constructs a [TestOtherClassWrapper] that points to the same underlying object as [other]. + TestOtherClassWrapper.castFrom(objc.ObjCObjectBase other) + : this._(other.pointer, retain: true, release: true); + + /// Constructs a [TestOtherClassWrapper] that wraps the given raw object pointer. + TestOtherClassWrapper.castFromPointer(ffi.Pointer other, + {bool retain = false, bool release = false}) + : this._(other, retain: retain, release: release); + + /// Returns whether [obj] is an instance of [TestOtherClassWrapper]. + static bool isInstance(objc.ObjCObjectBase obj) { + return _objc_msgSend_0( + obj.pointer, _sel_isKindOfClass_, _class_TestOtherClassWrapper); + } + + /// times10WithX: + int times10WithX_(int x) { + return _objc_msgSend_693(this.pointer, _sel_times10WithX_, x); + } + + /// init + TestOtherClassWrapper init() { + final _ret = _objc_msgSend_19(this.pointer, _sel_init); + return TestOtherClassWrapper.castFromPointer(_ret, + retain: true, release: true); + } + + /// new + static TestOtherClassWrapper new1() { + final _ret = _objc_msgSend_19(_class_TestOtherClassWrapper, _sel_new); + return TestOtherClassWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// allocWithZone: + static TestOtherClassWrapper allocWithZone_(ffi.Pointer<_NSZone> zone) { + final _ret = _objc_msgSend_28( + _class_TestOtherClassWrapper, _sel_allocWithZone_, zone); + return TestOtherClassWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// alloc + static TestOtherClassWrapper alloc() { + final _ret = _objc_msgSend_19(_class_TestOtherClassWrapper, _sel_alloc); + return TestOtherClassWrapper.castFromPointer(_ret, + retain: false, release: true); + } + + /// cancelPreviousPerformRequestsWithTarget:selector:object: + static void cancelPreviousPerformRequestsWithTarget_selector_object_( + objc.ObjCObjectBase aTarget, + ffi.Pointer aSelector, + objc.ObjCObjectBase? anArgument) { + _objc_msgSend_29( + _class_TestOtherClassWrapper, + _sel_cancelPreviousPerformRequestsWithTarget_selector_object_, + aTarget.pointer, + aSelector, + anArgument?.pointer ?? ffi.nullptr); + } + + /// cancelPreviousPerformRequestsWithTarget: + static void cancelPreviousPerformRequestsWithTarget_( + objc.ObjCObjectBase aTarget) { + _objc_msgSend_27(_class_TestOtherClassWrapper, + _sel_cancelPreviousPerformRequestsWithTarget_, aTarget.pointer); + } + + /// accessInstanceVariablesDirectly + static bool getAccessInstanceVariablesDirectly() { + return _objc_msgSend_13( + _class_TestOtherClassWrapper, _sel_accessInstanceVariablesDirectly); + } + + /// useStoredAccessor + static bool useStoredAccessor() { + return _objc_msgSend_13( + _class_TestOtherClassWrapper, _sel_useStoredAccessor); + } + + /// keyPathsForValuesAffectingValueForKey: + static objc.NSSet keyPathsForValuesAffectingValueForKey_(objc.NSString key) { + final _ret = _objc_msgSend_30(_class_TestOtherClassWrapper, + _sel_keyPathsForValuesAffectingValueForKey_, key.pointer); + return objc.NSSet.castFromPointer(_ret, retain: true, release: true); + } + + /// automaticallyNotifiesObserversForKey: + static bool automaticallyNotifiesObserversForKey_(objc.NSString key) { + return _objc_msgSend_31(_class_TestOtherClassWrapper, + _sel_automaticallyNotifiesObserversForKey_, key.pointer); + } + + /// setKeys:triggerChangeNotificationsForDependentKey: + static void setKeys_triggerChangeNotificationsForDependentKey_( + objc.NSArray keys, objc.NSString dependentKey) { + _objc_msgSend_32( + _class_TestOtherClassWrapper, + _sel_setKeys_triggerChangeNotificationsForDependentKey_, + keys.pointer, + dependentKey.pointer); + } + + /// classFallbacksForKeyedArchiver + static objc.NSArray classFallbacksForKeyedArchiver() { + final _ret = _objc_msgSend_33( + _class_TestOtherClassWrapper, _sel_classFallbacksForKeyedArchiver); + return objc.NSArray.castFromPointer(_ret, retain: true, release: true); + } + + /// classForKeyedUnarchiver + static objc.ObjCObjectBase classForKeyedUnarchiver() { + final _ret = _objc_msgSend_19( + _class_TestOtherClassWrapper, _sel_classForKeyedUnarchiver); + return objc.ObjCObjectBase(_ret, retain: true, release: true); + } +} + +late final _class_TestOtherClassWrapper = + objc.getClass("classes.TestOtherClassWrapper"); +late final _sel_times10WithX_ = objc.registerName("times10WithX:"); +final _objc_msgSend_693 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Long Function(ffi.Pointer, + ffi.Pointer, ffi.Long)>>() + .asFunction< + int Function(ffi.Pointer, + ffi.Pointer, int)>(); +late final _sel_myMethod = objc.registerName("myMethod"); +final _objc_msgSend_694 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); +late final _sel_create = objc.registerName("create"); +final _objc_msgSend_695 = objc.msgSendPointer + .cast< + ffi.NativeFunction< + ffi.Pointer Function(ffi.Pointer, + ffi.Pointer)>>() + .asFunction< + ffi.Pointer Function( + ffi.Pointer, ffi.Pointer)>(); diff --git a/pkgs/swiftgen/test/integration/classes_test.dart b/pkgs/swiftgen/test/integration/classes_test.dart new file mode 100644 index 0000000000..b4f1ee873b --- /dev/null +++ b/pkgs/swiftgen/test/integration/classes_test.dart @@ -0,0 +1,28 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +@Timeout(const Duration(minutes: 2)) + +import 'dart:ffi'; + +import 'package:test/test.dart'; + +import 'classes_bindings.dart'; +import 'util.dart'; + +void main() { + group('Classes', () { + setUpAll(() async { + final gen = TestGenerator('classes'); + await gen.generateAndVerifyBindings(); + DynamicLibrary.open(gen.dylibFile); + }); + + test('method invocation', () { + final testClass = TestClassWrapper.create(); + final testOtherClass = testClass.myMethod(); + expect(testOtherClass.times10WithX_(123), 1230); + }); + }); +} diff --git a/pkgs/swiftgen/test/integration/temp/.gitignore b/pkgs/swiftgen/test/integration/temp/.gitignore new file mode 100644 index 0000000000..d6b7ef32c8 --- /dev/null +++ b/pkgs/swiftgen/test/integration/temp/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/pkgs/swiftgen/test/integration/util.dart b/pkgs/swiftgen/test/integration/util.dart new file mode 100644 index 0000000000..75716878b5 --- /dev/null +++ b/pkgs/swiftgen/test/integration/util.dart @@ -0,0 +1,94 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'package:path/path.dart' as path; +import 'package:swiftgen/src/util.dart'; +import 'package:swiftgen/swiftgen.dart'; +import 'package:test/test.dart'; + +class TestGenerator { + final String name; + late final String testDir; + late final String tempDir; + late final String inputFile; + late final String wrapperFile; + late final String outputFile; + late final String outputObjCFile; + late final String objInputFile; + late final String objWrapperFile; + late final String objObjCFile; + late final String dylibFile; + late final String actualOutputFile; + + TestGenerator(this.name) { + testDir = + path.absolute(path.join(Directory.current.path, 'test/integration')); + tempDir = path.join(testDir, 'temp'); + inputFile = path.join(testDir, '${name}.swift'); + wrapperFile = path.join(tempDir, '${name}_wrapper.swift'); + outputFile = path.join(tempDir, '${name}_output.dart'); + outputObjCFile = path.join(tempDir, '${name}_output.m'); + objInputFile = path.join(tempDir, '${name}.o'); + objWrapperFile = path.join(tempDir, '${name}_wrapper.o'); + objObjCFile = path.join(tempDir, '${name}_output_m.o'); + dylibFile = path.join(tempDir, '${name}.dylib'); + actualOutputFile = path.join(testDir, '${name}_bindings.dart'); + } + + Future generateBindings() async => generate(Config( + target: await Target.host(), + input: SwiftFileInput( + module: name, + files: [Uri.file(inputFile)], + ), + objcSwiftFile: Uri.file(wrapperFile), + tempDir: Directory(tempDir).uri, + ffigen: FfiGenConfig( + output: Uri.file(outputFile), + outputObjC: Uri.file(outputObjCFile), + objcInterfaces: DeclarationFilters( + shouldInclude: (decl) => decl.originalName.startsWith('Test'), + ), + ), + )); + + Future generateAndVerifyBindings() async { + // Run the generation pipeline. This produces the swift compatability + // wrapper, and the ffigen wrapper. + await generateBindings(); + + expect(File(wrapperFile).existsSync(), isTrue); + expect(File(outputFile).existsSync(), isTrue); + expect(File(outputObjCFile).existsSync(), isTrue); + + // The generation pipeline also creates some obj files as a byproduct. + expect(File(objInputFile).existsSync(), isTrue); + expect(File(objWrapperFile).existsSync(), isTrue); + + // We also need to compile outputObjCFile to an obj file. + await run( + 'clang', + ['-x', 'objective-c', '-c', outputObjCFile, '-fpic', '-o', objObjCFile], + tempDir); + expect(File(objObjCFile).existsSync(), isTrue); + + // Link all the obj files into a dylib. + await run( + 'clang', + [ + '-shared', + '-framework', + 'Foundation', + objInputFile, + objWrapperFile, + objObjCFile, + '-o', + dylibFile + ], + tempDir); + expect(File(dylibFile).existsSync(), isTrue); + } +} diff --git a/pkgs/swiftgen/tool/regen_test_bindings.dart b/pkgs/swiftgen/tool/regen_test_bindings.dart new file mode 100644 index 0000000000..84918a0c89 --- /dev/null +++ b/pkgs/swiftgen/tool/regen_test_bindings.dart @@ -0,0 +1,29 @@ +// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file +// for details. All rights reserved. Use of this source code is governed by a +// BSD-style license that can be found in the LICENSE file. + +import 'dart:io'; + +import 'package:path/path.dart' as path; + +import '../test/integration/util.dart'; + +Future regenIntegrationTestBindings(String name) async { + final gen = TestGenerator(name); + await gen.generateBindings(); + await File(gen.outputFile).copy(gen.actualOutputFile); +} + +const testSuffix = '_test.dart'; +List findAllIntegrationTests() => Directory(TestGenerator('').testDir) + .listSync() + .map((entity) => path.basename(entity.path)) + .where((f) => f.endsWith(testSuffix)) + .map((f) => f.substring(0, f.length - testSuffix.length)) + .toList(); + +Future main(List args) async { + for (final name in args.isEmpty ? findAllIntegrationTests() : args) { + await regenIntegrationTestBindings(name); + } +}