IVGCVSW-1946: Remove armnn/src from the include paths
[platform/upstream/armnn.git] / src / backends / backendsCommon / IBackendInternal.hpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 #pragma once
6
7 #include <armnn/IBackend.hpp>
8 #include <memory>
9
10 namespace armnn
11 {
12 class IWorkloadFactory;
13
14 class IBackendInternal : public IBackend
15 {
16 protected:
17     IBackendInternal() = default;
18
19 public:
20     // Allow backends created by the factory function
21     // to be destroyed through IBackendInternal.
22     ~IBackendInternal() override = default;
23
24     using IWorkloadFactoryPtr = std::unique_ptr<IWorkloadFactory>;
25     virtual IWorkloadFactoryPtr CreateWorkloadFactory() const = 0;
26 };
27
28 using IBackendInternalUniquePtr = std::unique_ptr<IBackendInternal>;
29
30 } // namespace armnn