Salome HOME
[EDF29150] : head monitoring file management
[modules/kernel.git] / src / Basics / Basics_Utils.hxx
index e927dbc02a469849c87d24cd89297a6b290ae235..1820856e17ba735c19f5529b47f34fa0bd37066b 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,7 +19,7 @@
 
 //  SALOME Utils : general SALOME's definitions and tools
 //  File   : Basics_DirUtils.hxx
-//  Autor  : Alexander A. BORODIN
+//  Author  : Alexander A. BORODIN
 //  Module : SALOME
 //
 #ifndef _Basics_UTILS_HXX_
 #ifndef WIN32
 #include <sys/time.h>
 #else
-#include <winsock2.h>
 #include <windows.h>
 #pragma comment(lib,"winmm.lib")
+#pragma warning (disable : 4251)
 #endif
 
+#ifndef SALOME_UNUSED
+#define SALOME_UNUSED(var) (void)var
+#endif
 
 namespace Kernel_Utils
 {
@@ -46,9 +49,13 @@ namespace Kernel_Utils
   {
   public:
     Localizer();
+    Localizer(int, const char*);
     ~Localizer();
   private:
-    std::string myCurLocale;
+    void init(int, const char*);
+  private:
+    int myCategory;
+    std::string myOriginalLocale;
   };
   
   //! GUID type
@@ -57,6 +64,18 @@ namespace Kernel_Utils
     ObjectdID       //!< Global usage object identifier ID
   };
 
+  BASICS_EXPORT const wchar_t* decode(const char* encoded);
+  BASICS_EXPORT const wchar_t* decode_s(std::string encoded);
+  BASICS_EXPORT const char* encode(const wchar_t* decoded);
+  BASICS_EXPORT std::string encode_s(const wchar_t* decoded);
+
+#ifdef WIN32
+  BASICS_EXPORT char* utf8_encode(const wchar_t* encoded);
+  BASICS_EXPORT wchar_t* utf8_decode(const char* decoded);
+  BASICS_EXPORT std::string utf8_encode_s(const std::wstring& encoded);
+  BASICS_EXPORT std::wstring utf8_decode_s(const std::string& decoded);
+#endif
+
   //! Get predefined GUID
   BASICS_EXPORT std::string GetGUID( GUIDtype );
 #ifndef WIN32
@@ -128,7 +147,12 @@ double ToDouble(const T &arg) {
 // Simple Logger macros (no dependency with SALOME)
 // =============================================================
 //
+#if defined(_DEBUG_) || defined(_DEBUG)
 #define STDLOG(msg) {std::cerr<<std::flush<<__FILE__<<" ["<<__LINE__<<"] : "<<msg<<std::endl<<std::flush;}
+#else
+#define STDLOG(msg)
+#endif
+
 #ifdef LOG
 #undef LOG
 #endif