Salome HOME
Merge 'master' branch into 'V9_dev' branch.
[modules/smesh.git] / src / SMESH_I / SMESH_Gen_i.hxx
index e5bd4f95ddc4ebe46783068c5ce8b2e5f5b45112..a0667465611147aab0f9b9af9bea00c3f6201736 100644 (file)
@@ -152,8 +152,9 @@ public:
   // Get CORBA object corresponding to the SALOMEDS::SObject
   static CORBA::Object_var SObjectToObject( SALOMEDS::SObject_ptr theSObject );
   // Get the SALOMEDS::SObject corresponding to a CORBA object
-  static SALOMEDS::SObject_ptr ObjectToSObject(SALOMEDS::Study_ptr theStudy,
-                                               CORBA::Object_ptr   theObject);
+  static SALOMEDS::SObject_ptr ObjectToSObject(CORBA::Object_ptr theObject);
+  // Get the SALOMEDS::Study from naming service
+  static SALOMEDS::Study_ptr getStudyServant();
   // Get GEOM Object corresponding to TopoDS_Shape
   GEOM::GEOM_Object_ptr ShapeToGeomObject (const TopoDS_Shape& theShape );
   // Get TopoDS_Shape corresponding to GEOM_Object
@@ -180,15 +181,19 @@ public:
   //GEOM::GEOM_Gen_ptr SetGeomEngine( const char* containerLoc );
   void SetGeomEngine( GEOM::GEOM_Gen_ptr geomcompo );
 
-  // Set current study
+  // Set embedded mode
   void SetEmbeddedMode( CORBA::Boolean theMode );
-  // Get current study
+  // Check embedded mode
   CORBA::Boolean IsEmbeddedMode();
 
-  // Set current study
-  void SetCurrentStudy( SALOMEDS::Study_ptr theStudy );
-  // Get current study
-  SALOMEDS::Study_ptr GetCurrentStudy();
+  // Set enable publishing in the study
+  void SetEnablePublish( CORBA::Boolean theIsEnablePublish );
+
+  // Check enable publishing
+  CORBA::Boolean IsEnablePublish();
+
+  // Update study
+  void UpdateStudy();
 
   // Create hypothesis/algorothm of given type
   SMESH::SMESH_Hypothesis_ptr CreateHypothesis (const char* theHypType,
@@ -376,9 +381,14 @@ public:
                                               CORBA::Double                 mergeTolerance)
     throw ( SALOME::SALOME_Exception );
 
+  // Get version of MED format being used.
+  char* GetMEDFileVersion();
+
   // Get MED version of the file by its name
-  CORBA::Boolean GetMEDVersion(const char* theFileName,
-                               SMESH::MED_VERSION& theVersion);
+  char* GetMEDVersion(const char* theFileName);
+
+  // Check compatibility of file with MED format being used.
+  CORBA::Boolean CheckCompatibility(const char* theFileName);
 
   // Get names of meshes defined in file with the specified name
   SMESH::string_array* GetMeshNames(const char* theFileName);
@@ -435,8 +445,7 @@ public:
   // Returns true if object can be published in the study
   bool CanPublishInStudy( CORBA::Object_ptr theIOR );
   // Publish object in the study
