NativeMessageBytes constructor

NativeMessageBytes(
  1. DynamicLibrary library
)

Resolves the optional, paired ownership entry points in library.

Implementation

NativeMessageBytes(ffi.DynamicLibrary library)
  : messageHandleAbi = NativeMessageHandleAbi.detect(library) {
  if (messageHandleAbi == NativeMessageHandleAbi.wide) {
    _export = library.lookupFunction<_ExportWideNative, _ExportDart>(
      'ct_message_buffer_export_wide',
    );
  } else {
    if (!library.providesSymbol('ct_message_buffer_export') ||
        !library.providesSymbol('ct_message_buffer_free')) {
      return;
    }
    _export = library.lookupFunction<_ExportNative, _ExportDart>(
      'ct_message_buffer_export',
    );
  }
  _finalizer = library.lookup<ffi.NativeFinalizerFunction>(
    'ct_message_buffer_free',
  );
  _free = _finalizer!.asFunction<void Function(ffi.Pointer<ffi.Void>)>();
}