arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 1 | // |
2 | // Copyright © 2017 Arm Ltd. All rights reserved. | ||||
3 | // SPDX-License-Identifier: MIT | ||||
4 | // | ||||
5 | |||||
6 | #include "RefBackend.hpp" | ||||
David Beck | 3e9e115 | 2018-10-17 14:17:50 +0100 | [diff] [blame] | 7 | #include "RefBackendId.hpp" |
arovir01 | a094479 | 2018-10-11 15:00:58 +0100 | [diff] [blame] | 8 | #include "RefWorkloadFactory.hpp" |
9 | |||||
David Beck | 6b779f0 | 2018-10-09 17:20:21 +0100 | [diff] [blame] | 10 | #include <backends/BackendRegistry.hpp> |
arovir01 | a094479 | 2018-10-11 15:00:58 +0100 | [diff] [blame] | 11 | |
David Beck | 6b779f0 | 2018-10-09 17:20:21 +0100 | [diff] [blame] | 12 | #include <boost/cast.hpp> |
arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 13 | |
14 | namespace armnn | ||||
15 | { | ||||
16 | |||||
David Beck | 6b779f0 | 2018-10-09 17:20:21 +0100 | [diff] [blame] | 17 | namespace |
18 | { | ||||
David Beck | 6b779f0 | 2018-10-09 17:20:21 +0100 | [diff] [blame] | 19 | |
David Beck | 3e9e115 | 2018-10-17 14:17:50 +0100 | [diff] [blame] | 20 | static StaticRegistryInitializer<BackendRegistry> g_RegisterHelper |
21 | { | ||||
22 | BackendRegistryInstance(), | ||||
David Beck | 3cc9a62 | 2018-10-12 10:38:31 +0100 | [diff] [blame] | 23 | RefBackend::GetIdStatic(), |
David Beck | 6b779f0 | 2018-10-09 17:20:21 +0100 | [diff] [blame] | 24 | []() |
25 | { | ||||
26 | return IBackendUniquePtr(new RefBackend, &RefBackend::Destroy); | ||||
27 | } | ||||
28 | }; | ||||
29 | |||||
30 | } | ||||
arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 31 | |
David Beck | 3cc9a62 | 2018-10-12 10:38:31 +0100 | [diff] [blame] | 32 | const BackendId& RefBackend::GetIdStatic() |
arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 33 | { |
David Beck | 3e9e115 | 2018-10-17 14:17:50 +0100 | [diff] [blame] | 34 | static const BackendId s_Id{RefBackendId()}; |
arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 35 | return s_Id; |
36 | } | ||||
37 | |||||
arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 38 | std::unique_ptr<IWorkloadFactory> RefBackend::CreateWorkloadFactory() const |
39 | { | ||||
arovir01 | a094479 | 2018-10-11 15:00:58 +0100 | [diff] [blame] | 40 | return std::make_unique<RefWorkloadFactory>(); |
arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 41 | } |
42 | |||||
David Beck | 6b779f0 | 2018-10-09 17:20:21 +0100 | [diff] [blame] | 43 | void RefBackend::Destroy(IBackend* backend) |
44 | { | ||||
45 | delete boost::polymorphic_downcast<RefBackend*>(backend); | ||||
46 | } | ||||
47 | |||||
arovir01 | 4424b0a | 2018-10-04 10:46:04 +0100 | [diff] [blame] | 48 | } // namespace armnn |