blob: 073a5a68331d589ae923533aa8ab366295d35d83 [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,
FrancisMurtagh30cdfca2018-12-18 12:57:35 +000021 RefEqualWorkload_Execute,
David Beck279f8722018-09-12 13:50:03 +010022 RefDivisionWorkload_Execute,
FrancisMurtagh878f0232018-12-19 10:56:15 +000023 RefGreaterWorkload_Execute,
24 RefMaximumWorkload_Execute,
Éanna Ó Catháin20e58802018-12-04 10:29:06 +000025 RefMinimumWorkload_Execute,
FrancisMurtagh878f0232018-12-19 10:56:15 +000026 RefMultiplicationWorkload_Execute,
27 RefSubtractionWorkload_Execute,
David Beck279f8722018-09-12 13:50:03 +010028 MAX_STRING_ID
29 };
30
31 const char * Get(Id id) const
32 {
33 return m_Strings[id];
34 }
35
36 static const StringMapping& Instance();
37
38private:
39 StringMapping()
40 {
41 m_Strings[RefAdditionWorkload_Execute] = "RefAdditionWorkload_Execute";
David Beck279f8722018-09-12 13:50:03 +010042 m_Strings[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute";
FrancisMurtagh878f0232018-12-19 10:56:15 +000043 m_Strings[RefEqualWorkload_Execute] = "RefEqualWorkload_Execute";
44 m_Strings[RefGreaterWorkload_Execute] = "RefGreaterWorkload_Execute";
45 m_Strings[RefMaximumWorkload_Execute] = "RefMaximumWorkload_Execute";
Éanna Ó Catháin20e58802018-12-04 10:29:06 +000046 m_Strings[RefMinimumWorkload_Execute] = "RefMinimumWorkload_Execute";
FrancisMurtagh878f0232018-12-19 10:56:15 +000047 m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute";
48 m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute";
David Beck279f8722018-09-12 13:50:03 +010049 }
50
51 StringMapping(const StringMapping &) = delete;
52 StringMapping& operator=(const StringMapping &) = delete;
53
54 const char * m_Strings[MAX_STRING_ID];
55};
56
FrancisMurtagh878f0232018-12-19 10:56:15 +000057} //namespace armnn