0025748: Parallel version of progress indicator
[occt.git] / src / RWStl / RWStl.cxx
index 347e24d..3224982 100644 (file)
@@ -15,7 +15,7 @@
 
 #include <RWStl.hxx>
 
-#include <Message_ProgressSentry.hxx>
+#include <Message_ProgressScope.hxx>
 #include <NCollection_Vector.hxx>
 #include <OSD_File.hxx>
 #include <OSD_OpenFile.hxx>
@@ -110,7 +110,7 @@ namespace
 //purpose  :
 //=============================================================================
 Handle(Poly_Triangulation) RWStl::ReadFile (const Standard_CString theFile,
-                                            const Handle(Message_ProgressIndicator)& theProgress)
+                                            const Message_ProgressRange& theProgress)
 {
   Reader aReader;
   aReader.Read (theFile, theProgress);
@@ -124,7 +124,7 @@ Handle(Poly_Triangulation) RWStl::ReadFile (const Standard_CString theFile,
 //purpose  :
 //=============================================================================
 Handle(Poly_Triangulation) RWStl::ReadFile (const OSD_Path& theFile,
-                                            const Handle(Message_ProgressIndicator)& theProgress)
+                                            const Message_ProgressRange& theProgress)
 {
   OSD_File aFile(theFile);
   if (!aFile.Exists())
@@ -142,7 +142,7 @@ Handle(Poly_Triangulation) RWStl::ReadFile (const OSD_Path& theFile,
 //purpose  :
 //=============================================================================
 Handle(Poly_Triangulation) RWStl::ReadBinary (const OSD_Path& theFile,
-                                              const Handle(Message_ProgressIndicator)& theProgress)
+                                              const Message_ProgressRange& theProgress)
 {
   OSD_File aFile(theFile);
   if (!aFile.Exists())
@@ -175,7 +175,7 @@ Handle(Poly_Triangulation) RWStl::ReadBinary (const OSD_Path& theFile,
 //purpose  :
 //=============================================================================
 Handle(Poly_Triangulation) RWStl::ReadAscii (const OSD_Path& theFile,
-                                             const Handle(Message_ProgressIndicator)& theProgress)
+                                             const Message_ProgressRange& theProgress)
 {
   OSD_File aFile (theFile);
   if (!aFile.Exists())
@@ -215,7 +215,7 @@ Handle(Poly_Triangulation) RWStl::ReadAscii (const OSD_Path& theFile,
 //=============================================================================
 Standard_Boolean RWStl::WriteBinary (const Handle(Poly_Triangulation)& theMesh,
                                      const OSD_Path& thePath,
-                                     const Handle(Message_ProgressIndicator)& theProgInd)
+                                     const Message_ProgressRange& theProgress)
 {
   if (theMesh.IsNull() || theMesh->NbTriangles() <= 0)
   {
@@ -231,7 +231,7 @@ Standard_Boolean RWStl::WriteBinary (const Handle(Poly_Triangulation)& theMesh,
     return Standard_False;
   }
 
-  Standard_Boolean isOK = writeBinary (theMesh, aFile, theProgInd);
+  Standard_Boolean isOK = writeBinary (theMesh, aFile, theProgress);
 
   fclose (aFile);
   return isOK;
@@ -243,7 +243,7 @@ Standard_Boolean RWStl::WriteBinary (const Handle(Poly_Triangulation)& theMesh,
 //=============================================================================
 Standard_Boolean RWStl::WriteAscii (const Handle(Poly_Triangulation)& theMesh,
                                     const OSD_Path& thePath,
-                                    const Handle(Message_ProgressIndicator)& theProgInd)
+                                    const Message_ProgressRange& theProgress)
 {
   if (theMesh.IsNull() || theMesh->NbTriangles() <= 0)
   {
@@ -259,7 +259,7 @@ Standard_Boolean RWStl::WriteAscii (const Handle(Poly_Triangulation)& theMesh,
     return Standard_False;
   }
 
-  Standard_Boolean isOK = writeASCII (theMesh, aFile, theProgInd);
+  Standard_Boolean isOK = writeASCII (theMesh, aFile, theProgress);
   fclose (aFile);
   return isOK;
 }
@@ -270,7 +270,7 @@ Standard_Boolean RWStl::WriteAscii (const Handle(Poly_Triangulation)& theMesh,
 //=============================================================================
 Standard_Boolean RWStl::writeASCII (const Handle(Poly_Triangulation)& theMesh,
                                     FILE* theFile,
-                                    const Handle(Message_ProgressIndicator)& theProgInd)
+                                    const Message_ProgressRange& theProgress)
 {
   // note that space after 'solid' is necessary for many systems
   if (fwrite ("solid \n", 1, 7, theFile) != 7)
@@ -282,8 +282,7 @@ Standard_Boolean RWStl::writeASCII (const Handle(Poly_Triangulation)& theMesh,
   memset (aBuffer, 0, sizeof(aBuffer));
 
   const Standard_Integer NBTriangles = theMesh->NbTriangles();
-  Message_ProgressSentry aPS (theProgInd, "Triangles", 0,
-                              NBTriangles, 1);
+  Message_ProgressScope aPS (theProgress, "Triangles", NBTriangles);
 
   const TColgp_Array1OfPnt& aNodes = theMesh->Nodes();
   const Poly_Array1OfTriangle& aTriangles = theMesh->Triangles();
@@ -350,7 +349,7 @@ Standard_Boolean RWStl::writeASCII (const Handle(Poly_Triangulation)& theMesh,
 //=============================================================================
 Standard_Boolean RWStl::writeBinary (const Handle(Poly_Triangulation)& theMesh,
                                      FILE* theFile,
-                                     const Handle(Message_ProgressIndicator)& theProgInd)
+                                     const Message_ProgressRange& theProgress)
 {
   char aHeader[80] = "STL Exported by OpenCASCADE [www.opencascade.com]";
   if (fwrite (aHeader, 1, 80, theFile) != 80)
@@ -359,8 +358,7 @@ Standard_Boolean RWStl::writeBinary (const Handle(Poly_Triangulation)& theMesh,
   }
   
   const Standard_Integer aNBTriangles = theMesh->NbTriangles();
-  Message_ProgressSentry aPS (theProgInd, "Triangles", 0,
-                              aNBTriangles, 1);
+  Message_ProgressScope aPS (theProgress, "Triangles", aNBTriangles);
 
   const Standard_Size aNbChunkTriangles = 4096;
   const Standard_Size aChunkSize = aNbChunkTriangles * THE_STL_SIZEOF_FACET;