[ML][Single] Added InvokeAsync() implementation
[ACR] https://code.sec.samsung.net/jira/browse/TWDAPI-278
[Verification] Code compiles without errors.
TCT passrate of existing APIs didn't change.
Checked in chrome console with below snippets:
// initialize test data
model = tizen.ml.single.openModel("documents/model.tflite");
var tensorsInfo = new tizen.ml.TensorsInfo();
tensorsInfo.addTensorInfo("tensor", "UINT8", [3, 224, 224]);
var tensorsData = tensorsInfo.getTensorsData();
var tensorsInfoInvalid = new tizen.ml.TensorsInfo();
tensorsInfoInvalid.addTensorInfo("tensor", "UINT8", [3, 125, 125]);
var tensorsDataInvalid = tensorsInfoInvalid.getTensorsData();
function errorCallback(error) {
console.log(error);
}
function successCallback(tensorsDataOut) {
console.log("Inference finished successfully");
console.log(tensorsDataOut.getTensorRawData(0));
tensorsDataOut.dispose();
}
// success
// test1
model.invokeAsync(tensorsData, successCallback, errorCallback);
// test2
model.invokeAsync(tensorsData, successCallback);
// errors
// test3
model.invokeAsync(tensorsData); // TypeMismatchError - sync
// test4
model.invokeAsync(null, successCallback); // TypeMismatchError - sync
// test5
model.invokeAsync(tensorsDataInvalid, successCallback, errorCallback); // AbortError - async
// test6
model.setTimeout(1)
model.invokeAsync(tensorsData, successCallback, errorCallback); // TimeoutError - async
// clear tensorsData
tensorsData.dispose();
tensorsInfo.dispose();
// test7 - use of disposed tesnsorsData
model.invokeAsync(tensorsData, successCallback, errorCallback); // AbortError - sync
// clear other data
tensorsDataInvalid.dispose();
tensorsInfoInvalid.dispose();
model.close();
Change-Id: I59900d7bab9a76939e27d68cb2bcd5434f446b3d