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 RefDivisionWorkload_Execute, 22 RefMaximumWorkload_Execute, 23 RefMinimumWorkload_Execute, 24 RefMultiplicationWorkload_Execute, 25 RefSubtractionWorkload_Execute, 26 MAX_STRING_ID 27 }; 28 Getarmnn::StringMapping29 const char * Get(Id id) const 30 { 31 return m_Strings[id]; 32 } 33 34 static const StringMapping& Instance(); 35 36 private: StringMappingarmnn::StringMapping37 StringMapping() 38 { 39 m_Strings[RefAdditionWorkload_Execute] = "RefAdditionWorkload_Execute"; 40 m_Strings[RefDivisionWorkload_Execute] = "RefDivisionWorkload_Execute"; 41 m_Strings[RefMaximumWorkload_Execute] = "RefMaximumWorkload_Execute"; 42 m_Strings[RefMinimumWorkload_Execute] = "RefMinimumWorkload_Execute"; 43 m_Strings[RefMultiplicationWorkload_Execute] = "RefMultiplicationWorkload_Execute"; 44 m_Strings[RefSubtractionWorkload_Execute] = "RefSubtractionWorkload_Execute"; 45 } 46 47 StringMapping(const StringMapping &) = delete; 48 StringMapping& operator=(const StringMapping &) = delete; 49 50 const char * m_Strings[MAX_STRING_ID]; 51 }; 52 53 } //namespace armnn 54