getMetadatas method

String getMetadatas(
  1. String key
)

Implementation

String getMetadatas(String key) {
  final metaPtr = calloc<ffi.Pointer<bg.OrtModelMetadata>>();
  var statusPtr = OrtEnv.instance.ortApiPtr.ref.SessionGetModelMetadata
          .asFunction<
              bg.OrtStatusPtr Function(ffi.Pointer<bg.OrtSession>,
                  ffi.Pointer<ffi.Pointer<bg.OrtModelMetadata>>)>()(
      _ptr, metaPtr);
  OrtStatus.checkOrtStatus(statusPtr);
  final meta = metaPtr.value;
  final namePtrPtr = calloc<ffi.Pointer<ffi.Char>>();
  statusPtr = OrtEnv
          .instance.ortApiPtr.ref.ModelMetadataLookupCustomMetadataMap
          .asFunction<
              bg.OrtStatusPtr Function(
                  ffi.Pointer<bg.OrtModelMetadata> model_metadata,
                  ffi.Pointer<bg.OrtAllocator> allocator,
                  ffi.Pointer<ffi.Char> key,
                  ffi.Pointer<ffi.Pointer<ffi.Char>> value)>()(
      meta,
      OrtAllocator.instance.ptr,
      key.toNativeUtf8().cast<ffi.Char>(),
      namePtrPtr);
  final name = namePtrPtr.value.cast<Utf8>().toDartString();
  calloc.free(metaPtr);
  calloc.free(namePtrPtr);
  return name;
}