added utility function CodeFromText
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 8 Aug 2017 11:57:38 +0000 (14:57 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 8 Aug 2017 11:58:01 +0000 (14:58 +0300)
include/nms_util.h
src/libnetxms/tools.cpp

index 7a44ae8..98f9ed3 100644 (file)
@@ -2138,9 +2138,14 @@ long LIBNETXMS_EXPORTABLE ExtractNamedOptionValueAsIntA(const char *optString, c
 #endif
 
 #ifdef __cplusplus
-const TCHAR LIBNETXMS_EXPORTABLE *CodeToText(int iCode, CODE_TO_TEXT *pTranslator, const TCHAR *pszDefaultText = _T("Unknown"));
+const TCHAR LIBNETXMS_EXPORTABLE *CodeToText(int code, CODE_TO_TEXT *translator, const TCHAR *defaultText = _T("Unknown"));
 #else
-const TCHAR LIBNETXMS_EXPORTABLE *CodeToText(int iCode, CODE_TO_TEXT *pTranslator, const TCHAR *pszDefaultText);
+const TCHAR LIBNETXMS_EXPORTABLE *CodeToText(int code, CODE_TO_TEXT *translator, const TCHAR *defaultText);
+#endif
+#ifdef __cplusplus
+int LIBNETXMS_EXPORTABLE CodeFromText(const TCHAR *text, CODE_TO_TEXT *translator, int defaultCode = -1);
+#else
+int LIBNETXMS_EXPORTABLE CodeFromText(const TCHAR *text, CODE_TO_TEXT *translator, int defaultCode);
 #endif
 
 #ifdef _WIN32
index a1a93b3..78134a2 100644 (file)
@@ -1537,14 +1537,23 @@ bool LIBNETXMS_EXPORTABLE RegexpMatchA(const char *str, const char *expr, bool m
 /**
  * Translate given code to text
  */
-const TCHAR LIBNETXMS_EXPORTABLE *CodeToText(int iCode, CODE_TO_TEXT *pTranslator, const TCHAR *pszDefaultText)
+const TCHAR LIBNETXMS_EXPORTABLE *CodeToText(int code, CODE_TO_TEXT *translator, const TCHAR *defaultText)
 {
-   int i;
+   for(int i = 0; translator[i].text != NULL; i++)
+      if (translator[i].code == code)
+         return translator[i].text;
+   return defaultText;
+}
 
-   for(i = 0; pTranslator[i].text != NULL; i++)
-      if (pTranslator[i].code == iCode)
-         return pTranslator[i].text;
-   return pszDefaultText;
+/**
+ * Translate code to text
+ */
+int LIBNETXMS_EXPORTABLE CodeFromText(const TCHAR *text, CODE_TO_TEXT *translator, int defaultCode)
+{
+   for(int i = 0; translator[i].text != NULL; i++)
+      if (!_tcsicmp(text, translator[i].text))
+         return translator[i].code;
+   return defaultCode;
 }
 
 /**