Salome HOME
[EDF29150] : head monitoring file management
[modules/kernel.git] / src / Basics / KernelBasis.i
index d2cdbfc1374d8e3312992e9752ceaa5a155e55db..06c4fdd0868a35db45eb63b715ad3c043c19f98e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2021  CEA/DEN, EDF R&D
+// Copyright (C) 2021-2023  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 
 %{
 #include "KernelBasis.hxx"
+#include "HeatMarcel.hxx"
+#include "libSALOMELog.hxx"
+#include "Monitoring.hxx"
+using namespace SALOME;
 %}
 
-%include "std_string.i"
+%include std_string.i
+%include std_set.i
+%include std_except.i
+%include std_vector.i
+
+%template(dvec) std::vector<double>;
+
+%exception {
+   try 
+   {
+      $action
+   } 
+   catch(std::exception& e) 
+   {
+      SWIG_exception(SWIG_SystemError, e.what() );
+   } 
+   catch(...) 
+   {
+     SWIG_exception(SWIG_UnknownError, "Unknown exception");
+   }
+}
+
+%rename (HeatMarcel) HeatMarcelSwig;
 
 bool getSSLMode();
 void setSSLMode(bool sslMode);
 
+bool getGUIMode();
+void setGUIMode(bool guiMode);
+
 std::string getIOROfEmbeddedNS();
 void setIOROfEmbeddedNS(const std::string& ior);
+
+double GetTimeAdjustmentCst();
+
+long LaunchMonitoring(const std::string& pyScriptToEvaluate);
+
+void StopMonitoring(long pid);
+
+bool VerbosityActivated();
+
+void SetVerbosityActivated(bool flag);
+
+bool IsDebugLevel();
+
+bool IsInfoLevel();
+
+bool IsWarningLevel();
+
+bool IsErrorLevel();
+
+void WriteInStdout(const std::string& msg);
+
+void WriteInStderr(const std::string& msg);
+
+%rename (SetVerbosityLevel) SetVerbosityLevelSwig;
+%rename (VerbosityLevel) VerbosityLevelSwig;
+
+%inline
+{
+PyObject *HeatMarcelSwig(double timeAjustment, unsigned int nbThreads = 0)
+{
+  double timeInS = 0.0;
+  long double piVal = HeatMarcel(timeAjustment,timeInS,nbThreads);
+  PyObject *ret(PyTuple_New(2));
+  PyTuple_SetItem(ret,0,SWIG_From_double((double)piVal));
+  PyTuple_SetItem(ret,1,SWIG_From_double(timeInS));
+  return ret;
+}
+
+std::vector<double> ReadFloatsInFileSwig(const std::string& fileName)
+{
+  std::vector<double> ret;
+  try
+  {
+    ret = SALOME::ReadFloatsInFile( fileName );
+  }
+  catch(std::exception& e) { }
+  return ret;
+}
+
+void SetVerbosityLevelSwig(const std::string& level)
+{
+  SetVerbosityLevelStr(level);
+}
+
+std::string VerbosityLevelSwig()
+{
+  return VerbosityLevelStr();
+}
+}
+
+%pythoncode %{
+def ReadFloatsInFile( fileName ):
+  ret = ReadFloatsInFileSwig( fileName )
+  return ret
+%}
\ No newline at end of file