1 // Copyright (C) 2011-2012 CEA/DEN, EDF R&D
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.
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.
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
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #include "HOMARD_Iteration_i.hxx"
21 #include "HOMARD_Gen_i.hxx"
22 #include "HOMARD_Iteration.hxx"
23 #include "HOMARD_DriverTools.hxx"
25 #include "SALOMEDS_Tool.hxx"
27 #include "utilities.h"
29 //=============================================================================
31 * standard constructor
33 //=============================================================================
34 HOMARD_Iteration_i::HOMARD_Iteration_i()
36 MESSAGE( "Default constructor, not for use" );
40 //=============================================================================
42 * standard constructor
44 //=============================================================================
45 HOMARD_Iteration_i::HOMARD_Iteration_i( CORBA::ORB_ptr orb,
46 HOMARD::HOMARD_Gen_var engine )
48 MESSAGE("constructor");
51 myHomardIteration = new ::HOMARD_Iteration();
52 ASSERT( myHomardIteration );
55 //=============================================================================
59 //=============================================================================
60 HOMARD_Iteration_i::~HOMARD_Iteration_i()
64 //=============================================================================
67 //=============================================================================
68 void HOMARD_Iteration_i::SetName( const char* Name )
70 ASSERT( myHomardIteration );
71 myHomardIteration->SetName( Name );
74 //=============================================================================
75 char* HOMARD_Iteration_i::GetName()
77 ASSERT( myHomardIteration );
78 return CORBA::string_dup( myHomardIteration->GetName().c_str() );
81 //=============================================================================
82 char* HOMARD_Iteration_i::GetDumpPython()
84 ASSERT( myHomardIteration );
85 return CORBA::string_dup( myHomardIteration->GetDumpPython().c_str() );
88 //=============================================================================
89 void HOMARD_Iteration_i::SetEtat( CORBA::Boolean Etat )
91 ASSERT( myHomardIteration );
92 myHomardIteration->SetEtat( Etat );
95 //=============================================================================
96 CORBA::Boolean HOMARD_Iteration_i::GetEtat()
98 ASSERT( myHomardIteration );
99 return CORBA::Boolean( myHomardIteration->GetEtat());
102 //=============================================================================
103 void HOMARD_Iteration_i::SetNumber( CORBA::Long NumIter )
105 ASSERT( myHomardIteration );
106 myHomardIteration->SetNumber( NumIter );
109 //=============================================================================
110 CORBA::Long HOMARD_Iteration_i::GetNumber()
112 ASSERT( myHomardIteration );
113 return myHomardIteration->GetNumber() ;
116 //=============================================================================
117 void HOMARD_Iteration_i::SetMeshName( const char* NomMesh )
119 ASSERT( myHomardIteration );
120 myHomardIteration->SetMeshName( NomMesh );
123 //=============================================================================
124 char* HOMARD_Iteration_i::GetMeshName()
126 ASSERT( myHomardIteration );
127 return CORBA::string_dup( myHomardIteration->GetMeshName().c_str() );
130 //=============================================================================
131 char* HOMARD_Iteration_i::GetIterParentName()
133 ASSERT( myHomardIteration );
134 return CORBA::string_dup( myHomardIteration->GetIterParentName().c_str() );
137 //=============================================================================
138 HOMARD::HOMARD_Iteration_ptr HOMARD_Iteration_i::GetIterParent()
140 // Nom de l'iteration parent
141 char* NomIterParent = GetIterParentName() ;
142 MESSAGE ( "GetIterParent : NomIterParent = " << NomIterParent );
143 // On passe par la methode sur l'objet HOMARD
144 // Il serait plus elegant de tout faire ici, mais il est complexe de passer tout le contexte
145 return _gen_i->GetIteration(NomIterParent) ;
150 //=============================================================================
151 HOMARD::listeIterFilles* HOMARD_Iteration_i::GetIterations()
153 ASSERT( myHomardIteration );
154 const std::list<std::string>& maListe = myHomardIteration->GetIterations();
155 HOMARD::listeIterFilles_var aResult = new HOMARD::listeIterFilles;
156 aResult->length( maListe.size() );
157 std::list<std::string>::const_iterator it;
159 for ( it = maListe.begin(); it != maListe.end(); it++ )
161 aResult[i++] = CORBA::string_dup( (*it).c_str() );
163 return aResult._retn();
166 //=============================================================================
167 void HOMARD_Iteration_i::SetIterParentName( const char* NomIterParent )
169 ASSERT( myHomardIteration );
170 myHomardIteration->SetIterParentName( NomIterParent );
173 //=============================================================================
174 void HOMARD_Iteration_i::AddIteration( const char* NomIteration )
176 ASSERT( myHomardIteration );
177 myHomardIteration->AddIteration( NomIteration );
180 //=============================================================================
181 HOMARD::HOMARD_Iteration_ptr HOMARD_Iteration_i::NextIteration( const char* IterName )
183 // Nom de l'iteration parent
184 char* NomIterParent = GetName() ;
185 MESSAGE ( "NextIteration : IterName = " << IterName );
186 MESSAGE ( "NextIteration : NomIterParent = " << NomIterParent );
187 // On passe par la methode sur l'objet HOMARD
188 // Il serait plus elegant de tout faire ici, mais il est complexe de passer tout le contexte
189 return _gen_i->CreateIteration(IterName, NomIterParent) ;
193 //=============================================================================
194 CORBA::Long HOMARD_Iteration_i::Compute(CORBA::Long etatMenage)
196 MESSAGE ( "Compute : calcul d'une iteration" );
197 ASSERT( myHomardIteration );
199 // Nom de l'iteration
200 char* IterName = GetName() ;
201 MESSAGE ( ". IterName = " << IterName );
202 // On passe par la methode sur l'objet HOMARD
203 // Il serait plus elegant de tout faire ici, mais il est complexe de passer tout le contexte
204 return _gen_i->Compute(IterName, etatMenage) ;
207 //=============================================================================
208 void HOMARD_Iteration_i::SetMeshFile( const char* MeshFile )
210 ASSERT( myHomardIteration );
211 myHomardIteration->SetMeshFile( MeshFile );
214 //=============================================================================
215 char* HOMARD_Iteration_i::GetMeshFile()
217 ASSERT( myHomardIteration );
218 return CORBA::string_dup( myHomardIteration->GetMeshFile().c_str() );
221 //=============================================================================
222 char* HOMARD_Iteration_i::GetCaseName()
224 ASSERT( myHomardIteration );
225 return CORBA::string_dup( myHomardIteration->GetCaseName().c_str() );
228 //=============================================================================
229 void HOMARD_Iteration_i::SetCaseName( const char* NomCas )
231 ASSERT( myHomardIteration );
232 myHomardIteration->SetCaseName( NomCas );
235 //=============================================================================
236 char* HOMARD_Iteration_i::GetDirName()
238 ASSERT( myHomardIteration );
239 return CORBA::string_dup( myHomardIteration->GetDirName().c_str() );
242 //=============================================================================
243 void HOMARD_Iteration_i::SetDirName( const char* NomDir )
245 ASSERT( myHomardIteration );
246 myHomardIteration->SetDirName( NomDir );
249 //=============================================================================
250 void HOMARD_Iteration_i::AssociateHypo( const char* NomHypo )
252 ASSERT( myHomardIteration );
254 // Nom de l'iteration
255 char* IterName = GetName() ;
256 MESSAGE ( ". IterName = " << IterName );
257 // On passe par la methode sur l'objet HOMARD
258 // Il serait plus elegant de tout faire ici, mais il est complexe de passer tout le contexte
259 return _gen_i->AssociateIterHypo(IterName, NomHypo) ;
262 //=============================================================================
263 char* HOMARD_Iteration_i::GetHypoName()
265 ASSERT( myHomardIteration );
266 return CORBA::string_dup( myHomardIteration->GetHypoName().c_str() );
269 //=============================================================================
270 // HOMARD::HOMARD_Hypothesis_ptr HOMARD_Iteration_i::GetHypo()
272 // // Nom de l'hypothese
273 // char* NomHypo = GetHypoName() ;
274 // MESSAGE ( "GetHypo : NomHypo = " << NomHypo );
275 // // On passe par la methode sur l'objet HOMARD
276 // // Il serait plus elegant de tout faire ici, mais il est complexe de passer tout le contexte
277 // return _gen_i->GetHypothesis(NomHypo) ;
280 //=============================================================================
281 void HOMARD_Iteration_i::SetHypoName( const char* NomHypo )
283 ASSERT( myHomardIteration );
284 myHomardIteration->SetHypoName( NomHypo );
287 //=============================================================================
288 void HOMARD_Iteration_i::SetFieldFile( const char* FieldFile )
290 ASSERT( myHomardIteration );
291 myHomardIteration->SetFieldFile( FieldFile );
294 //=============================================================================
295 char* HOMARD_Iteration_i::GetFieldFile()
297 ASSERT( myHomardIteration );
298 return CORBA::string_dup( myHomardIteration->GetFieldFile().c_str() );
301 //=============================================================================
302 void HOMARD_Iteration_i::SetTimeStepRank( CORBA::Long TimeStep, CORBA::Long Rank )
304 ASSERT( myHomardIteration );
305 myHomardIteration->SetTimeStepRank( TimeStep, Rank );
308 //=============================================================================
309 CORBA::Long HOMARD_Iteration_i::GetTimeStep()
311 ASSERT( myHomardIteration );
312 return CORBA::Long( myHomardIteration->GetTimeStep() );
315 //=============================================================================
316 CORBA::Long HOMARD_Iteration_i::GetRank()
318 ASSERT( myHomardIteration );
319 return CORBA::Long( myHomardIteration->GetRank() );
322 //=============================================================================
323 void HOMARD_Iteration_i::SetMessFile( const char* MessFile )
325 ASSERT( myHomardIteration );
326 myHomardIteration->SetMessFile( MessFile );
329 //=============================================================================
330 char* HOMARD_Iteration_i::GetMessFile()
332 ASSERT( myHomardIteration );
333 return CORBA::string_dup( myHomardIteration->GetMessFile().c_str() );
335 //=============================================================================
336 std::string HOMARD_Iteration_i::Dump() const
338 return HOMARD::Dump( *myHomardIteration );
341 //=============================================================================
342 bool HOMARD_Iteration_i::Restore( const std::string& stream )
344 return HOMARD::Restore( *myHomardIteration, stream );