Salome HOME
[EDF30062] [EDF29150]: Additional fault tolerant mecanism
[modules/kernel.git] / src / Basics / KernelBasis.i
1 // Copyright (C) 2021-2024  CEA, EDF
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19
20 %module KernelBasis
21
22 %{
23 #include "KernelBasis.hxx"
24 #include "HeatMarcel.hxx"
25 #include "libSALOMELog.hxx"
26 #include "Monitoring.hxx"
27 using namespace SALOME;
28 %}
29
30 %include std_string.i
31 %include std_set.i
32 %include std_except.i
33 %include std_vector.i
34
35 %template(dvec) std::vector<double>;
36 %template(strvec) std::vector<std::string>;
37
38 %exception {
39    try 
40    {
41       $action
42    } 
43    catch(std::exception& e) 
44    {
45       SWIG_exception(SWIG_SystemError, e.what() );
46    } 
47    catch(...) 
48    {
49      SWIG_exception(SWIG_UnknownError, "Unknown exception");
50    }
51 }
52
53 %rename (HeatMarcel) HeatMarcelSwig;
54 %rename (GetBigObjOnDiskThreshold) GetBigObjOnDiskThresholdSwig;
55 %rename (SetBigObjOnDiskThreshold) SetBigObjOnDiskThresholdSwig;
56 %rename (GetBigObjOnDiskDirectory) GetBigObjOnDiskDirectorySwig;
57 %rename (SetBigObjOnDiskDirectory) SetBigObjOnDiskDirectorySwig;
58 %rename (BigObjOnDiskDirectoryDefined) BigObjOnDiskDirectoryDefinedSwig;
59 %rename (SetNumberOfRetry) SetNumberOfRetrySwig;
60 %rename (GetNumberOfRetry) GetNumberOfRetrySwig;
61
62 bool getSSLMode();
63 void setSSLMode(bool sslMode);
64
65 bool getGUIMode();
66 void setGUIMode(bool guiMode);
67
68 std::string getIOROfEmbeddedNS();
69 void setIOROfEmbeddedNS(const std::string& ior);
70
71 double GetTimeAdjustmentCst();
72
73 long LaunchMonitoring(const std::string& pyScriptToEvaluate);
74
75 void StopMonitoring(long pid);
76
77 bool VerbosityActivated();
78
79 void SetVerbosityActivated(bool flag);
80
81 bool IsDebugLevel();
82
83 bool IsInfoLevel();
84
85 bool IsWarningLevel();
86
87 bool IsErrorLevel();
88
89 void WriteInStdout(const std::string& msg);
90
91 void WriteInStderr(const std::string& msg);
92
93 %rename (SetVerbosityLevel) SetVerbosityLevelSwig;
94 %rename (VerbosityLevel) VerbosityLevelSwig;
95 %rename (SetPyExecutionMode) SetPyExecutionModeStrSwig;
96 %rename (GetPyExecutionMode) GetPyExecutionModeStrSwig;
97 %rename (GetAllPyExecutionModes) GetAllPyExecutionModesSwig;
98
99 %inline
100 {
101 PyObject *HeatMarcelSwig(double timeAjustment, unsigned int nbThreads = 0)
102 {
103   double timeInS = 0.0;
104   long double piVal = HeatMarcel(timeAjustment,timeInS,nbThreads);
105   PyObject *ret(PyTuple_New(2));
106   PyTuple_SetItem(ret,0,SWIG_From_double((double)piVal));
107   PyTuple_SetItem(ret,1,SWIG_From_double(timeInS));
108   return ret;
109 }
110
111 std::vector<double> ReadFloatsInFileSwig(const std::string& fileName)
112 {
113   std::vector<double> ret;
114   try
115   {
116     ret = SALOME::ReadFloatsInFile( fileName );
117   }
118   catch(std::exception& e) { }
119   return ret;
120 }
121
122 int GetBigObjOnDiskThresholdSwig()
123 {
124   return SALOME::GetBigObjOnDiskThreshold();
125 }
126
127 void SetBigObjOnDiskThresholdSwig(int newThreshold)
128 {
129   return SALOME::SetBigObjOnDiskThreshold(newThreshold);
130 }
131
132 std::string GetBigObjOnDiskDirectorySwig()
133 {
134   return SALOME::GetBigObjOnDiskDirectory();
135 }
136
137 void SetBigObjOnDiskDirectorySwig(const std::string& directory)
138 {
139   return SALOME::SetBigObjOnDiskDirectory(directory);
140 }
141
142 bool BigObjOnDiskDirectoryDefinedSwig()
143 {
144   return SALOME::BigObjOnDiskDirectoryDefined();
145 }
146
147 void SetNumberOfRetrySwig(int nbRetry)
148 {
149   SALOME::SetNumberOfRetry( nbRetry );
150 }
151
152 int GetNumberOfRetrySwig()
153 {
154   return SALOME::GetNumberOfRetry( );
155 }
156
157 void SetVerbosityLevelSwig(const std::string& level)
158 {
159   SetVerbosityLevelStr(level);
160 }
161
162 std::string VerbosityLevelSwig()
163 {
164   return VerbosityLevelStr();
165 }
166
167 void SetPyExecutionModeStrSwig(const std::string& mode)
168 {
169   SetPyExecutionModeStr( mode );
170 }
171
172 std::string GetPyExecutionModeStrSwig()
173 {
174   return GetPyExecutionModeStr();
175 }
176
177 std::vector<std::string> GetAllPyExecutionModesSwig()
178 {
179   return GetAllPyExecutionModes();
180 }
181 }
182
183 %pythoncode %{
184 def ReadFloatsInFile( fileName ):
185   ret = ReadFloatsInFileSwig( fileName )
186   return ret
187 %}