0021375: EDF 1671 SMESH: Dump study of current state

+  virtual void  SetOption(const char*, const char*);
+  virtual char* GetOption(const char*);
+  bool                                                     myIsHistoricalPythonDump;
This commit is contained in:
eap 2012-02-09 13:17:21 +00:00
parent f6cd6404d7
commit 2978b5432c
2 changed files with 56 additions and 0 deletions

View File

@ -283,6 +283,7 @@ SMESH_Gen_i::SMESH_Gen_i( CORBA::ORB_ptr orb,
myIsEmbeddedMode = false; myIsEmbeddedMode = false;
myShapeReader = NULL; // shape reader myShapeReader = NULL; // shape reader
mySMESHGen = this; mySMESHGen = this;
myIsHistoricalPythonDump = true;
// set it in standalone mode only // set it in standalone mode only
//OSD::SetSignal( true ); //OSD::SetSignal( true );
@ -805,6 +806,46 @@ void SMESH_Gen_i::SetDefaultNbSegments(CORBA::Long theNbSegments)
THROW_SALOME_CORBA_EXCEPTION( "non-positive number of segments", SALOME::BAD_PARAM ); THROW_SALOME_CORBA_EXCEPTION( "non-positive number of segments", SALOME::BAD_PARAM );
} }
//=============================================================================
/*!
Set an option value
*/
//=============================================================================
void SMESH_Gen_i::SetOption(const char* name, const char* value)
{
if ( name && value &&
strcmp(name, "historical_python_dump") == 0 &&
strlen( value ) > 0 )
{
myIsHistoricalPythonDump = ( value[0] == '1' || toupper(value[0]) == 'T' ); // 1 || true
// update preferences in case if SetOption() is invoked from python console
CORBA::Object_var obj = SMESH_Gen_i::GetNS()->Resolve( "/Kernel/Session" );
SALOME::Session_var session = SALOME::Session::_narrow( obj );
if ( !CORBA::is_nil( session ) ) {
string msg("preferences:SMESH:historical_python_dump:");
msg += myIsHistoricalPythonDump ? "true" : "false";
session->emitMessageOneWay(msg.c_str());
}
}
}
//=============================================================================
/*!
Return an option value
*/
//=============================================================================
char* SMESH_Gen_i::GetOption(const char* name)
{
if ( name && strcmp(name, "historical_python_dump") == 0 )
{
return CORBA::string_dup( myIsHistoricalPythonDump ? "true" : "false" );
}
return CORBA::string_dup( "" );
}
//============================================================================= //=============================================================================
/*! /*!
* SMESH_Gen_i::CreateMesh * SMESH_Gen_i::CreateMesh
@ -3793,6 +3834,8 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
return false; return false;
} }
TPythonDump pd; // prevent dump during loading
DriverMED_R_SMESHDS_Mesh myReader; DriverMED_R_SMESHDS_Mesh myReader;
myReader.SetFile( meshfile.ToCString() ); myReader.SetFile( meshfile.ToCString() );
@ -4772,6 +4815,8 @@ bool SMESH_Gen_i::Load( SALOMEDS::SComponent_ptr theComponent,
if ( !isMultiFile ) if ( !isMultiFile )
SALOMEDS_Tool::RemoveTemporaryFiles( tmpDir.ToCString(), aFileSeq.in(), true ); SALOMEDS_Tool::RemoveTemporaryFiles( tmpDir.ToCString(), aFileSeq.in(), true );
pd << ""; // prevent optimizing pd out
INFOS( "SMESH_Gen_i::Load completed" ); INFOS( "SMESH_Gen_i::Load completed" );
return true; return true;
} }

View File

@ -213,6 +213,15 @@ public:
*/ */
void SetDefaultNbSegments(CORBA::Long theNbSegments) throw ( SALOME::SALOME_Exception ); void SetDefaultNbSegments(CORBA::Long theNbSegments) throw ( SALOME::SALOME_Exception );
/*!
Set an option value
*/
virtual void SetOption(const char*, const char*);
/*!
Return an option value
*/
virtual char* GetOption(const char*);
// Create empty mesh on a shape // Create empty mesh on a shape
SMESH::SMESH_Mesh_ptr CreateMesh( GEOM::GEOM_Object_ptr theShapeObject ) SMESH::SMESH_Mesh_ptr CreateMesh( GEOM::GEOM_Object_ptr theShapeObject )
throw ( SALOME::SALOME_Exception ); throw ( SALOME::SALOME_Exception );
@ -439,6 +448,7 @@ public:
Resource_DataMapOfAsciiStringAsciiString& theNames, Resource_DataMapOfAsciiStringAsciiString& theNames,
bool isPublished, bool isPublished,
bool isMultiFile, bool isMultiFile,
bool isHistoricalDump,
bool& aValidScript, bool& aValidScript,
const TCollection_AsciiString& theSavedTrace); const TCollection_AsciiString& theSavedTrace);
@ -580,6 +590,7 @@ private:
// Dump Python: trace of API methods calls // Dump Python: trace of API methods calls
std::map < int, Handle(TColStd_HSequenceOfAsciiString) > myPythonScripts; std::map < int, Handle(TColStd_HSequenceOfAsciiString) > myPythonScripts;
bool myIsHistoricalPythonDump;
}; };