diff options
Diffstat (limited to 'src/backends/reference/workloads/StringMapping.hpp')
-rw-r--r-- | src/backends/reference/workloads/StringMapping.hpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/backends/reference/workloads/StringMapping.hpp b/src/backends/reference/workloads/StringMapping.hpp new file mode 100644 index 0000000000..073a5a6833 --- /dev/null +++ b/src/backends/reference/workloads/StringMapping.hpp @@ -0,0 +1,57 @@ +// +// 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, + RefEqualWorkload_Execute, + RefDivisionWorkload_Execute, + RefGreaterWorkload_Execute, + RefMaximumWorkload_Execute, + RefMinimumWorkload_Execute, + RefMultiplicationWorkload_Execute, + RefSubtractionWorkload_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[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute"; + m_Strings[RefEqualWorkload_Execute] = "RefEqualWorkload_Execute"; + m_Strings[RefGreaterWorkload_Execute] = "RefGreaterWorkload_Execute"; + m_Strings[RefMaximumWorkload_Execute] = "RefMaximumWorkload_Execute"; + m_Strings[RefMinimumWorkload_Execute] = "RefMinimumWorkload_Execute"; + m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute"; + m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute"; + } + + StringMapping(const StringMapping &) = delete; + StringMapping& operator=(const StringMapping &) = delete; + + const char * m_Strings[MAX_STRING_ID]; +}; + +} //namespace armnn |