Improve interface

This commit is contained in:
jfa 2021-12-24 21:48:30 +03:00
parent 082c4ab126
commit b2bc1bc120
3 changed files with 39 additions and 81 deletions

View File

@ -87,42 +87,6 @@ module SMESHHOMARD
string GetCaseCreation() raises (SALOME::SALOME_Exception); string GetCaseCreation() raises (SALOME::SALOME_Exception);
}; };
interface HOMARD_Iteration : SALOME::GenericObj
{
// Generalites
void SetName(in string Name) raises (SALOME::SALOME_Exception);
string GetName() raises (SALOME::SALOME_Exception);
// Caracteristiques
void SetDirNameLoc(in string NomDir) raises (SALOME::SALOME_Exception);
string GetDirNameLoc() raises (SALOME::SALOME_Exception);
string GetDirName() raises (SALOME::SALOME_Exception);
void SetNumber(in long NumIter) raises (SALOME::SALOME_Exception);
long GetNumber() raises (SALOME::SALOME_Exception);
void SetState(in long State) raises (SALOME::SALOME_Exception);
long GetState() raises (SALOME::SALOME_Exception);
void SetMeshName(in string NomMesh) raises (SALOME::SALOME_Exception);
string GetMeshName() raises (SALOME::SALOME_Exception);
void SetMeshFile(in string MeshFile) raises (SALOME::SALOME_Exception);
string GetMeshFile() raises (SALOME::SALOME_Exception);
// Fichier des messages
void SetLogFile(in string LogFile) raises (SALOME::SALOME_Exception);
string GetLogFile() raises (SALOME::SALOME_Exception);
void SetFileInfo(in string FileInfo) raises (SALOME::SALOME_Exception);
string GetFileInfo() raises (SALOME::SALOME_Exception);
// Drivers
void SetInfoCompute(in long MessInfo) raises (SALOME::SALOME_Exception);
long GetInfoCompute() raises (SALOME::SALOME_Exception);
};
interface HOMARD_Cas : SALOME::GenericObj interface HOMARD_Cas : SALOME::GenericObj
{ {
string GetName() raises (SALOME::SALOME_Exception); string GetName() raises (SALOME::SALOME_Exception);
@ -144,8 +108,6 @@ module SMESHHOMARD
in string Group) raises (SALOME::SALOME_Exception); in string Group) raises (SALOME::SALOME_Exception);
ListBoundaryGroupType GetBoundaryGroup() raises (SALOME::SALOME_Exception); ListBoundaryGroupType GetBoundaryGroup() raises (SALOME::SALOME_Exception);
void SupprBoundaryGroup() raises (SALOME::SALOME_Exception); void SupprBoundaryGroup() raises (SALOME::SALOME_Exception);
void AddIteration (in string IterName) raises (SALOME::SALOME_Exception);
}; };
interface HOMARD_Gen : SALOME::GenericObj interface HOMARD_Gen : SALOME::GenericObj
@ -192,12 +154,8 @@ module SMESHHOMARD
// A.2. Information // A.2. Information
HOMARD_Boundary GetBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception); HOMARD_Boundary GetBoundary(in string BoundaryName) raises (SALOME::SALOME_Exception);
HOMARD_Cas GetCase() raises (SALOME::SALOME_Exception); HOMARD_Cas GetCase() raises (SALOME::SALOME_Exception);
HOMARD_Iteration GetIteration(in long numIter) raises (SALOME::SALOME_Exception);
listeBoundarys GetAllBoundarysName() raises (SALOME::SALOME_Exception); listeBoundarys GetAllBoundarysName() raises (SALOME::SALOME_Exception);
// B. CreateIteration
HOMARD_Iteration CreateIteration() raises (SALOME::SALOME_Exception);
void InvalideBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception); void InvalideBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);
long DeleteBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception); long DeleteBoundary (in string BoundaryName) raises (SALOME::SALOME_Exception);

View File

