aboutsummaryrefslogtreecommitdiff
path: root/src/backends/IBackendInternal.hpp
diff options
context:
space:
mode:
authorDavid Beck <david.beck@arm.com>2018-10-23 13:35:58 +0100
committerMatthew Bentham <matthew.bentham@arm.com>2018-10-25 09:49:58 +0100
commit29c75de868ac3a86a70b25f8da0d0c7e47d40803 (patch)
treedb8dd31d26622ca252f6e2d2c86c7e20a0829e9e /src/backends/IBackendInternal.hpp
parent5cc8e56b4ca8d58dc11973c49c10a02a2f13580c (diff)
downloadarmnn-29c75de868ac3a86a70b25f8da0d0c7e47d40803.tar.gz
IVGCVSW-2067 : dynamically create workload factories based on the backends in the network
Change-Id: Ide594db8c79ff67642721d8bad47624b88621fbd
Diffstat (limited to 'src/backends/IBackendInternal.hpp')
-rw-r--r--src/backends/IBackendInternal.hpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/backends/IBackendInternal.hpp b/src/backends/IBackendInternal.hpp
index a441abd79f..7e44dbd676 100644
--- a/src/backends/IBackendInternal.hpp
+++ b/src/backends/IBackendInternal.hpp
@@ -5,19 +5,27 @@
#pragma once
#include <armnn/Types.hpp>
-#include <backends/WorkloadFactory.hpp>
namespace armnn
{
+class IWorkloadFactory;
class IBackendInternal : public IBackend
{
protected:
+ // Creation must be done through a specific
+ // backend interface.
IBackendInternal() = default;
- ~IBackendInternal() override = default;
public:
- virtual std::unique_ptr<IWorkloadFactory> CreateWorkloadFactory() const = 0;
+ // Allow backends created by the factory function
+ // to be destroyed through IBackendInternal.
+ ~IBackendInternal() override = default;
+
+ using IWorkloadFactoryPtr = std::unique_ptr<IWorkloadFactory>;
+ virtual IWorkloadFactoryPtr CreateWorkloadFactory() const = 0;
};
+using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>;
+
} // namespace armnn