IVGCVSW-3478 Refactor armnn to make new Lstm parameters available in android-nn-driver through ILayerSupport.h
!android-nn-driver:1506
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
Change-Id: Ia9904bd355c72a84f07d0a26faf143a4d6aead9c
diff --git a/Android.mk b/Android.mk
index b9cc6e5..8ad790e 100644
--- a/Android.mk
+++ b/Android.mk
@@ -137,6 +137,7 @@
src/armnn/layers/SubtractionLayer.cpp \
src/armnn/layers/SwitchLayer.cpp \
src/armnn/layers/TransposeConvolution2dLayer.cpp \
+ src/armnn/BackendHelper.cpp \
src/armnn/Descriptors.cpp \
src/armnn/Exceptions.cpp \
src/armnn/Graph.cpp \
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7c163dc..dbb212f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -323,6 +323,7 @@
src/armnn/layers/TransposeConvolution2dLayer.cpp
src/armnn/layers/TransposeConvolution2dLayer.hpp
src/armnn/BackendSettings.hpp
+ src/armnn/BackendHelper.cpp
src/armnn/CompatibleTypes.hpp
src/armnn/Descriptors.cpp
src/armnn/DeviceSpec.hpp
diff --git a/include/armnn/ArmNN.hpp b/include/armnn/ArmNN.hpp
index de5ea3e..884a3ca 100644
--- a/include/armnn/ArmNN.hpp
+++ b/include/armnn/ArmNN.hpp
@@ -9,7 +9,6 @@
#include "Exceptions.hpp"
#include "INetwork.hpp"
#include "IRuntime.hpp"
-#include "LayerSupport.hpp"
#include "LstmParams.hpp"
#include "Optional.hpp"
#include "Tensor.hpp"
diff --git a/include/armnn/BackendHelper.hpp b/include/armnn/BackendHelper.hpp
new file mode 100644
index 0000000..6a6c8b9
--- /dev/null
+++ b/include/armnn/BackendHelper.hpp
@@ -0,0 +1,17 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+
+#include <armnn/BackendId.hpp>
+#include <armnn/ILayerSupport.hpp>
+
+namespace armnn
+{
+
+/// Convenience function to retrieve the ILayerSupport for a backend
+std::shared_ptr<ILayerSupport> GetILayerSupportByBackendId(const armnn::BackendId& backend);
+
+}
diff --git a/src/armnn/BackendHelper.cpp b/src/armnn/BackendHelper.cpp
new file mode 100644
index 0000000..2514038
--- /dev/null
+++ b/src/armnn/BackendHelper.cpp
@@ -0,0 +1,27 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#include <armnn/BackendHelper.hpp>
+#include "backendsCommon/BackendRegistry.hpp"
+#include "backendsCommon/IBackendInternal.hpp"
+
+namespace armnn
+{
+
+std::shared_ptr<ILayerSupport> GetILayerSupportByBackendId(const armnn::BackendId& backend)
+{
+ BackendRegistry& backendRegistry = armnn::BackendRegistryInstance();
+
+ if (!backendRegistry.IsBackendRegistered(backend))
+ {
+ return nullptr;
+ }
+
+ auto factoryFunc = backendRegistry.GetFactory(backend);
+ auto backendObject = factoryFunc();
+ return backendObject->GetLayerSupport();
+}
+
+}