IVGCVSW-2093 Add SpaceToBatchNd layer and corresponding no-op factory implementations
[platform/upstream/armnn.git] / src / backends / StringMapping.hpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5
6 #pragma once
7
8 namespace armnn
9 {
10
11 ///
12 /// StringMapping is helper class to be able to use strings as template
13 /// parameters, so this allows simplifying code which only differs in
14 /// a string, such as a debug string literal.
15 ///
16 struct StringMapping
17 {
18 public:
19     enum Id {
20         RefAdditionWorkload_Execute,
21         RefSubtractionWorkload_Execute,
22         RefMultiplicationWorkload_Execute,
23         RefDivisionWorkload_Execute,
24         MAX_STRING_ID
25     };
26
27     const char * Get(Id id) const
28     {
29         return m_Strings[id];
30     }
31
32     static const StringMapping& Instance();
33
34 private:
35     StringMapping()
36     {
37         m_Strings[RefAdditionWorkload_Execute] = "RefAdditionWorkload_Execute";
38         m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute";
39         m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute";
40         m_Strings[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute";
41     }
42
43     StringMapping(const StringMapping &) = delete;
44     StringMapping& operator=(const StringMapping &) = delete;
45
46     const char * m_Strings[MAX_STRING_ID];
47 };
48
49 } //namespace armnn