blob: f6af8217a9d58e1eb077d9e60a0c53dfaf165d24 [file] [log] [blame]
David Beck279f8722018-09-12 13:50:03 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8namespace 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///
16struct StringMapping
17{
18public:
19 enum Id {
20 RefAdditionWorkload_Execute,
21 RefSubtractionWorkload_Execute,
saoste012df12b32018-11-28 16:57:20 +000022 RefMaximumWorkload_Execute,
David Beck279f8722018-09-12 13:50:03 +010023 RefMultiplicationWorkload_Execute,
24 RefDivisionWorkload_Execute,
25 MAX_STRING_ID
26 };
27
28 const char * Get(Id id) const
29 {
30 return m_Strings[id];
31 }
32
33 static const StringMapping& Instance();
34
35private:
36 StringMapping()
37 {
38 m_Strings[RefAdditionWorkload_Execute] = "RefAdditionWorkload_Execute";
39 m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute";
40 m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute";
41 m_Strings[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute";
42 }
43
44 StringMapping(const StringMapping &) = delete;
45 StringMapping& operator=(const StringMapping &) = delete;
46
47 const char * m_Strings[MAX_STRING_ID];
48};
49
50} //namespace armnn