IVGCVSW-4979 Add GetTensorHandleFactory to WorkloadFactoryHelper(Ref/Ne/Cl)

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I7e4c752f396833e226d73c3569e195b796fbf482
diff --git a/src/backends/cl/test/ClWorkloadFactoryHelper.hpp b/src/backends/cl/test/ClWorkloadFactoryHelper.hpp
index 6ea2f11..6e3c6fc 100644
--- a/src/backends/cl/test/ClWorkloadFactoryHelper.hpp
+++ b/src/backends/cl/test/ClWorkloadFactoryHelper.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -12,6 +12,7 @@
 
 #include <cl/ClBackend.hpp>
 #include <cl/ClWorkloadFactory.hpp>
+#include <cl/ClTensorHandleFactory.hpp>
 
 namespace
 {
@@ -30,6 +31,13 @@
     {
         return armnn::ClWorkloadFactory(armnn::PolymorphicPointerDowncast<armnn::ClMemoryManager>(memoryManager));
     }
+
+    static armnn::ClTensorHandleFactory GetTensorHandleFactory(
+            const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
+    {
+
+        return armnn::ClTensorHandleFactory(armnn::PolymorphicPointerDowncast<armnn::ClMemoryManager>(memoryManager));
+    }
 };
 
 using ClWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::ClWorkloadFactory>;
diff --git a/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp b/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp
index 8d92ddf..8715011 100644
--- a/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp
+++ b/src/backends/neon/test/NeonWorkloadFactoryHelper.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -12,6 +12,7 @@
 
 #include <neon/NeonBackend.hpp>
 #include <neon/NeonWorkloadFactory.hpp>
+#include "neon/NeonTensorHandleFactory.hpp"
 
 namespace
 {
@@ -31,6 +32,14 @@
         return armnn::NeonWorkloadFactory(
             armnn::PolymorphicPointerDowncast<armnn::NeonMemoryManager>(memoryManager));
     }
+
+    static armnn::NeonTensorHandleFactory GetTensorHandleFactory(
+            const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
+    {
+
+        return armnn::NeonTensorHandleFactory(
+            armnn::PolymorphicPointerDowncast<armnn::NeonMemoryManager>(memoryManager));
+    }
 };
 
 using NeonWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::NeonWorkloadFactory>;
diff --git a/src/backends/reference/test/RefWorkloadFactoryHelper.hpp b/src/backends/reference/test/RefWorkloadFactoryHelper.hpp
index 30d2037..e413d04 100644
--- a/src/backends/reference/test/RefWorkloadFactoryHelper.hpp
+++ b/src/backends/reference/test/RefWorkloadFactoryHelper.hpp
@@ -1,5 +1,5 @@
 //
-// Copyright © 2017 Arm Ltd. All rights reserved.
+// Copyright © 2017 Arm Ltd and Contributors. All rights reserved.
 // SPDX-License-Identifier: MIT
 //
 
@@ -9,6 +9,7 @@
 
 #include <reference/RefBackend.hpp>
 #include <reference/RefWorkloadFactory.hpp>
+#include "reference/RefTensorHandleFactory.hpp"
 
 namespace
 {
@@ -28,6 +29,13 @@
         IgnoreUnused(memoryManager);
         return armnn::RefWorkloadFactory();
     }
+
+    static armnn::RefTensorHandleFactory GetTensorHandleFactory(
+            const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager = nullptr)
+    {
+
+        return armnn::RefTensorHandleFactory(std::static_pointer_cast<armnn::RefMemoryManager>(memoryManager));
+    }
 };
 
 using RefWorkloadFactoryHelper = WorkloadFactoryHelper<armnn::RefWorkloadFactory>;