0022728: STEP export API does not provide possibility to control output stream
authorPDN <>
Fri, 21 Oct 2011 17:56:38 +0000 (17:56 +0000)
committerbugmaster <bugmaster@opencascade.com>
Mon, 5 Mar 2012 15:30:53 +0000 (19:30 +0400)
src/IFSelect/IFSelect_WorkSession.cdl
src/IFSelect/IFSelect_WorkSession.cxx
src/XSDRAWSTEP/XSDRAWSTEP.cxx

index 0ff2958..8646e7b 100755 (executable)
@@ -819,8 +819,13 @@ is
     --           
     --           The Model and File Modifiers recorded to be applied on sending
     --           files are.
-    --           Returns a status of execution : Done if OK, Void if no def.
-    --             available, Error if errors occured, Fail if no file written
+    --           Returns a status of execution : 
+    --             Done if OK, 
+    --             Void if no data available,
+    --             Error if errors occured (work library is not defined), errors 
+    --             during translation
+    --             Fail if exception during translation is raised
+    --             Stop if no disk space or disk, file is write protected
     --           Fills LastRunCheckList
 
     SendSelected (me : mutable; filename : CString; sel : Selection;
index c0a7d21..06f5bea 100755 (executable)
@@ -2488,7 +2488,11 @@ IFSelect_ReturnStatus IFSelect_WorkSession::SendAll
     }
   }
   else checks = thecopier->SendAll(filename,thegraph->Graph(),thelibrary,theprotocol);
-
+  Handle_Interface_Check aMainFail = checks.CCheck(0);
+  if (!aMainFail.IsNull() && aMainFail->HasFailed ())
+  {
+        return IFSelect_RetStop;
+  }
   if (theloaded.Length() == 0) theloaded.AssignCat(filename);
   thecheckrun = checks;
   if (checks.IsEmpty(Standard_True)) return IFSelect_RetDone;
index 4136c30..c65339d 100755 (executable)
@@ -423,7 +423,8 @@ static Standard_Integer stepwrite (Draw_Interpretor& di, Standard_Integer argc,
   switch (stat) {
     case IFSelect_RetVoid : di<<"No file written"<<"\n"; break;
     case IFSelect_RetDone : di<<"File "<<nomfic<<" written"<<"\n"; break;
-    default : di<<"Error on writing file"<<"\n"; break;
+    case IFSelect_RetStop : di<<"Error on writing file: no space on disk or destination is write protected"<<"\n"; break;
+    default : di<<"File "<<nomfic<<" written with fail messages"<<"\n"; break;
   }
 
   progress->EndScope();