availableProviders method
Gets all available providers.
Implementation
List<OrtProvider> availableProviders() {
final providersPtr = calloc<ffi.Pointer<ffi.Pointer<ffi.Char>>>();
final lengthPtr = calloc<ffi.Int>();
var statusPtr = ortApiPtr.ref.GetAvailableProviders.asFunction<
bg.OrtStatusPtr Function(
ffi.Pointer<ffi.Pointer<ffi.Pointer<ffi.Char>>>,
ffi.Pointer<ffi.Int>)>()(providersPtr, lengthPtr);
OrtStatus.checkOrtStatus(statusPtr);
int length = lengthPtr.value;
final list = List<OrtProvider>.generate(length, (index) {
final provider = providersPtr.value[index].cast<Utf8>().toDartString();
return OrtProvider.valueOf(provider);
});
statusPtr = ortApiPtr.ref.ReleaseAvailableProviders.asFunction<
bg.OrtStatusPtr Function(ffi.Pointer<ffi.Pointer<ffi.Char>>,
int)>()(providersPtr.value, lengthPtr.value);
OrtStatus.checkOrtStatus(statusPtr);
calloc.free(providersPtr);
calloc.free(lengthPtr);
return list;
}