call method

NSProgress? call(
  1. Pointer<Void> arg0,
  2. NSString arg1,
  3. ObjCBlock<Void Function(NSData?, NSError?)> arg2
)

Implementation

objc.NSProgress? call(
  ffi.Pointer<ffi.Void> arg0,
  objc.NSString arg1,
  objc.ObjCBlock<ffi.Void Function(objc.NSData?, objc.NSError?)> arg2,
) =>
    ref.pointer.ref.invoke
            .cast<
              ffi.NativeFunction<
                ffi.Pointer<objc.ObjCObject> Function(
                  ffi.Pointer<objc.ObjCBlockImpl> block,
                  ffi.Pointer<ffi.Void> arg0,
                  ffi.Pointer<objc.ObjCObject> arg1,
                  ffi.Pointer<objc.ObjCBlockImpl> arg2,
                )
              >
            >()
            .asFunction<
              ffi.Pointer<objc.ObjCObject> Function(
                ffi.Pointer<objc.ObjCBlockImpl>,
                ffi.Pointer<ffi.Void>,
                ffi.Pointer<objc.ObjCObject>,
                ffi.Pointer<objc.ObjCBlockImpl>,
              )
            >()(ref.pointer, arg0, arg1.ref.pointer, arg2.ref.pointer)
            .address ==
        0
    ? null
    : objc.NSProgress.castFromPointer(
        ref.pointer.ref.invoke
            .cast<
              ffi.NativeFunction<
                ffi.Pointer<objc.ObjCObject> Function(
                  ffi.Pointer<objc.ObjCBlockImpl> block,
                  ffi.Pointer<ffi.Void> arg0,
                  ffi.Pointer<objc.ObjCObject> arg1,
                  ffi.Pointer<objc.ObjCBlockImpl> arg2,
                )
              >
            >()
            .asFunction<
              ffi.Pointer<objc.ObjCObject> Function(
                ffi.Pointer<objc.ObjCBlockImpl>,
                ffi.Pointer<ffi.Void>,
                ffi.Pointer<objc.ObjCObject>,
                ffi.Pointer<objc.ObjCBlockImpl>,
              )
            >()(ref.pointer, arg0, arg1.ref.pointer, arg2.ref.pointer),
        retain: true,
        release: true,
      );