Skip to content

Data Exchange, IGES - Add stream-based I/O support - #1406

Merged
dpasukhi merged 4 commits into
Open-Cascade-SAS:IRfrom
dpasukhi:IGES_stream_support
Aug 7, 2026
Merged

Data Exchange, IGES - Add stream-based I/O support#1406
dpasukhi merged 4 commits into
Open-Cascade-SAS:IRfrom
dpasukhi:IGES_stream_support

Conversation

@dpasukhi

Copy link
Copy Markdown
Member
  • Add IGES stream reading and writing to DEIGES providers.
  • Extend IFSelect, XSControl, and work libraries with generic stream output.
  • Keep STEP work-library output aligned with the shared stream interface.
  • Convert the legacy IGES parser from C to modern C++.
  • Introduce buffered parsing of fixed 80-column IGES records.
  • Support LF, CRLF, CR-only, and delimiter-free record layouts.
  • Preserve FNES preamble detection and encoded record handling.
  • Handle stream errors, enabled exceptions, partial reads, and cleanup safely.
  • Isolate mutable parser data with thread-local storage.
  • Serialize access to process-wide IGES configuration and restore it on exit.
  • Preserve supplied work sessions, transferred models, and selected modifiers.
  • Apply modern OCCT naming, casting, documentation, and control-flow style.
  • Add tests for shape and document stream I/O, record layouts, and failures.

dpasukhi added 2 commits July 29, 2026 12:16
Add stream read/write support through IFSelect and XSControl work libraries, implement IGES stream handling on top of stream-backed parser entry points, and wire DEIGES provider stream operations with serialization guards.

Add focused GTests for DEIGES provider stream read/write paths and keep STEP work library write support aligned with the new shared stream interface.
Convert the legacy IGES parser to modern C++ with buffered fixed-record stream input, FNES compatibility, thread-local parser state, and failure-safe cleanup. Complete generic IFSelect/XSControl stream writing, preserve modifiers and work sessions, guard global IGES configuration, and extend provider coverage for alternate record separators and stream failures.
@dpasukhi dpasukhi added this to the Release 8.1 milestone Jul 29, 2026
@dpasukhi dpasukhi self-assigned this Jul 29, 2026
@dpasukhi dpasukhi added the 1. Data Exchange Import/Export or iterating of the CAD data label Jul 29, 2026
@dpasukhi
dpasukhi changed the base branch from master to IR July 29, 2026 13:13
@dpasukhi dpasukhi changed the title Data Exchange, IGES - Add robust stream-based I/O support Data Exchange, IGES - Add stream-based I/O support Jul 29, 2026
@dpasukhi
dpasukhi marked this pull request as ready for review July 29, 2026 14:57
@dpasukhi dpasukhi moved this from Todo to Integration in Maintenance Jul 29, 2026
Add stream read/write support through IFSelect and XSControl work libraries, implement IGES stream handling on top of stream-backed parser entry points, and wire DEIGES provider stream operations with serialization guards.

Add focused GTests for DEIGES provider stream read/write paths and keep STEP work library write support aligned with the new shared stream interface.
@dpasukhi
dpasukhi merged commit 4c2c356 into Open-Cascade-SAS:IR Aug 7, 2026
18 checks passed
@dpasukhi
dpasukhi deleted the IGES_stream_support branch August 7, 2026 19:28
@github-project-automation github-project-automation Bot moved this from Integration to Done in Maintenance Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1. Data Exchange Import/Export or iterating of the CAD data

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant