TensorsInfo.prototype.getTensorSize = function() {
_CheckIfTensorsInfoNotDisposed(this._id);
- throw new WebAPIException(WebAPIException.ABORT_ERR, 'Not implemented');
+ var args = validator_.validateArgs(arguments, [
+ {
+ name: 'index',
+ type: types_.LONG
+ }
+ ]);
+
+ if (!args.has.index) {
+ throw new WebAPIException(
+ WebAPIException.INVALID_VALUES_ERR,
+ 'Invalid parameter: index is undefined'
+ );
+ }
+
+ var callArgs = {
+ index: args.index,
+ tensorsInfoId: this._id
+ };
+
+ var result = native_.callSync('MLTensorsInfoGetTensorSize', callArgs);
+
+ if (native_.isFailure(result)) {
+ throw native_.getErrorObjectAndValidate(
+ result,
+ TensorsInfoGettersSettersValidExceptions,
+ AbortError
+ );
+ }
+ return native_.getResultObject(result);
};
TensorsInfo.prototype.getTensorsData = function() {
REGISTER_METHOD(MLTensorsInfoSetDimensions);
REGISTER_METHOD(MLTensorsInfoGetTensorName);
REGISTER_METHOD(MLTensorsInfoSetTensorName);
+ REGISTER_METHOD(MLTensorsInfoGetTensorSize);
REGISTER_METHOD(MLTensorsInfoGetTensorType);
REGISTER_METHOD(MLTensorsInfoSetTensorType);
REGISTER_METHOD(MLTensorsInfoClone);
ReportSuccess(out);
}
+void MlInstance::MLTensorsInfoGetTensorSize(const picojson::value& args, picojson::object& out) {
+ ScopeLogger("args: %s", args.serialize().c_str());
+ CHECK_ARGS(args, kTensorsInfoId, double, out);
+ CHECK_ARGS(args, kIndex, double, out);
+
+ int tensorsInfoId = static_cast<int>(args.get(kTensorsInfoId).get<double>());
+ TensorsInfo* tensorsInfo = GetTensorsInfoManager().GetTensorsInfo(tensorsInfoId);
+ if (nullptr == tensorsInfo) {
+ LogAndReportError(PlatformResult(ErrorCode::ABORT_ERR, "Internal TensorsInfo error"), &out,
+ ("Could not find TensorsInfo handle with given id: %d", tensorsInfoId));
+ return;
+ }
+ int index = static_cast<int>(args.get(kIndex).get<double>());
+ size_t size;
+ PlatformResult result = tensorsInfo->NativeGetTensorSize(index, &size);
+ if (!result) {
+ LogAndReportError(result, &out);
+ return;
+ }
+
+ picojson::value val = picojson::value{static_cast<double>(size)};
+ ReportSuccess(val, out);
+}
+
void MlInstance::MLTensorsInfoGetTensorType(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
CHECK_ARGS(args, kTensorsInfoId, double, out);
void MLTensorsInfoSetDimensions(const picojson::value& args, picojson::object& out);
void MLTensorsInfoGetTensorName(const picojson::value& args, picojson::object& out);
void MLTensorsInfoSetTensorName(const picojson::value& args, picojson::object& out);
+ void MLTensorsInfoGetTensorSize(const picojson::value& args, picojson::object& out);
void MLTensorsInfoGetTensorType(const picojson::value& args, picojson::object& out);
void MLTensorsInfoSetTensorType(const picojson::value& args, picojson::object& out);
void MLTensorsInfoClone(const picojson::value& args, picojson::object& out);