Proposal: canceling XSControl_Reader operations

So far as I can tell, there is no way to cancel an XSControl_Reader operation such as TransferOneRoot. However, our software occasionally runs into cases where this operation can take a very long time (upwards of ten minutes, even), and we'd like to allow the user to cancel the operation. I'm considering writing the functionality to allow for backing out of this operation early, but I'd like to get it worked into the main OCC branch if at all possible so that I don't have to maintain a separate set of patches that need to be re-applied every time we upgrade OCC.

So my question is: would the OCC maintainers be interested in such a patch, and if so, is there anything they would expect from it besides following the coding rules at http://www.opencascade.org/doc/occt-6.7.0/overview/html/dev_guides__codi... ? This would be my first OCC modification and so I'm not familiar with the process of submitting code upstream.

Forum supervisor's picture

Dear Sam Shrum,
OCCT data exchange components (at least IGES and STEP translators) already provide possibility to show progress bar and stop by user request via interface provided by Message_ProgressIndicator class.
See the file src/XSDRAWIGES/XSDRAWIGES.cxx for example of its usage.
In DRAW, you can give command "XProgress +g" to enable display of progress dialog whenever you do import of IGES or STEP file.

Your contributions are always welcome; please read http://dev.opencascade.org/index.php?q=home/get_involved for details on our requirements and workflow.

Best regards
FSR