OrtValueSequence constructor
OrtValueSequence(
- Pointer<
OrtValue> ptr
Implementation
OrtValueSequence(ffi.Pointer<bg.OrtValue> ptr) {
_ptr = ptr;
final valueCountPtr = calloc<ffi.Size>();
var statusPtr = OrtEnv.instance.ortApiPtr.ref.GetValueCount.asFunction<
bg.OrtStatusPtr Function(ffi.Pointer<bg.OrtValue>,
ffi.Pointer<ffi.Size>)>()(_ptr, valueCountPtr);
OrtStatus.checkOrtStatus(statusPtr);
_valueCount = valueCountPtr.value;
calloc.free(valueCountPtr);
if (_valueCount <= 0) {
return;
}
final firstElementPtrPtr = calloc<ffi.Pointer<bg.OrtValue>>();
final firstElementPtr = _getOrtValue(_ptr, 0, firstElementPtrPtr);
final onnxTypePtr = calloc<ffi.Int32>();
statusPtr = OrtEnv.instance.ortApiPtr.ref.GetValueType.asFunction<
bg.OrtStatusPtr Function(ffi.Pointer<bg.OrtValue>,
ffi.Pointer<ffi.Int32>)>()(firstElementPtr, onnxTypePtr);
OrtStatus.checkOrtStatus(statusPtr);
_onnxType = ONNXType.valueOf(onnxTypePtr.value);
if (_onnxType == ONNXType.tensor) {
_tensorInfo = OrtTensorTypeAndShapeInfo(firstElementPtr);
} else if (_onnxType == ONNXType.map) {
// final infoMap = _createMapInfo(firstElementPtr);
// _firstMapKeyInfo = infoMap.entries.first.key;
// _firstMapValueInfo = infoMap.entries.first.value;
}
_releaseOrtValue(firstElementPtr);
calloc.free(firstElementPtrPtr);
calloc.free(onnxTypePtr);
}