-  SALOMEDS::SObject_ptr PublishInStudy( SALOMEDS::Study_ptr   theStudy,
-                                        SALOMEDS::SObject_ptr theSObject,
+  SALOMEDS::SObject_ptr PublishInStudy( SALOMEDS::SObject_ptr theSObject,
                                         CORBA::Object_ptr     theObject,
                                         const char*           theName )
     throw ( SALOME::SALOME_Exception );
@@ -465,19 +474,17 @@ public:
   // Dump python
   // ============
 
-  virtual Engines::TMPFile* DumpPython(CORBA::Object_ptr theStudy,
-                                       CORBA::Boolean isPublished,
+  virtual Engines::TMPFile* DumpPython(CORBA::Boolean isPublished,
                                        CORBA::Boolean isMultiFile,
                                        CORBA::Boolean& isValidScript);
 
-  void AddToPythonScript (int theStudyID, const TCollection_AsciiString& theString);
+  void AddToPythonScript (const TCollection_AsciiString& theString);
 
-  void RemoveLastFromPythonScript (int theStudyID);
+  void RemoveLastFromPythonScript();
 
-  void SavePython (SALOMEDS::Study_ptr theStudy);
+  void SavePython();
 
-  TCollection_AsciiString DumpPython_impl (SALOMEDS::Study_ptr theStudy,
-                                           Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
+  TCollection_AsciiString DumpPython_impl (Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
                                            Resource_DataMapOfAsciiStringAsciiString& theNames,
                                            bool isPublished,
                                            bool isMultiFile,
@@ -485,9 +492,9 @@ public:
                                            bool& aValidScript,
                                            TCollection_AsciiString& theSavedTrace);
 
-  TCollection_AsciiString GetNewPythonLines (int theStudyID);
+  TCollection_AsciiString GetNewPythonLines();
 
-  void CleanPythonTrace (int theStudyID);
+  void CleanPythonTrace();
 
   // *****************************************
   // Internal methods
@@ -517,33 +524,26 @@ public:
   static long GetBallElementsGroupsTag();
 
   // publishing methods
-  SALOMEDS::SComponent_ptr PublishComponent(SALOMEDS::Study_ptr theStudy);
-  SALOMEDS::SObject_ptr PublishMesh (SALOMEDS::Study_ptr   theStudy,
-                                     SMESH::SMESH_Mesh_ptr theMesh,
+  SALOMEDS::SComponent_ptr PublishComponent();
+  SALOMEDS::SObject_ptr PublishMesh (SMESH::SMESH_Mesh_ptr theMesh,
                                      const char*           theName = 0);
-  SALOMEDS::SObject_ptr PublishHypothesis (SALOMEDS::Study_ptr         theStudy,
-                                           SMESH::SMESH_Hypothesis_ptr theHyp,
+  SALOMEDS::SObject_ptr PublishHypothesis (SMESH::SMESH_Hypothesis_ptr theHyp,
                                            const char*                 theName = 0);
-  SALOMEDS::SObject_ptr PublishSubMesh (SALOMEDS::Study_ptr      theStudy,
-                                        SMESH::SMESH_Mesh_ptr    theMesh,
+  SALOMEDS::SObject_ptr PublishSubMesh (SMESH::SMESH_Mesh_ptr    theMesh,
                                         SMESH::SMESH_subMesh_ptr theSubMesh,
                                         GEOM::GEOM_Object_ptr    theShapeObject,
                                         const char*              theName = 0);
-  SALOMEDS::SObject_ptr PublishGroup (SALOMEDS::Study_ptr    theStudy,
-                                      SMESH::SMESH_Mesh_ptr  theMesh,
+  SALOMEDS::SObject_ptr PublishGroup (SMESH::SMESH_Mesh_ptr  theMesh,
                                       SMESH::SMESH_GroupBase_ptr theGroup,
                                       GEOM::GEOM_Object_ptr  theShapeObject,
                                       const char*            theName = 0);
-  bool AddHypothesisToShape(SALOMEDS::Study_ptr         theStudy,
-                            SMESH::SMESH_Mesh_ptr       theMesh,
+  bool AddHypothesisToShape(SMESH::SMESH_Mesh_ptr       theMesh,
                             GEOM::GEOM_Object_ptr       theShapeObject,
                             SMESH::SMESH_Hypothesis_ptr theHyp);
-  bool RemoveHypothesisFromShape(SALOMEDS::Study_ptr         theStudy,
-                                 SMESH::SMESH_Mesh_ptr       theMesh,
+  bool RemoveHypothesisFromShape(SMESH::SMESH_Mesh_ptr       theMesh,
                                  GEOM::GEOM_Object_ptr       theShapeObject,
                                  SMESH::SMESH_Hypothesis_ptr theHyp);
-  SALOMEDS::SObject_ptr GetMeshOrSubmeshByShape (SALOMEDS::Study_ptr   theStudy,
-                                                 SMESH::SMESH_Mesh_ptr theMesh,
+  SALOMEDS::SObject_ptr GetMeshOrSubmeshByShape (SMESH::SMESH_Mesh_ptr theMesh,
                                                  GEOM::GEOM_Object_ptr theShape);
   static void SetName(SALOMEDS::SObject_ptr theSObject,
                       const char*           theName,
@@ -553,7 +553,7 @@ public:
                         const char*           thePixMap);
 
   //  Get study context
-  StudyContext* GetCurrentStudyContext();
+  StudyContext* GetStudyContext();
 
   // Register an object in a StudyContext; return object id
   int RegisterObject(CORBA::Object_ptr theObject);
@@ -565,7 +565,7 @@ public:
   template<class TInterface>
     typename TInterface::_var_type GetObjectByOldId( const int oldID )
   {
-    if ( StudyContext* myStudyContext = GetCurrentStudyContext() ) {
+    if ( myStudyContext ) {
       std::string ior = myStudyContext->getIORbyOldId( oldID );
       if ( !ior.empty() )
         return TInterface::_narrow(GetORB()->string_to_object( ior.c_str() ));
@@ -573,9 +573,6 @@ public:
     return TInterface::_nil();
   }
 
-  // Get current study ID
-  int GetCurrentStudyID();
-
   /*!
    * \brief Find SObject for an algo
    */
@@ -651,9 +648,6 @@ private:
                                                 const char* theCommandNameForPython,
                                                 const char* theFileNameForPython);
 
-  void setCurrentStudy( SALOMEDS::Study_ptr theStudy,
-                        bool                theStudyIsBeingClosed=false);
-
   std::vector<long> _GetInside(SMESH::SMESH_IDSource_ptr meshPart,
                                SMESH::ElementType     theElemType,
                                TopoDS_Shape& aShape,
@@ -671,11 +665,11 @@ private:
   // hypotheses managing
   std::map<std::string, GenericHypothesisCreator_i*> myHypCreatorMap;
 
-  std::map<int, StudyContext*>   myStudyContextMap;  // Map of study context objects
+  StudyContext*                  myStudyContext;  // study context
 
   GEOM_Client*                   myShapeReader;      // Shape reader
-  SALOMEDS::Study_var            myCurrentStudy;     // Current study
   CORBA::Boolean                 myIsEmbeddedMode;   // Current mode
+  CORBA::Boolean                 myIsEnablePublish;  // Enable publishing
 
   // Default color of groups
   std::string myDefaultGroupColor;
@@ -684,11 +678,11 @@ private:
   bool myToForgetMeshDataOnHypModif;
 
   // Dump Python: trace of API methods calls
-  std::map < int, Handle(TColStd_HSequenceOfAsciiString) > myPythonScripts;
-  bool                                                     myIsHistoricalPythonDump;
-  std::vector< int >                                       myLastParamIndex;
-  std::vector< std::string >                               myLastParameters;
-  std::string                                              myLastObj;
+  Handle(TColStd_HSequenceOfAsciiString) myPythonScript;
+  bool                                   myIsHistoricalPythonDump;
+  std::vector< int >                     myLastParamIndex;
+  std::vector< std::string >             myLastParameters;
+  std::string                            myLastObj;
 };