registerModelForDevice method
ModelInfo?
registerModelForDevice(
- RegisterModelFromUrlRequest request
Implementation
ModelInfo? registerModelForDevice(RegisterModelFromUrlRequest request) {
final fn = _catalogRegisterModelProto;
if (fn == null) {
throw StateError(
'rac_qhexrt_catalog_register_model_proto is unavailable',
);
}
final requestBytes = QhexrtCatalogWire.encodeRequest(request);
final requestPtr = DartBridgeProtoUtils.copyBytes(requestBytes);
final registered = calloc<Int32>();
final out = calloc<RacProtoBuffer>();
try {
RacNative.bindings.rac_proto_buffer_init(out);
final code = fn(requestPtr, requestBytes.length, registered, out);
DartBridgeProtoUtils.ensureSuccess(
out,
code,
'rac_qhexrt_catalog_register_model_proto',
);
if (registered.value != RAC_TRUE) return null;
if (out.ref.data == nullptr || out.ref.size == 0) {
throw StateError(
'QHexRT registration returned an empty ModelInfo payload',
);
}
return DartBridgeProtoUtils.decodeBuffer<ModelInfo>(
out,
ModelInfo.fromBuffer,
);
} finally {
RacNative.bindings.rac_proto_buffer_free(out);
calloc.free(requestPtr);
calloc.free(registered);
calloc.free(out);
}
}