blob: 24497c22495ad4a1a714db8a59d1ea1dcf0c4b9c [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
7#include <backendsCommon/IBackendContext.hpp>
8#include <unordered_set>
9#include <mutex>
10
11namespace armnn
12{
13
14class ClBackendContext : public IBackendContext
15{
16public:
17 ClBackendContext(const IRuntime::CreationOptions& options);
18
19 bool BeforeLoadNetwork(NetworkId networkId) override;
20 bool AfterLoadNetwork(NetworkId networkId) override;
21
22 bool BeforeUnloadNetwork(NetworkId networkId) override;
23 bool AfterUnloadNetwork(NetworkId networkId) override;
24
25 ~ClBackendContext() override;
26
27private:
28 std::mutex m_Mutex;
29 struct ClContextControlWrapper;
30 std::unique_ptr<ClContextControlWrapper> m_ClContextControlWrapper;
31
32 std::unordered_set<NetworkId> m_NetworkIds;
33
34};
35
36} // namespace armnn