@ -380,7 +380,8 @@ void HOMARD_Cas_i::SetDirName(const char* NomDir)
throw SALOME::SALOME_Exception(es); throw SALOME::SALOME_Exception(es);
} }
// D. En cas de reprise, deplacement du point de depart // D. En cas de reprise, deplacement du point de depart
SMESHHOMARD::HOMARD_Iteration_ptr Iter0 = _gen_i->GetIteration(0); HOMARD_Gen_i* aGenImpl = SMESH::DownCast<HOMARD_Gen_i*>(_gen_i);
HOMARD_Iteration_i* Iter0 = aGenImpl->GetIteration(0);
int state = Iter0->GetNumber(); int state = Iter0->GetNumber();
if (state != 0) { // GetState() if (state != 0) { // GetState()
MESSAGE ("etat : " << state); MESSAGE ("etat : " << state);
@ -660,7 +661,6 @@ void HOMARD_Cas_i::AddIteration(const char* NomIteration)
*/ */
//============================================================================= //=============================================================================
HOMARD_Iteration_i::HOMARD_Iteration_i() HOMARD_Iteration_i::HOMARD_Iteration_i()
: SALOME::GenericObj_i(SMESH_Gen_i::GetPOA())
{ {
MESSAGE("Default constructor, not for use"); MESSAGE("Default constructor, not for use");
ASSERT(0); ASSERT(0);
@ -671,7 +671,6 @@ HOMARD_Iteration_i::HOMARD_Iteration_i()
*/ */
//============================================================================= //=============================================================================
HOMARD_Iteration_i::HOMARD_Iteration_i(SMESHHOMARD::HOMARD_Gen_var engine) HOMARD_Iteration_i::HOMARD_Iteration_i(SMESHHOMARD::HOMARD_Gen_var engine)
: SALOME::GenericObj_i(SMESH_Gen_i::GetPOA())
{ {
MESSAGE("constructor"); MESSAGE("constructor");
_gen_i = engine; _gen_i = engine;
@ -810,6 +809,8 @@ CORBA::Long HOMARD_Iteration_i::GetInfoCompute()
*/ */
//============================================================================= //=============================================================================
HOMARD_Gen_i::HOMARD_Gen_i() : SALOME::GenericObj_i(SMESH_Gen_i::GetPOA()), HOMARD_Gen_i::HOMARD_Gen_i() : SALOME::GenericObj_i(SMESH_Gen_i::GetPOA()),
myIteration0(NULL),
myIteration1(NULL),
_ConfType(0), _ConfType(0),
_KeepMedOUT(true), _KeepMedOUT(true),
_PublishMeshOUT(false), _PublishMeshOUT(false),
@ -884,10 +885,13 @@ CORBA::Long HOMARD_Gen_i::DeleteIteration(int numIter)
MESSAGE ("DeleteIteration : numIter = " << numIter); MESSAGE ("DeleteIteration : numIter = " << numIter);
if (numIter == 0) { if (numIter == 0) {
myIteration0 = SMESHHOMARD::HOMARD_Iteration::_nil(); if (myIteration0 != NULL) {
delete myIteration0;
myIteration0 = NULL;
}
} }
else { else {
if (!CORBA::is_nil(myIteration1)) { if (myIteration1 != NULL) {
// Invalide Iteration // Invalide Iteration
if (myIteration1->GetState() > 0) { if (myIteration1->GetState() > 0) {
myIteration1->SetState(1); myIteration1->SetState(1);
@ -909,7 +913,8 @@ CORBA::Long HOMARD_Gen_i::DeleteIteration(int numIter)
} }
} }
myIteration1 = SMESHHOMARD::HOMARD_Iteration::_nil(); delete myIteration1;
myIteration1 = NULL;
} }
} }
@ -956,24 +961,26 @@ void HOMARD_Gen_i::AssociateCaseIter(int numIter, const char* labelIter)
} }
if (numIter == 0) { if (numIter == 0) {
if (CORBA::is_nil(myIteration0)) { if (myIteration0 == NULL) {
SALOME::ExceptionStruct es; SALOME::ExceptionStruct es;
es.type = SALOME::BAD_PARAM; es.type = SALOME::BAD_PARAM;
es.text = "Invalid iteration"; es.text = "Invalid iteration";
throw SALOME::SALOME_Exception(es); throw SALOME::SALOME_Exception(es);
} }
myCase->AddIteration(myIteration0->GetName()); HOMARD_Cas_i* aCaseImpl = SMESH::DownCast<HOMARD_Cas_i*>(myCase);
aCaseImpl->AddIteration(myIteration0->GetName());
} }
else { else {
if (CORBA::is_nil(myIteration1)) { if (myIteration1 == NULL) {
SALOME::ExceptionStruct es; SALOME::ExceptionStruct es;
es.type = SALOME::BAD_PARAM; es.type = SALOME::BAD_PARAM;
es.text = "Invalid iteration"; es.text = "Invalid iteration";
throw SALOME::SALOME_Exception(es); throw SALOME::SALOME_Exception(es);
} }
myCase->AddIteration(myIteration1->GetName()); HOMARD_Cas_i* aCaseImpl = SMESH::DownCast<HOMARD_Cas_i*>(myCase);
aCaseImpl->AddIteration(myIteration1->GetName());
} }
} }
@ -1016,15 +1023,15 @@ SMESHHOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::GetCase()
return SMESHHOMARD::HOMARD_Cas::_duplicate(myCase); return SMESHHOMARD::HOMARD_Cas::_duplicate(myCase);
} }
//============================================================================= //=============================================================================
SMESHHOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::GetIteration(int numIter) HOMARD_Iteration_i* HOMARD_Gen_i::GetIteration(int numIter)
{ {
if (numIter == 0) { if (numIter == 0) {
ASSERT(!CORBA::is_nil(myIteration0)); ASSERT(myIteration0);
return SMESHHOMARD::HOMARD_Iteration::_duplicate(myIteration0); return myIteration0;
} }
ASSERT(!CORBA::is_nil(myIteration1)); ASSERT(myIteration1);
return SMESHHOMARD::HOMARD_Iteration::_duplicate(myIteration1); return myIteration1;
} }
//============================================================================= //=============================================================================
@ -1040,13 +1047,11 @@ SMESHHOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::newCase()
return aCase._retn(); return aCase._retn();
} }
//============================================================================= //=============================================================================
SMESHHOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::newIteration() HOMARD_Iteration_i* HOMARD_Gen_i::newIteration()
{ {
SMESHHOMARD::HOMARD_Gen_var engine = POA_SMESHHOMARD::HOMARD_Gen::_this(); SMESHHOMARD::HOMARD_Gen_var engine = POA_SMESHHOMARD::HOMARD_Gen::_this();
HOMARD_Iteration_i* aServant = new HOMARD_Iteration_i(engine); HOMARD_Iteration_i* aServant = new HOMARD_Iteration_i(engine);
SMESHHOMARD::HOMARD_Iteration_var aIter = return aServant;
SMESHHOMARD::HOMARD_Iteration::_narrow(aServant->_this());
return aIter._retn();
} }
//============================================================================= //=============================================================================
SMESHHOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::newBoundary() SMESHHOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::newBoundary()
@ -1261,9 +1266,9 @@ SMESHHOMARD::HOMARD_Cas_ptr HOMARD_Gen_i::CreateCase(const char* MeshName,
//============================================================================= //=============================================================================
// Create Iteration1 // Create Iteration1
//============================================================================= //=============================================================================
SMESHHOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration() HOMARD_Iteration_i* HOMARD_Gen_i::CreateIteration()
{ {
if (CORBA::is_nil(myIteration0)) { if (myIteration0 == NULL) {
SALOME::ExceptionStruct es; SALOME::ExceptionStruct es;
es.type = SALOME::BAD_PARAM; es.type = SALOME::BAD_PARAM;
es.text = "The parent iteration is not defined."; es.text = "The parent iteration is not defined.";
@ -1278,12 +1283,12 @@ SMESHHOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration()
} }
const char* nomDirCase = myCase->GetDirName(); const char* nomDirCase = myCase->GetDirName();
if (!myIteration1->_is_nil()) { if (myIteration1 != NULL) {
DeleteIteration(1); DeleteIteration(1);
} }
myIteration1 = newIteration(); myIteration1 = newIteration();
if (CORBA::is_nil(myIteration1)) { if (myIteration1 == NULL) {
SALOME::ExceptionStruct es; SALOME::ExceptionStruct es;
es.type = SALOME::BAD_PARAM; es.type = SALOME::BAD_PARAM;
es.text = "Unable to create the iteration 1"; es.text = "Unable to create the iteration 1";
@ -1323,7 +1328,7 @@ SMESHHOMARD::HOMARD_Iteration_ptr HOMARD_Gen_i::CreateIteration()
std::string label = "IterationHomard_" + nomIterParent; std::string label = "IterationHomard_" + nomIterParent;
AssociateCaseIter(1, label.c_str()); AssociateCaseIter(1, label.c_str());
return SMESHHOMARD::HOMARD_Iteration::_duplicate(myIteration1); return myIteration1;
} }
//============================================================================= //=============================================================================
SMESHHOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundary(const char* BoundaryName, SMESHHOMARD::HOMARD_Boundary_ptr HOMARD_Gen_i::CreateBoundary(const char* BoundaryName,
@ -1527,7 +1532,7 @@ CORBA::Long HOMARD_Gen_i::Compute()
if (_LogInFile) myIteration1->SetLogFile(_LogFile.c_str()); if (_LogInFile) myIteration1->SetLogFile(_LogFile.c_str());
// A.1. L'objet iteration // A.1. L'objet iteration
ASSERT(!CORBA::is_nil(myIteration1)); ASSERT(myIteration1);
// A.2. Controle de la possibilite d'agir // A.2. Controle de la possibilite d'agir
// A.2.1. Etat de l'iteration // A.2.1. Etat de l'iteration
@ -1691,7 +1696,7 @@ CORBA::Long HOMARD_Gen_i::Compute()
PythonDump(); PythonDump();
// Delete log file, if required // Delete log file, if required
if (!myIteration1->_is_nil()) { if (myIteration1 != NULL) {
MESSAGE("myIteration1->GetLogFile() = " << myIteration1->GetLogFile()); MESSAGE("myIteration1->GetLogFile() = " << myIteration1->GetLogFile());
if (_LogInFile && _RemoveLogOnSuccess) { if (_LogInFile && _RemoveLogOnSuccess) {
// Remove log file on success // Remove log file on success
@ -1747,7 +1752,7 @@ CORBA::Long HOMARD_Gen_i::ComputeAdap(SMESHHOMARDImpl::HomardDriver* myDriver)
if (NumeIter < 11) { siter = "0" + siter; } if (NumeIter < 11) { siter = "0" + siter; }
// B. L'iteration parent // B. L'iteration parent
ASSERT(!CORBA::is_nil(myIteration0)); ASSERT(myIteration0);
// C. Le sous-répertoire de l'iteration precedente // C. Le sous-répertoire de l'iteration precedente
char* DirComputePa = ComputeDirPaManagement(); char* DirComputePa = ComputeDirPaManagement();

View File

@ -135,8 +135,7 @@ private:
SMESHHOMARD::HOMARD_Gen_var _gen_i; SMESHHOMARD::HOMARD_Gen_var _gen_i;
}; };
class SMESH_I_EXPORT HOMARD_Iteration_i : public virtual SALOME::GenericObj_i, class SMESH_I_EXPORT HOMARD_Iteration_i
public virtual POA_SMESHHOMARD::HOMARD_Iteration
{ {
public: public:
HOMARD_Iteration_i(SMESHHOMARD::HOMARD_Gen_var gen_i); HOMARD_Iteration_i(SMESHHOMARD::HOMARD_Gen_var gen_i);
@ -172,10 +171,6 @@ public:
void SetFileInfo(const char* FileInfo); void SetFileInfo(const char* FileInfo);
char* GetFileInfo(); char* GetFileInfo();
// Liens avec les autres iterations
void LinkNextIteration(const char* NomIteration);
void UnLinkNextIteration(const char* NomIteration);
// Liens avec les autres structures // Liens avec les autres structures
void SetCaseName(const char* NomCas); void SetCaseName(const char* NomCas);
char* GetCaseName(); char* GetCaseName();
@ -236,12 +231,12 @@ public:
const char* FileName, const char* FileName,
const char* theWorkingDir); const char* theWorkingDir);
SMESHHOMARD::HOMARD_Iteration_ptr CreateIteration(); HOMARD_Iteration_i* CreateIteration();
// Les informations // Les informations
SMESHHOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary); SMESHHOMARD::HOMARD_Boundary_ptr GetBoundary (const char* nomBoundary);
SMESHHOMARD::HOMARD_Cas_ptr GetCase (); SMESHHOMARD::HOMARD_Cas_ptr GetCase ();
SMESHHOMARD::HOMARD_Iteration_ptr GetIteration (CORBA::Long numIter); HOMARD_Iteration_i* GetIteration (CORBA::Long numIter);
SMESHHOMARD::listeBoundarys* GetAllBoundarysName(); SMESHHOMARD::listeBoundarys* GetAllBoundarysName();
@ -285,15 +280,15 @@ public:
private: private:
SMESHHOMARD::HOMARD_Boundary_ptr newBoundary(); SMESHHOMARD::HOMARD_Boundary_ptr newBoundary();
SMESHHOMARD::HOMARD_Cas_ptr newCase(); SMESHHOMARD::HOMARD_Cas_ptr newCase();
SMESHHOMARD::HOMARD_Iteration_ptr newIteration(); HOMARD_Iteration_i* newIteration();
void CleanCase(); void CleanCase();
private: private:
SMESHHOMARDImpl::HOMARD_Gen* myHomard; SMESHHOMARDImpl::HOMARD_Gen* myHomard;
HOMARD_Iteration_i* myIteration0;
HOMARD_Iteration_i* myIteration1;
SMESHHOMARD::HOMARD_Cas_var myCase;
std::map<std::string, SMESHHOMARD::HOMARD_Boundary_var> _mesBoundarys; std::map<std::string, SMESHHOMARD::HOMARD_Boundary_var> _mesBoundarys;
SMESHHOMARD::HOMARD_Iteration_var myIteration0;
SMESHHOMARD::HOMARD_Iteration_var myIteration1;
SMESHHOMARD::HOMARD_Cas_var myCase;
// Preferences // Preferences
int _ConfType; // Le type de conformite ou non conformite int _ConfType; // Le type de conformite ou non conformite