blob: ae85b6354be6acc501008905b3701fd9f8b78948 [file] [log] [blame]
David Beck1b61be52018-11-08 09:19:14 +00001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5#pragma once
6
Sadik Armagan045f6be2020-09-10 13:37:32 +01007#include <armnn/BackendOptions.hpp>
David Beck1b61be52018-11-08 09:19:14 +00008#include <armnn/IRuntime.hpp>
9#include <memory>
10
11namespace armnn
12{
13
14class IBackendContext
15{
16protected:
17 IBackendContext(const IRuntime::CreationOptions&) {}
18
19public:
Ryan OShea2bbfaa72020-02-12 16:15:27 +000020 /// Before and after Load network events
David Beck1b61be52018-11-08 09:19:14 +000021 virtual bool BeforeLoadNetwork(NetworkId networkId) = 0;
22 virtual bool AfterLoadNetwork(NetworkId networkId) = 0;
23
Ryan OShea2bbfaa72020-02-12 16:15:27 +000024 /// Before and after Unload network events
David Beck1b61be52018-11-08 09:19:14 +000025 virtual bool BeforeUnloadNetwork(NetworkId networkId) = 0;
26 virtual bool AfterUnloadNetwork(NetworkId networkId) = 0;
27
28 virtual ~IBackendContext() {}
29};
30
31using IBackendContextUniquePtr = std::unique_ptr<IBackendContext>;
32
Sadik Armagan045f6be2020-09-10 13:37:32 +010033class IBackendModelContext
34{
35public:
36 virtual ~IBackendModelContext() {}
37};
38
David Beck1b61be52018-11-08 09:19:14 +000039} // namespace armnn