aboutsummaryrefslogtreecommitdiff
path: root/src/backends/IBackendInternal.hpp
diff options
context:
space:
mode:
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