#include <BRepTools.hxx>
#include <Message_Messenger.hxx>
+#include <Message_ProgressSentry.hxx>
#include <LDOM_OSStream.hxx>
#include <LDOM_Text.hxx>
#include <Standard_SStream.hxx>
//purpose :
//=======================================================================
-void XmlMNaming_NamedShapeDriver::ReadShapeSection
- (const XmlObjMgt_Element& theElement)
+void XmlMNaming_NamedShapeDriver::ReadShapeSection (const XmlObjMgt_Element& theElement,
+ const Handle(Message_ProgressIndicator)& theProgress)
{
XmlObjMgt_Element anElement =
XmlObjMgt::FindChildByName (theElement, ::ShapesString());
LDOMString aData = aNode.getNodeValue();
std::stringstream aStream (std::string(aData.GetString()));
myShapeSet.Clear();
- myShapeSet.Read (aStream);
+ myShapeSet.Read (aStream, theProgress);
break;
}
}
//purpose :
//=======================================================================
-void XmlMNaming_NamedShapeDriver::WriteShapeSection
- (XmlObjMgt_Element& theElement)
+void XmlMNaming_NamedShapeDriver::WriteShapeSection (XmlObjMgt_Element& theElement,
+ const Handle(Message_ProgressIndicator)& theProgress)
{
// Create "shapes" element and append it as child
XmlObjMgt_Document aDoc = theElement.getOwnerDocument();
LDOM_OSStream aStream (16 * 1024);
// ostrstream aStream;
// aStream.rdbuf() -> setbuf (0, 16380);
- myShapeSet.Write (aStream);
+ Message_ProgressSentry aPS(theProgress, "Writing shape section", 0, 2, 1);
+ myShapeSet.Write (aStream, theProgress);
+ if (!aPS.More())
+ return;
+ aPS.Next();
aStream << std::ends;
char * aStr = (char *)aStream.str();
LDOM_Text aText = aDoc.createTextNode (aStr);
// Clear the shape set to avoid appending to it on the next write
BRepTools_ShapeSet& aShapeSet = (BRepTools_ShapeSet&) myShapeSet;
aShapeSet.Clear();
+ if (!aPS.More())
+ return;
+ aPS.Next();
}
}