aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/backendsCommon')
-rw-r--r--src/backends/backendsCommon/BackendRegistry.hpp7
-rw-r--r--src/backends/backendsCommon/CMakeLists.txt1
-rw-r--r--src/backends/backendsCommon/IBackendContext.hpp32
-rw-r--r--src/backends/backendsCommon/IBackendInternal.hpp5
-rw-r--r--src/backends/backendsCommon/test/BackendRegistryTests.cpp1
5 files changed, 42 insertions, 4 deletions
diff --git a/src/backends/backendsCommon/BackendRegistry.hpp b/src/backends/backendsCommon/BackendRegistry.hpp
index 145da8819c..4b20cacbe0 100644
--- a/src/backends/backendsCommon/BackendRegistry.hpp
+++ b/src/backends/backendsCommon/BackendRegistry.hpp
@@ -4,14 +4,13 @@
//
#pragma once
-#include "IBackendInternal.hpp"
#include "RegistryCommon.hpp"
-
#include <armnn/Types.hpp>
namespace armnn
{
-
+class IBackendInternal;
+using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>;
using BackendRegistry = RegistryCommon<IBackendInternal, IBackendInternalUniquePtr>;
BackendRegistry& BackendRegistryInstance();
@@ -22,4 +21,4 @@ struct RegisteredTypeName<IBackend>
static const char * Name() { return "IBackend"; }
};
-} // namespace armnn
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/backendsCommon/CMakeLists.txt b/src/backends/backendsCommon/CMakeLists.txt
index 9dd9b92fe3..f4ab45f8b4 100644
--- a/src/backends/backendsCommon/CMakeLists.txt
+++ b/src/backends/backendsCommon/CMakeLists.txt
@@ -10,6 +10,7 @@ list(APPEND armnnBackendsCommon_sources
CpuTensorHandleFwd.hpp
CpuTensorHandle.hpp
IBackendInternal.hpp
+ IBackendContext.hpp
ILayerSupport.cpp
ITensorHandle.hpp
LayerSupportRegistry.cpp
diff --git a/src/backends/backendsCommon/IBackendContext.hpp b/src/backends/backendsCommon/IBackendContext.hpp
new file mode 100644
index 0000000000..de9824956f
--- /dev/null
+++ b/src/backends/backendsCommon/IBackendContext.hpp
@@ -0,0 +1,32 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#pragma once
+
+#include <armnn/IRuntime.hpp>
+#include <memory>
+
+namespace armnn
+{
+
+class IBackendContext
+{
+protected:
+ IBackendContext(const IRuntime::CreationOptions&) {}
+
+public:
+ // Before and after Load network events
+ virtual bool BeforeLoadNetwork(NetworkId networkId) = 0;
+ virtual bool AfterLoadNetwork(NetworkId networkId) = 0;
+
+ // Before and after Unload network events
+ virtual bool BeforeUnloadNetwork(NetworkId networkId) = 0;
+ virtual bool AfterUnloadNetwork(NetworkId networkId) = 0;
+
+ virtual ~IBackendContext() {}
+};
+
+using IBackendContextUniquePtr = std::unique_ptr<IBackendContext>;
+
+} // namespace armnn \ No newline at end of file
diff --git a/src/backends/backendsCommon/IBackendInternal.hpp b/src/backends/backendsCommon/IBackendInternal.hpp
index 7e44dbd676..fede366475 100644
--- a/src/backends/backendsCommon/IBackendInternal.hpp
+++ b/src/backends/backendsCommon/IBackendInternal.hpp
@@ -5,10 +5,12 @@
#pragma once
#include <armnn/Types.hpp>
+#include <armnn/IRuntime.hpp>
namespace armnn
{
class IWorkloadFactory;
+class IBackendContext;
class IBackendInternal : public IBackend
{
@@ -23,7 +25,10 @@ public:
~IBackendInternal() override = default;
using IWorkloadFactoryPtr = std::unique_ptr<IWorkloadFactory>;
+ using IBackendContextPtr = std::unique_ptr<IBackendContext>;
+
virtual IWorkloadFactoryPtr CreateWorkloadFactory() const = 0;
+ virtual IBackendContextPtr CreateBackendContext(const IRuntime::CreationOptions&) const = 0;
};
using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>;
diff --git a/src/backends/backendsCommon/test/BackendRegistryTests.cpp b/src/backends/backendsCommon/test/BackendRegistryTests.cpp
index 0bc655be09..26175e015f 100644
--- a/src/backends/backendsCommon/test/BackendRegistryTests.cpp
+++ b/src/backends/backendsCommon/test/BackendRegistryTests.cpp
@@ -6,6 +6,7 @@
#include <armnn/Types.hpp>
#include <backendsCommon/BackendRegistry.hpp>
+#include <backendsCommon/IBackendInternal.hpp>
#include <boost/test/unit_test.hpp>