Salome HOME
Merge branch 'V9_9_BR'
[modules/smesh.git] / src / SMESH_I / SMESH_PythonDump.hxx
index 8f1a7971512e0db8ee75d2663ea374f3bc932c22..cfa97b41b5bdab13b55d91f46a18db99e4816502 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -62,14 +62,13 @@ public:
    * \param theRemovedObjIDs - entries of objects whose created commands were removed
    * \param theHistoricalDump - true means to keep all commands, false means
    *        to exclude commands relating to objects removed from study
-   * \retval TCollection_AsciiString - Convertion result
+   * \retval TCollection_AsciiString - Conversion result
    */
   static void
   ConvertScript(std::list< TCollection_AsciiString >&     theScriptLines,
                 Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod,
                 Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
                 std::set< TCollection_AsciiString >&      theRemovedObjIDs,
-                SALOMEDS::Study_ptr&                      theStudy,
                 const bool                                theHistoricalDump);
 
   /*!
@@ -90,7 +89,7 @@ namespace SMESH
 
   // ===========================================================================================
   /*!
-   * \brief Object used to make TPythonDump know that its held value can be a varible
+   * \brief Object used to make TPythonDump know that its held value can be a variable
    *
    * TPythonDump substitute TVar with names of notebook variables if any.
    */
@@ -100,9 +99,10 @@ namespace SMESH
   {
     std::vector< std::string > myVals;
     bool                       myIsList;
-    TVar(CORBA::Double value);
-    TVar(CORBA::Long   value);
-    TVar(CORBA::Short  value);
+    TVar(CORBA::Double   value);
+    TVar(CORBA::Long     value);
+    TVar(CORBA::LongLong value);
+    TVar(CORBA::Short    value);
     TVar(const SMESH::double_array& value);
     // string used to temporary quote variable names in order
     // not to confuse variables with string arguments
@@ -122,7 +122,9 @@ namespace SMESH
     std::ostringstream myStream;
     static size_t      myCounter;
     int                myVarsCounter; // counts stored TVar's
+    SMESH_Gen_i       *mySmesh = nullptr;
   public:
+    TPythonDump(SMESH_Gen_i *smesh);
     TPythonDump();
     virtual ~TPythonDump();
 
@@ -135,6 +137,9 @@ namespace SMESH
     TPythonDump&
     operator<<(int theArg);
 
+    TPythonDump&
+    operator<<(long long theArg);
+
     TPythonDump&
     operator<<(double theArg);
 
@@ -159,6 +164,9 @@ namespace SMESH
     TPythonDump&
     operator<<(const SMESH::long_array& theArg);
 
+    TPythonDump&
+    operator<<(const SMESH::smIdType_array& theArg);
+
     TPythonDump&
     operator<<(const SMESH::double_array& theArg);
 
@@ -201,9 +209,6 @@ namespace SMESH
     TPythonDump&
     operator<<(SMESH_MeshEditor_i* theArg);
 
-    TPythonDump&
-    operator<<(SMESH::MED_VERSION theArg);
-
     TPythonDump&
     operator<<(const SMESH::AxisStruct & theAxis);
 
@@ -231,9 +236,39 @@ namespace SMESH
     TPythonDump&
     operator<<(const SMESH::ListOfIDSources& theList);
 
+    TPythonDump&
+    operator<<(const SMESH::submesh_array& theList);
+
+    TPythonDump&
+    operator<<(const SMESH::ListOfHypothesis& theList);
+
     TPythonDump&
     operator<<(const SMESH::CoincidentFreeBorders& theCFB);
 
+    TPythonDump&
+    operator<<(const std::string& theArg);
+
+
+    template<class TArray, class TStream>
+      static TStream& DumpArray(const TArray& theArray, TStream & theStream)
+    {
+      if ( theArray.length() == 0 )
+      {
+        theStream << "[]";
+      }
+      else
+      {
+        theStream << "[ ";
+        for (CORBA::ULong i = 1; i <= theArray.length(); i++) {
+          theStream << theArray[i-1];
+          if ( i < theArray.length() )
+            theStream << ", ";
+        }
+        theStream << " ]";
+      }
+      return theStream;
+    }
+
     static const char* SMESHGenName() { return "smeshgen"; }
     static const char* MeshEditorName() { return "mesh_editor"; }
     static const char* NotPublishedObjectName();