aboutsummaryrefslogtreecommitdiff
path: root/src/backends/backendsCommon/StringMapping.hpp
blob: 6312e68945b9ce08adf36b3087282e4b0167fde2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//
// Copyright © 2017 Arm Ltd. All rights reserved.
// SPDX-License-Identifier: MIT
//

#pragma once

namespace armnn
{

///
/// StringMapping is helper class to be able to use strings as template
/// parameters, so this allows simplifying code which only differs in
/// a string, such as a debug string literal.
///
struct StringMapping
{
public:
    enum Id {
        RefAdditionWorkload_Execute,
        RefSubtractionWorkload_Execute,
        RefMultiplicationWorkload_Execute,
        RefDivisionWorkload_Execute,
        MAX_STRING_ID
    };

    const char * Get(Id id) const
    {
        return m_Strings[id];
    }

    static const StringMapping& Instance();

private:
    StringMapping()
    {
        m_Strings[RefAdditionWorkload_Execute] = "RefAdditionWorkload_Execute";
        m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute";
        m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute";
        m_Strings[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute";
    }

    StringMapping(const StringMapping &) = delete;
    StringMapping& operator=(const StringMapping &) = delete;

    const char * m_Strings[MAX_STRING_ID];
};

} //namespace armnn