var AbortError = new WebAPIException('AbortError', 'An unknown error occurred');
-// Constants
var MAX_TENSORS_INFO_COUNT = 16;
-// TensorRawData
-
var TensorRawData = function(data, size, shape) {
Object.defineProperties(this, {
data: {
});
}
-// TensorsData
-
var _ValidTensorsDataIds = new Set();
function _CheckIfTensorsDataNotDisposed(id) {
);
}
- // TODO: modify StringToArray to accept also float types, not only int
var data = privUtils_.StringToArray(result.buffer, Uint8Array);
var ArrayType = _GetBufferTypeFromTensorType(result.type);
var shape = result.shape;
_CheckIfArrayHasOnlyNumbersAndThrow(argsLocSize.location, 'location');
_CheckIfArrayHasOnlyNumbersAndThrow(argsLocSize.size, 'size');
- // TODO: modify ArrayToString to accept also float types, not only int
var encodedData = privUtils_.ArrayToString(new Uint8Array(buffer.buffer));
var callArgs = {
index: argsIndex.index,
_InvalidateTensorsData(this);
};
-// TensorsInfo
-
function tensorsInfoCountGetter(id) {
var result = native_.callSync('MLTensorsInfoCountGetter', { tensorsInfoId: id });
var kSinkListenerNamePrefix = 'MLPipelineSinkListener';
var kCustomFilterListenerNamePrefix = 'MLPipelineCustomFilterListener';
-//PipelineManager::createPipeline() begin
var ValidPipelineDisposeExceptions = [
'InvalidStateError',
'NotFoundError',
return pipeline;
};
-//PipelineManager::createPipeline() end
-//Pipeline::state begin
var ValidPipelineStateExceptions = ['NotSupportedError', 'AbortError'];
var Pipeline = function(id) {
Object.defineProperties(this, {
}
});
};
-//Pipeline::state end
-//Pipeline::start() begin
var ValidPipelineStartStopExceptions = [
'NotFoundError',
'NotSupportedError',
);
}
};
-//Pipeline::start() end
-//Pipeline::stop() begin
Pipeline.prototype.stop = function() {
var nativeArgs = {
id: this._id
);
}
};
-//Pipeline::stop() end
-//Pipeline::dispose() begin
Pipeline.prototype.dispose = function() {
var result = native_.callSync('MLPipelineDispose', { id: this._id });
);
}
};
-//Pipeline::dispose() end
-//Pipeline::getNodeInfo() begin
var NodeInfo = function(name, pipeline_id) {
Object.defineProperties(this, {
name: { enumerable: true, writable: false, value: name },
return new NodeInfo(args.name, this._id);
};
-//Pipeline::getNodeInfo() end
-//Pipeline::getSource() begin
var ValidInputTensorsInfoExceptions = ['NotFoundError', 'AbortError'];
function Source(name, pipeline_id) {
Object.defineProperties(this, {
return new Source(args.name, this._id);
};
-//Pipeline::getSource() end
-//Pipeline::getSwitch() begin
function Switch(name, type, pipeline_id) {
Object.defineProperties(this, {
name: {
return new Switch(nativeArgs.name, result.type, this._id);
};
-//Pipeline::getSwitch() end
-//Pipeline::getValve() begin
var ValidValveIsOpenAndSetOpenExceptions = [
'NotFoundError',
'NotSupportedError',
return new Valve(nativeArgs.name, this._id);
};
-//Pipeline::getValve() end
-//Pipeline::registerSinkListener() begin
var ValidRegisterSinkListenerExceptions = [
'InvalidValuesError',
'NotFoundError',
);
}
};
-//Pipeline::registerSinkListener() end
-//Pipeline::unregisterSinkListener() begin
var ValidUnregisterSinkListenerExceptions = [
'InvalidValuesError',
'NotFoundError',
var listenerName = kSinkListenerNamePrefix + args.name;
native_.removeListener(listenerName);
};
-//Pipeline::unregisterSinkListener() end
var PropertyType = {
BOOLEAN: 'BOOLEAN',
UINT64: 'UINT64',
STRING: 'STRING'
};
-//NodeInfo::getProperty() begin
var ValidNodeInfoGetPropertyExceptions = [
'InvalidValuesError',
'NotFoundError',
return result.property;
};
-//NodeInfo::getProperty() end
-//NodeInfo::setProperty() begin
var ValidNodeInfoSetPropertyExceptions = [
'InvalidValuesError',
'NotFoundError',
);
}
};
-//NodeInfo::setProperty() end
-//Source::inputData() begin
var ValidSourceInputDataExceptions = [
'InvalidStateError',
'NotFoundError',
return result.result;
};
-//Source::inputData() end
-//Switch::getPadList() begin
var ValidSwitchGetPadListExceptions = [
'InvalidStateError',
'NotFoundError',
return result.result;
};
-//Switch::getPadList() end
-//Switch::select() begin
var ValidSwitchSelectExceptions = [
'InvalidValuesError',
'NotFoundError',
);
}
};
-//Switch::select() end
-//Valve::setOpen() begin
Valve.prototype.setOpen = function() {
var args = validator_.validateArgs(arguments, [
{
);
}
};
-//Valve::setOpen() end
var MachineLearningPipeline = function() {};
MachineLearningPipeline.prototype.createPipeline = CreatePipeline;
-//Pipeline::registerCustomFilter() begin
var ValidRegisterCustomFilterExceptions = [
'InvalidValuesError',
'NotSupportedError',
);
}
};
-//Pipeline::registerCustomFilter() end
-//Pipeline::unregisterCustomFilter() begin
var ValidUnregisterCustomFilterExceptions = [
'InvalidStateError',
'InvalidValuesError',
var customFilterListenerName = kCustomFilterListenerNamePrefix + args.name;
native_.removeListener(customFilterListenerName);
};
-//Pipeline::unregisterCustomFilter() end
-
-// ML Pipeline API
var MachineLearningSingle = function() {};
-// MachineLearningSingle::openModel()
var ValidOpenModelExceptions = [
'InvalidValuesError',
'NotFoundError',
return new SingleShot(result.id);
};
-// MachineLearningSingle::openModelAsync()
var ValidOpenModelAsyncCallbackErrors = [
'InvalidValuesError',
'NotFoundError',
}
};
-// SingleShot interface (input & output)
function checkSingleShotNotClosed(singleshot) {
if (singleshot._id === undefined) {
throw new WebAPIException(
namespace ml {
namespace {
-const std::string kNnfw = "nnfw";
+const int kCustomFilterSuccess = 0;
+const int kNoId = -1;
+const std::string kAsync = "async";
+const std::string kBOOLEAN = "BOOLEAN";
+const std::string kBuffer = "buffer";
+const std::string kCallbackId = "callbackId";
+const std::string kDataId = "dataId";
+const std::string kDefinition = "definition";
+const std::string kDimensions = "dimensions";
+const std::string kFwType = "fwType";
+const std::string kGetInputMode = "getInputMode";
const std::string kHw = "hw";
-const std::string kTensorsInfoId = "tensorsInfoId";
-const std::string kTensorsDataId = "tensorsDataId";
+const std::string kHwType = "hwType";
+const std::string kId = "id";
const std::string kIndex = "index";
-const std::string kType = "type";
+const std::string kInputTensorsInfoId = "inputTensorsInfoId";
+const std::string kInTensorsInfo = "inTensorsInfo";
+const std::string kIsDynamicMode = "isDynamicMode";
+const std::string kListenerName = "listenerName";
+const std::string kLocation = "location";
+const std::string kModelPath = "modelPath";
const std::string kName = "name";
-const std::string kDimensions = "dimensions";
-const std::string kId = "id";
-const std::string kDefinition = "definition";
-const std::string kPipelineStateChangeListenerName = "listenerName";
+const std::string kNnfw = "nnfw";
+const std::string kNodeName = "nodeName";
+const std::string kOpen = "open";
const std::string kOtherId = "otherId";
+const std::string kOutputTensorsInfoId = "outputTensorsInfoId";
+const std::string kOutTensorsInfo = "outTensorsInfo";
const std::string kPadName = "padName";
-const std::string kOpen = "open";
-const std::string kNodeName = "nodeName";
+const std::string kPipelineStateChangeListenerName = "listenerName";
const std::string kProperty = "property";
-const std::string kBOOLEAN = "BOOLEAN";
-const std::string kSTRING = "STRING";
-const std::string kBuffer = "buffer";
-const std::string kSize = "size";
-const std::string kLocation = "location";
+const std::string kRequestId = "requestId";
const std::string kShape = "shape";
-const std::string kListenerName = "listenerName";
-const std::string kInputTensorsInfoId = "inputTensorsInfoId";
-const std::string kOutputTensorsInfoId = "outputTensorsInfoId";
+const std::string kSize = "size";
const std::string kStatus = "status";
-const std::string kDataId = "dataId";
-const std::string kRequestId = "requestId";
-const int kCustomFilterSuccess = 0;
+const std::string kSTRING = "STRING";
+const std::string kTensorsDataId = "tensorsDataId";
+const std::string kTensorsInfoId = "tensorsInfoId";
+const std::string kTimeout = "timeout";
+const std::string kType = "type";
+const std::string kValue = "value";
} // namespace
using namespace common;
#define REGISTER_METHOD(M) RegisterSyncHandler(#M, std::bind(&MlInstance::M, this, _1, _2))
- // Common ML API begin
REGISTER_METHOD(MLCheckNNFWAvailability);
REGISTER_METHOD(MLTensorsInfoCountGetter);
REGISTER_METHOD(MLTensorsInfoAddTensorInfo);
REGISTER_METHOD(MLTensorsDataGetTensorType);
REGISTER_METHOD(MLTensorsDataSetTensorRawData);
- // Single API begin
REGISTER_METHOD(MLSingleManagerOpenModel);
REGISTER_METHOD(MLSingleShotGetTensorsInfo);
REGISTER_METHOD(MLSingleShotSetInputInfo);
REGISTER_METHOD(MLSingleShotSetTimeout);
REGISTER_METHOD(MLSingleShotClose);
- // Single API end
-
- // Pipeline API begin
REGISTER_METHOD(MLPipelineManagerCreatePipeline);
REGISTER_METHOD(MLPipelineGetState);
REGISTER_METHOD(MLPipelineDispose);
REGISTER_METHOD(MLPipelineManagerRegisterCustomFilter);
REGISTER_METHOD(MLPipelineManagerCustomFilterOutput);
REGISTER_METHOD(MLPipelineManagerUnregisterCustomFilter);
-// Pipeline API end
#undef REGISTER_METHOD
}
return tensors_data_manager_;
}
-// Common ML API begin
void MlInstance::MLCheckNNFWAvailability(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
CHECK_EXIST(args, kNnfw, out)
ReportSuccess(out);
}
-// Common ML API end
-
-// Single API begin
-
-// TODO move to the up section with field names
-namespace {
-const std::string kTimeout = "timeout";
-const std::string kModelPath = "modelPath";
-const std::string kInTensorsInfo = "inTensorsInfo";
-const std::string kOutTensorsInfo = "outTensorsInfo";
-const std::string kFwType = "fwType";
-const std::string kHwType = "hwType";
-const std::string kIsDynamicMode = "isDynamicMode";
-const std::string kValue = "value";
-const std::string kCallbackId = "callbackId";
-const std::string kAsync = "async";
-
-const int kNoId = -1;
-} // namespace
void MlInstance::MLSingleManagerOpenModel(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
}
}
-// SingleShot input/output
-// TODO move to the up section with field names
-namespace {
-const std::string kGetInputMode = "getInputMode";
-} // namespace
void MlInstance::MLSingleShotGetTensorsInfo(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
CHECK_ARGS(args, kId, double, out);
ReportSuccess(out);
}
-// Single API end
-
-// Pipeline API begin
-
-// PipelineManager::createPipeline() begin
namespace {
bool CreatePipelineArgumentsAreInvalid(const picojson::value& args) {
ReportSuccess(out);
}
-// PipelineManager::createPipeline() end
-// Pipeline::state begin
void MlInstance::MLPipelineGetState(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(state_value, out);
}
-// Pipeline::state end
-// Pipeline::start() begin
void MlInstance::MLPipelineStart(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::start() end
-// Pipeline::stop() begin
void MlInstance::MLPipelineStop(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::stop() end
-// Pipeline::dispose() begin
void MlInstance::MLPipelineDispose(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::dispose() end
-// Pipeline::getNodeInfo() begin
void MlInstance::MLPipelineGetNodeInfo(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::getNodeInfo() end
-// Pipeline::getSource() begin
void MlInstance::MLPipelineGetSource(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::getSource() end
-// Pipeline::getSwitch() begin
void MlInstance::MLPipelineGetSwitch(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
out["type"] = picojson::value{type};
ReportSuccess(out);
}
-// Pipeline::getSwitch() end
-// Pipeline::getValve() begin
void MlInstance::MLPipelineGetValve(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::getValve() end
-// Pipeline::registerSinkCallback() begin
void MlInstance::MLPipelineRegisterSinkListener(const picojson::value& args,
picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::registerSinkCallback() end
-// Pipeline::unregisterSinkCallback() begin
void MlInstance::MLPipelineUnregisterSinkListener(const picojson::value& args,
picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::unregisterSinkCallback() end
-// Pipeline::registerCustomFilter() begin
void MlInstance::MLPipelineManagerRegisterCustomFilter(const picojson::value& args,
picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::registerCustomFilter() end
void MlInstance::MLPipelineManagerCustomFilterOutput(const picojson::value& args,
picojson::object& out) {
ReportSuccess(out);
}
-// Pipeline::unregisterCustomFilter() begin
void MlInstance::MLPipelineManagerUnregisterCustomFilter(const picojson::value& args,
picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Pipeline::unregisterCustomFilter() end
-// NodeInfo::getProperty() begin
void MlInstance::MLPipelineNodeInfoGetProperty(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// NodeInfo::getProperty() end
-// NodeInfo::setProperty() begin
void MlInstance::MLPipelineNodeInfoSetProperty(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// NodeInfo::setProperty() end
-// Source::inputTensorsInfo begin
void MlInstance::MLPipelineGetInputTensorsInfo(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: [%s]", args.serialize().c_str());
ReportSuccess(out);
}
-// Source::inputTensorsInfo end
-// Source::inputData() begin
void MlInstance::MLPipelineSourceInputData(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: [%s]", args.serialize().c_str());
ReportSuccess(out);
}
-// Source::inputData() end
-// Switch::getPadList() begin
void MlInstance::MLPipelineSwitchGetPadList(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: [%s]", args.serialize().c_str());
ReportSuccess(picojson::value{std::move(pad_list)}, out);
}
-// Switch::getPadList() end
-// Switch::select() end
void MlInstance::MLPipelineSwitchSelect(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: [%s]", args.serialize().c_str());
ReportSuccess(out);
}
-// Switch::select() end
-// Valve::setOpen() begin
void MlInstance::MLPipelineValveSetOpen(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(out);
}
-// Valve::setOpen() end
-// Valve::isOpen() begin
void MlInstance::MLPipelineValveIsOpen(const picojson::value& args, picojson::object& out) {
ScopeLogger("args: %s", args.serialize().c_str());
ReportSuccess(picojson::value{open}, out);
}
-// Valve::isOpen() end
-
-// Pipeline API end
#undef CHECK_EXIST
#undef CHECK_TYPE
TensorsDataManager& GetTensorsDataManager();
private:
- // Common ML API begin
void MLCheckNNFWAvailability(const picojson::value& args, picojson::object& out);
void MLTensorsInfoCountGetter(const picojson::value& args, picojson::object& out);
void MLTensorsInfoCreate(const picojson::value& args, picojson::object& out);
TensorsInfoManager tensors_info_manager_;
TensorsDataManager tensors_data_manager_;
common::Worker worker_;
- // Common ML API end
- // Single API begin
SingleManager single_manager_;
void MLSingleManagerOpenModel(const picojson::value& args, picojson::object& out);
void MLSingleShotGetTensorsInfo(const picojson::value& args, picojson::object& out);
void MLSingleShotSetValue(const picojson::value& args, picojson::object& out);
void MLSingleShotSetTimeout(const picojson::value& args, picojson::object& out);
void MLSingleShotClose(const picojson::value& args, picojson::object& out);
- // Single API end
- // Pipeline API begin
/*
* ########## IMPORTANT ##########
* Ensure, that pipeline_manager_ field appears AFTER tensors_info_manager_
*/
PipelineManager pipeline_manager_;
- // PipelineManager::createPipeline() begin
void MLPipelineManagerCreatePipeline(const picojson::value& args, picojson::object& out);
- // PipelineManager::createPipeline() end
- // Pipeline::state begin
void MLPipelineGetState(const picojson::value& args, picojson::object& out);
- // Pipeline::state end
- // Pipeline::start() begin
void MLPipelineStart(const picojson::value& args, picojson::object& out);
- // Pipeline::start() end
- // Pipeline::stop() begin
void MLPipelineStop(const picojson::value& args, picojson::object& out);
- // Pipeline::stop() end
- // Pipeline::dispose() begin
void MLPipelineDispose(const picojson::value& args, picojson::object& out);
- // Pipeline::dispose() end
- // Pipeline::getNodeInfo() begin
void MLPipelineGetNodeInfo(const picojson::value& args, picojson::object& out);
- // Pipeline::getNodeInfo() end
- // Pipeline::getSource() begin
void MLPipelineGetSource(const picojson::value& args, picojson::object& out);
- // Pipeline::getSource() end
- // Pipeline::getSwitch() begin
void MLPipelineGetSwitch(const picojson::value& args, picojson::object& out);
- // Pipeline::getSwitch() end
- // Pipeline::getValve() begin
void MLPipelineGetValve(const picojson::value& args, picojson::object& out);
- // Pipeline::getValve() end
- // Pipeline::registerSinkCallback() begin
void MLPipelineRegisterSinkListener(const picojson::value& args, picojson::object& out);
- // Pipeline::registerSinkCallback() end
- // Pipeline::unregisterSinkCallback() begin
void MLPipelineUnregisterSinkListener(const picojson::value& args, picojson::object& out);
- // Pipeline::unregisterSinkCallback() end
- // Pipeline::registerCustomFilter() begin
void MLPipelineManagerRegisterCustomFilter(const picojson::value& args, picojson::object& out);
+
void MLPipelineManagerCustomFilterOutput(const picojson::value& args, picojson::object& out);
- // Pipeline::registerCustomFilter() end
- // Pipeline::unregisterCustomFilter() begin
void MLPipelineManagerUnregisterCustomFilter(const picojson::value& args, picojson::object& out);
- // Pipeline::unregisterCustomFilter() end
- // NodeInfo::getProperty() begin
void MLPipelineNodeInfoGetProperty(const picojson::value& args, picojson::object& out);
- // NodeInfo::getProperty() end
- // NodeInfo::setProperty() begin
void MLPipelineNodeInfoSetProperty(const picojson::value& args, picojson::object& out);
- // NodeInfo::setProperty() end
- // Source::inputTensorsInfo begin
void MLPipelineGetInputTensorsInfo(const picojson::value& args, picojson::object& out);
- // Source::inputTensorsInfo end
- // Source::inputData() begin
void MLPipelineSourceInputData(const picojson::value& args, picojson::object& out);
- // Source::inputData() end
- // Switch::getPadList() begin
void MLPipelineSwitchGetPadList(const picojson::value& args, picojson::object& out);
- // Switch::getPadList() end
- // Switch::select() begin
void MLPipelineSwitchSelect(const picojson::value& args, picojson::object& out);
- // Switch::select() end
- // Valve::setOpen() begin
void MLPipelineValveSetOpen(const picojson::value& args, picojson::object& out);
- // Valve::setOpen() end
- // Valve::isOpen() begin
void MLPipelineValveIsOpen(const picojson::value& args, picojson::object& out);
- // Valve::isOpen() end
- // Pipeline API end
};
} // namespace ml
ScopeLogger("id: [%d], state_change_listener_name: [%s]", id, state_change_listener_name.c_str());
}
-// Pipeline::createPipeline() begin
PlatformResult Pipeline::CreatePipeline(int id, const std::string& definition,
const std::string& state_change_listener_name,
common::Instance* instance_ptr,
*out = std::move(pipeline_ptr);
return PlatformResult{};
}
-// Pipeline::createPipeline() end
Pipeline::~Pipeline() {
ScopeLogger("Destroying pipeline: [%d]", id_);
common::Instance::PostMessage(pipeline->instance_ptr_, response);
}
-// Pipeline::state begin
PlatformResult Pipeline::GetState(std::string* out) {
ScopeLogger("id_: [%d]", id_);
*out = StateToString(state);
return PlatformResult{};
}
-// Pipeline::state end
-// Pipeline::start() begin
PlatformResult Pipeline::Start() {
ScopeLogger("id_: [%d]", id_);
}
return PlatformResult{};
}
-// Pipeline::start() end
-// Pipeline::stop() begin
PlatformResult Pipeline::Stop() {
ScopeLogger("id_: [%d]", id_);
}
return PlatformResult{};
}
-// Pipeline::stop() end
-// Pipeline::dispose() begin
PlatformResult Pipeline::Dispose() {
ScopeLogger("id_: [%d]", id_);
}
/*
- * TODO in future commits:
+ * ****** VERY IMPORTANT! ******
+ * READ BEFORE ADDING NEW NODES!
*
* Release all nodes belonging to this pipeline and
* cached in this object in containers like
return PlatformResult{};
}
-// Pipeline::dispose() end
-// Pipeline::getNodeInfo() begin
PlatformResult Pipeline::GetNodeInfo(const std::string& name) {
ScopeLogger("id_: [%d], name: [%s]", id_, name.c_str());
return PlatformResult{};
}
-// Pipeline::getNodeInfo() end
-// Pipeline::getSource() begin
PlatformResult Pipeline::GetSource(const std::string& name) {
ScopeLogger("id: [%d], name: [%s]", id_, name.c_str());
}
return ret;
}
-// Pipeline::getSource() end
-// Pipeline::getSwitch() begin
PlatformResult Pipeline::GetSwitch(const std::string& name, std::string* type) {
ScopeLogger("id: [%d], name: [%s]", id_, name.c_str());
}
return ret;
}
-// Pipeline::getSwitch() end
-// Pipeline::getValve() begin
PlatformResult Pipeline::GetValve(const std::string& name) {
ScopeLogger("id: [%d], name: [%s]", id_, name.c_str());
}
return ret;
}
-// Pipeline::getValve() end
-// Pipeline::registerSinkCallback() begin
PlatformResult Pipeline::RegisterSinkListener(const std::string& sink_name,
const std::string& listener_name) {
ScopeLogger("sink_name: [%s], listener_name: [%s], id_: [%d]", sink_name.c_str(),
return PlatformResult{};
}
-// Pipeline::registerSinkCallback() end
-// Pipeline::unregisterSinkCallback() begin
PlatformResult Pipeline::UnregisterSinkListener(const std::string& sink_name) {
ScopeLogger("sink_name: [%s], id_: [%d]", sink_name.c_str(), id_);
}
return ret;
}
-// Pipeline::unregisterSinkCallback() end
-// NodeInfo::getProperty() begin
PlatformResult Pipeline::getProperty(const std::string& node_name, const std::string& name,
const std::string& type, picojson::object* property) {
ScopeLogger("id_: [%d], name: [%s], type: [%s]", id_, name.c_str(), type.c_str());
return nodeinfo_it->second->getProperty(name, type, property);
}
-// NodeInfo::getProperty() end
-// NodeInfo::setProperty() begin
PlatformResult Pipeline::setProperty(const std::string& node_name, const std::string& name,
const std::string& type, const picojson::value& property) {
ScopeLogger("id_: [%d], name: [%s], type: [%s]", id_, name.c_str(), type.c_str());
return nodeinfo_it->second->setProperty(name, type, property);
}
-// NodeInfo::setProperty() end
-// Source::inputTensorsInfo begin
PlatformResult Pipeline::getInputTensorsInfo(const std::string& name, ml_tensors_info_h* result) {
ScopeLogger();
return source_it->second->getInputTensorsInfo(result);
}
-// Source::inputTensorsInfo end
-// Source::inputData() begin
PlatformResult Pipeline::SourceInputData(const std::string& name, TensorsData* tensors_data) {
ScopeLogger();
return source_it->second->SourceInputData(tensors_data);
}
-// Source::inputData() end
-// Switch::getPadList() begin
PlatformResult Pipeline::GetSwitch(const std::string& name, Switch** out) {
ScopeLogger("id: [%d], name: [%s]", id_, name.c_str());
return PlatformResult{ErrorCode::ABORT_ERR, "Switch does not exist"};
}
-// Switch::getPadList() end
-
-// Valve::setOpen() begin
PlatformResult Pipeline::GetNodeInfo(const std::string& name, NodeInfo** out) {
ScopeLogger("id_: [%d], name: [%s]", id_, name.c_str());
}
return ret;
}
-// Valve::setOpen() end
} // namespace extension
} // namespace ml
class Pipeline {
public:
- // PipelineManager::createPipeline() begin
/*
* We use a static function to create Pipeline objects, instead of
* a typical constructor, to be able to return an error without
common::Instance* instance_ptr,
TensorsInfoManager* tensors_info_manager_ptr,
std::unique_ptr<Pipeline>* out);
- // PipelineManager::createPipeline() end
Pipeline() = delete;
Pipeline(const Pipeline&) = delete;
Pipeline& operator=(const Pipeline&) = delete;
~Pipeline();
- // Pipeline::state begin
PlatformResult GetState(std::string* out);
- // Pipeline::state end
- // Pipeline::start() begin
PlatformResult Start();
- // Pipeline::start() end
- // Pipeline::stop() begin
PlatformResult Stop();
- // Pipeline::stop() end
- // Pipeline::dispose() begin
PlatformResult Dispose();
- // Pipeline::dispose() end
- // Pipeline::getNodeInfo() begin
PlatformResult GetNodeInfo(const std::string& name);
- // Pipeline::getNodeInfo() end
- // Pipeline::getSource() begin
PlatformResult GetSource(const std::string& name);
- // Pipeline::getSource() end
- // Pipeline::getSwitch() begin
PlatformResult GetSwitch(const std::string& name, std::string* type);
- // Pipeline::getSwitch() end
- // Pipeline::getValve() begin
PlatformResult GetValve(const std::string& name);
- // Pipeline::getValve() end
- // Pipeline::registerSinkCallback() begin
PlatformResult RegisterSinkListener(const std::string& sink_name,
const std::string& listener_name);
- // Pipeline::registerSinkCallback() end
- // Pipeline::unregisterSinkCallback() begin
PlatformResult UnregisterSinkListener(const std::string& sink_name);
- // Pipeline::unregisterSinkCallback() end
- // NodeInfo::getProperty() begin
PlatformResult getProperty(const std::string& node_name, const std::string& name,
const std::string& type, picojson::object* property);
- // NodeInfo::getProperty() end
- // NodeInfo::setProperty() begin
PlatformResult setProperty(const std::string& node_name, const std::string& name,
const std::string& type, const picojson::value& property);
- // NodeInfo::setProperty() end
- // Source::inputTensorsInfo begin
PlatformResult getInputTensorsInfo(const std::string& name, ml_tensors_info_h* result);
- // Source::inputTensorsInfo end
- // Source::inputData() begin
PlatformResult SourceInputData(const std::string& name, TensorsData* tensors_data);
- // Source::inputData() end
- // Switch::getPadList() begin
PlatformResult GetSwitch(const std::string& name, Switch** out);
- // Switch::getPadList() end
-
- // Valve::setOpen() begin
PlatformResult GetNodeInfo(const std::string& name, NodeInfo** out);
PlatformResult GetValve(const std::string& name, Valve** out);
- // Valve::setOpen() end
+
private:
Pipeline(int id, const std::string& state_change_listener_name,
TensorsInfoManager* tensors_info_manager_ptr, common::Instance* instance_ptr);
ScopeLogger();
}
-// PipelineManager::createPipeline() begin
PlatformResult PipelineManager::CreatePipeline(int id, const std::string& definition,
const std::string& state_change_listener_name) {
ScopeLogger("id: [%d], definition: [%s], state_change_listener_name: [%s]", id,
return PlatformResult{};
}
-// PipelineManager::createPipeline() end
-// Pipeline::state begin
PlatformResult PipelineManager::GetPipelineState(int id, std::string* out) {
ScopeLogger("id: [%d]", id);
auto ret = pipeline_it->second->GetState(out);
return ret;
}
-// Pipeline::state end
-// Pipeline::start() begin
PlatformResult PipelineManager::Start(int id) {
ScopeLogger("id: [%d]", id);
auto ret = pipeline_it->second->Start();
return ret;
}
-// Pipeline::start() end
-// Pipeline::stop() begin
PlatformResult PipelineManager::Stop(int id) {
ScopeLogger("id: [%d]", id);
auto ret = pipeline_it->second->Stop();
return ret;
}
-// Pipeline::stop() end
-// Pipeline::dispose() begin
PlatformResult PipelineManager::DisposePipeline(int id) {
ScopeLogger("id: [%d]", id);
return ret;
}
-// Pipeline::dispose() end
-// Pipeline::getNodeInfo() begin
PlatformResult PipelineManager::GetNodeInfo(int id, std::string& name) {
ScopeLogger("id: [%d], name [%s]", id, name.c_str());
auto ret = pipeline_it->second->GetNodeInfo(name);
return ret;
}
-// Pipeline::getNodeInfo() end
-// Pipeline::getSource() begin
PlatformResult PipelineManager::GetSource(int pipeline_id, const std::string& name) {
ScopeLogger("name: [%s], pipeline_id: [%d]", name.c_str(), pipeline_id);
return pipeline_it->second->GetSource(name);
}
-// Pipeline::getSource() end
-// Pipeline::getSwitch() begin
PlatformResult PipelineManager::GetSwitch(const std::string& name, int pipeline_id,
std::string* type) {
ScopeLogger("name: [%s], pipeline_id: [%d]", name.c_str(), pipeline_id);
return pipeline_it->second->GetSwitch(name, type);
}
-// Pipeline::getSwitch() end
-// Pipeline::getValve() begin
PlatformResult PipelineManager::GetValve(const std::string& name, int pipeline_id) {
ScopeLogger("name: [%s], pipeline_id: [%d]", name.c_str(), pipeline_id);
return pipeline_it->second->GetValve(name);
}
-// Pipeline::getValve() end
-// Pipeline::registerSinkCallback() begin
PlatformResult PipelineManager::RegisterSinkListener(const std::string& sink_name, int pipeline_id,
const std::string& listener_name) {
ScopeLogger("sink_name: [%s], pipeline_id: [%d], listener_name: [%s]", sink_name.c_str(),
return pipeline_it->second->RegisterSinkListener(sink_name, listener_name);
}
-// Pipeline::registerSinkCallback() end
-// Pipeline::unregisterSinkCallback() begin
PlatformResult PipelineManager::UnregisterSinkListener(const std::string& sink_name,
int pipeline_id) {
ScopeLogger("sink_name: [%s], pipeline_id: [%d]", sink_name.c_str(), pipeline_id);
return pipeline_it->second->UnregisterSinkListener(sink_name);
}
-// Pipeline::unregisterSinkCallback() end
-// Pipeline::registerCustomFilter() begin
PlatformResult PipelineManager::RegisterCustomFilter(const std::string& custom_filter_name,
const std::string& listener_name,
TensorsInfo* input_tensors_info_ptr,
return PlatformResult{};
}
-// Pipeline::registerCustomFilter() end
PlatformResult PipelineManager::CustomFilterOutput(const std::string& custom_filter_name,
int request_id, int status) {
return PlatformResult{};
}
-// Pipeline::unregisterCustomFilter() begin
PlatformResult PipelineManager::UnregisterCustomFilter(const std::string& custom_filter_name) {
ScopeLogger("custom_filter_name: [%s]", custom_filter_name.c_str());
}
return ret;
}
-// Pipeline::unregisterCustomFilter() end
-// NodeInfo::getProperty() begin
PlatformResult PipelineManager::getProperty(int id, const std::string& node_name,
const std::string& name, const std::string& type,
picojson::object* property) {
return pipeline_it->second->getProperty(node_name, name, type, property);
}
-// NodeInfo::getProperty() end
-// NodeInfo::setProperty() begin
PlatformResult PipelineManager::setProperty(int id, const std::string& node_name,
const std::string& name, const std::string& type,
const picojson::value& property) {
return pipeline_it->second->setProperty(node_name, name, type, property);
}
-// NodeInfo::setProperty() end
-// Source::inputTensorsInfo begin
PlatformResult PipelineManager::getInputTensorsInfo(int id, const std::string& name, int* res_id) {
ScopeLogger();
*res_id = tensor_info->Id();
return PlatformResult{};
}
-// Source::inputTensorsInfo end
-// Source::inputData() begin
PlatformResult PipelineManager::SourceInputData(int id, const std::string& name,
TensorsData* tensors_data) {
ScopeLogger();
return pipeline_it->second->SourceInputData(name, tensors_data);
}
-// Source::inputData() end
-// Switch::getPadList() begin
PlatformResult PipelineManager::SwitchGetPadList(int pipeline_id, const std::string& switch_name,
picojson::array* out) {
ScopeLogger("pipeline_id: [%d], switch_name: [%s]", pipeline_id, switch_name.c_str());
return switch_ptr->GetPadList(out);
}
-// Switch::getPadList() end
-// Switch::select() begin
PlatformResult PipelineManager::SwitchSelect(int pipeline_id, const std::string& switch_name,
const std::string& pad_name) {
ScopeLogger("pipeline_id: [%d], switch_name: [%s], pad_name: [%s]", pipeline_id,
return switch_ptr->Select(pad_name);
}
-// Switch::select() end
-// Valve::setOpen() begin
PlatformResult PipelineManager::ValveSetOpen(int pipeline_id, const std::string& valve_name,
bool open) {
ScopeLogger("pipeline_id: [%d], valve_name: [%s], open: [%s]", pipeline_id, valve_name.c_str(),
return valve_ptr->SetOpen(open);
}
-// Valve::setOpen() end
-// Valve::isOpen() begin
PlatformResult PipelineManager::ValveIsOpen(int pipeline_id, const std::string& valve_name,
bool* open) {
ScopeLogger("pipeline_id: [%d], valve_name: [%s]", pipeline_id, valve_name.c_str());
return valve_ptr->IsOpen(open);
}
-// Valve::isOpen() end
} // namespace ml
} // namespace extension
PipelineManager(const PipelineManager&) = delete;
PipelineManager& operator=(const PipelineManager&) = delete;
- // PipelineManager::createPipeline() begin
PlatformResult CreatePipeline(int id, const std::string& definition,
const std::string& state_change_listener_name);
- // PipelineManager::createPipeline() end
- // Pipeline::state begin
PlatformResult GetPipelineState(int id, std::string* out);
- // Pipeline::state end
- // Pipeline::start() begin
PlatformResult Start(int id);
- // Pipeline::start() end
- // Pipeline::stop() begin
PlatformResult Stop(int id);
- // Pipeline::stop() end
- // Pipeline::dispose() begin
PlatformResult DisposePipeline(int id);
- // Pipeline::dispose() end
- // Pipeline::getNodeInfo() begin
PlatformResult GetNodeInfo(int id, std::string& name);
- // Pipeline::getNodeInfo() end
- // Pipeline::getSource() begin
PlatformResult GetSource(int pipeline_id, const std::string& name);
- // Pipeline::getSource() end
- // Pipeline::getSwitch() begin
PlatformResult GetSwitch(const std::string& name, int pipeline_id, std::string* type);
- // Pipeline::getSwitch() end
- // Pipeline::getValve() begin
PlatformResult GetValve(const std::string& name, int pipeline_id);
- // Pipeline::getValve() end
- // Pipeline::registerSinkCallback() begin
PlatformResult RegisterSinkListener(const std::string& sink_name, int pipeline_id,
const std::string& listener_name);
- // Pipeline::registerSinkCallback() end
- // Pipeline::unregisterSinkCallback() begin
PlatformResult UnregisterSinkListener(const std::string& sink_name, int pipeline_id);
- // Pipeline::unregisterSinkCallback() end
- // Pipeline::registerCustomFilter() begin
PlatformResult RegisterCustomFilter(const std::string& custom_filter_name,
const std::string& listener_name,
TensorsInfo* input_tensors_info_ptr,
PlatformResult CustomFilterOutput(const std::string& custom_filter_name, int request_id,
int status);
- // Pipeline::registerCustomFilter() end
- // Pipeline::unregisterCustomFilter() begin
PlatformResult UnregisterCustomFilter(const std::string& custom_filter_name);
- // Pipeline::unregisterCustomFilter() end
- // NodeInfo::getProperty() begin
PlatformResult getProperty(int id, const std::string& node_name, const std::string& name,
const std::string& type, picojson::object* property);
- // NodeInfo::getProperty() end
- // NodeInfo::setProperty() begin
PlatformResult setProperty(int id, const std::string& node_name, const std::string& name,
const std::string& type, const picojson::value& property);
- // NodeInfo::setProperty() end
- // Source::inputTensorsInfo begin
PlatformResult getInputTensorsInfo(int id, const std::string& name, int* res_id);
- // Source::inputTensorsInfo end
- // Source::inputData() begin
PlatformResult SourceInputData(int id, const std::string& name, TensorsData* tensors_data);
- // Source::inputData() end
- // Switch::getPadList() begin
PlatformResult SwitchGetPadList(int pipeline_id, const std::string& switch_name,
picojson::array* out);
- // Switch::getPadList() end
- // Switch::select() begin
PlatformResult SwitchSelect(int pipeline_id, const std::string& switch_name,
const std::string& pad_name);
- // Switch::select() end
- // Valve::setOpen() begin
PlatformResult ValveSetOpen(int pipeline_id, const std::string& valve_name, bool open);
- // Valve::setOpen() end
- // Valve::isOpen() begin
PlatformResult ValveIsOpen(int pipeline_id, const std::string& valve_name, bool* open);
- // Valve::isOpen() end
+
private:
common::Instance* instance_ptr_;
TensorsInfoManager* tensors_info_manager_;
ScopeLogger();
}
-// MachineLearningSingle::openModel()
PlatformResult SingleManager::OpenModel(const std::string& modelPath, TensorsInfo* inTensorsInfo,
TensorsInfo* outTensorsInfo, ml_nnfw_type_e nnfw_e,
ml_nnfw_hw_e hw_e, bool isDynamicMode, int* res_id) {
return PlatformResult{};
}
-// SingleShot input
SingleShot* SingleManager::GetSingleShot(int id) {
ScopeLogger("id: %d", id);
SingleManager(const SingleManager&) = delete;
SingleManager& operator=(const SingleManager&) = delete;
- // MachineLearningSingle::openModel()
PlatformResult OpenModel(const std::string& modelPath, TensorsInfo* inTensorsInfo,
TensorsInfo* outTensorsInfo, ml_nnfw_type_e nnfw_e, ml_nnfw_hw_e hw_e,
bool isDynamicMode, int* res_id);
- // MachineLearningSingle::openModelAsync()
- // OpenModelSuccessCallback
+
PlatformResult GetNativeTensorsInfo(int id, bool get_input_mode, int* res_id);
PlatformResult SetNativeInputInfo(int id, TensorsInfo* inTensorsInfo);
PlatformResult Invoke(int id, TensorsData* in_tensors_data, TensorsData** out_tensors_data);
ret = ml_tensors_info_clone(clone_h, this->Handle());
if (ML_ERROR_NONE != ret) {
LoggerE("ml_tensors_info_clone failed: %d (%s)", ret, get_error_message(ret));
+ ret = ml_tensors_info_destroy(clone_h);
+ if (ML_ERROR_NONE != ret) {
+ LoggerE("ml_tensors_info_destroy failed: %d (%s)", ret, get_error_message(ret));
+ }
return nullptr;
}
auto t = std::make_shared<TensorsInfo>(clone_h, cloneId);