| // ignore_for_file: always_specify_types |
| // ignore_for_file: camel_case_types |
| // ignore_for_file: non_constant_identifier_names |
| |
| // AUTO GENERATED FILE, DO NOT EDIT. |
| // |
| // Generated by `package:ffigen`. |
| // ignore_for_file: type=lint |
| import 'dart:ffi' as ffi; |
| |
| /// Bindings for `src/{{projectName}}.h`. |
| /// |
| /// Regenerate bindings with `dart run ffigen --config ffigen.yaml`. |
| /// |
| class {{pluginDartClass}}Bindings { |
| /// Holds the symbol lookup function. |
| final ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) |
| _lookup; |
| |
| /// The symbols are looked up in [dynamicLibrary]. |
| {{pluginDartClass}}Bindings(ffi.DynamicLibrary dynamicLibrary) |
| : _lookup = dynamicLibrary.lookup; |
| |
| /// The symbols are looked up with [lookup]. |
| {{pluginDartClass}}Bindings.fromLookup( |
| ffi.Pointer<T> Function<T extends ffi.NativeType>(String symbolName) |
| lookup) |
| : _lookup = lookup; |
| |
| /// A very short-lived native function. |
| /// |
| /// For very short-lived functions, it is fine to call them on the main isolate. |
| /// They will block the Dart execution while running the native function, so |
| /// only do this for native functions which are guaranteed to be short-lived. |
| int sum( |
| int a, |
| int b, |
| ) { |
| return _sum( |
| a, |
| b, |
| ); |
| } |
| |
| late final _sumPtr = |
| _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int, ffi.Int)>>( |
| 'sum'); |
| late final _sum = _sumPtr.asFunction<int Function(int, int)>(); |
| |
| /// A longer lived native function, which occupies the thread calling it. |
| /// |
| /// Do not call these kind of native functions in the main isolate. They will |
| /// block Dart execution. This will cause dropped frames in Flutter applications. |
| /// Instead, call these native functions on a separate isolate. |
| int sum_long_running( |
| int a, |
| int b, |
| ) { |
| return _sum_long_running( |
| a, |
| b, |
| ); |
| } |
| |
| late final _sum_long_runningPtr = |
| _lookup<ffi.NativeFunction<ffi.Int Function(ffi.Int, ffi.Int)>>( |
| 'sum_long_running'); |
| late final _sum_long_running = |
| _sum_long_runningPtr.asFunction<int Function(int, int)>(); |
| } |