MantisBT - Open CASCADE
View Issue Details
0032455Open CASCADE[OCCT] OCCT:Data Exchangepublic2021-06-18 21:222021-07-24 13:29
kgv 
bugmaster 
normalfeature 
verifiedfixed 
 
[OCCT] 7.6.0* 
Not required
0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
OSD_OpenStream() expects std::ifstream and works only with local file system.

It is proposed replacing most of existing OSD_OpenStream() usage places with OSD_FileSystem::DefaultFileSystem() returning general std::istream, and extensible with other file systems (emulated in-memory, encrypted, compressed, remote ftp/http/https, clustered HDFS, embedded resources AAssetManager_open(), etc.).

While providing a direct interface in Data Exchange classes accepting std::istream/std::ostream looks useful and natural, it doesn't provide a simple answer on handling multi-file assets (STEP files referring to other STEP files, OBJ file referring to textures and material files, glTF file referring to data and image files). OSD_FileSystem doesn't bring a simple solution for these case, but allows providing implementations at application level with desired behavior.
N/A
No tags attached.
related to 0027342closed bugmaster Open CASCADE Data Exchange, STEP - support C++ streams for import 
related to 0032350resolved gka Community Data Exchange - STEPControl_Writer.writeStream(std::ostream) 
related to 0032490reviewed bugmaster Open CASCADE Data Exchange - provide OSD_FileSystem::OpenOStream() for output streams 
child of 0032099verified bugmaster Open CASCADE Visualization - define OSD_FileSystem class managing opening of file streams 
Issue History
2021-06-18 21:22kgvNew Issue
2021-06-18 21:22kgvAssigned To => kgv
2021-06-18 21:23kgvAssigned Tokgv => mkrylova
2021-06-18 21:23kgvStatusnew => assigned
2021-06-18 21:24kgvRelationship addedchild of 0032099
2021-06-18 21:25kgvRelationship addedrelated to 0027342
2021-06-18 21:25kgvRelationship addedrelated to 0026700
2021-06-18 21:25kgvRelationship addedrelated to 0032350
2021-06-18 21:31kgvDescription Updatedbug_revision_view_page.php?rev_id=25391#r25391
2021-07-14 18:51mkrylovaNote Added: 0102528
2021-07-15 18:33mkrylovaNote Added: 0102555
2021-07-16 10:09gitNote Added: 0102560
2021-07-19 10:31mkrylovaNote Edited: 0102555bug_revision_view_page.php?bugnote_id=102555#r25504
2021-07-19 15:59gitNote Added: 0102651
2021-07-20 11:41gitNote Added: 0102673
2021-07-20 18:55mkrylovaNote Added: 0102690
2021-07-21 13:33gitNote Added: 0102702
2021-07-21 13:34gitNote Added: 0102704
2021-07-21 16:35gitNote Added: 0102713
2021-07-21 17:07mkrylovaNote Added: 0102716
2021-07-22 13:46gitNote Added: 0102726
2021-07-23 14:49mkrylovaNote Added: 0102744
2021-07-23 14:49mkrylovaNote Added: 0102745
2021-07-23 14:50mkrylovaAssigned Tomkrylova => kgv
2021-07-23 14:50mkrylovaStatusassigned => resolved
2021-07-23 14:55mkrylovaNote Edited: 0102745bug_revision_view_page.php?bugnote_id=102745#r25524
2021-07-23 15:22kgvAssigned Tokgv => bugmaster
2021-07-23 15:22kgvStatusresolved => reviewed
2021-07-23 15:25kgvRelationship addedrelated to 0032490
2021-07-24 12:09bugmasterNote Added: 0102760
2021-07-24 12:09bugmasterStatusreviewed => tested
2021-07-24 12:12bugmasterTest case number => Not required
2021-07-24 13:23bugmasterChangeset attached => occt master ad3f20c6
2021-07-24 13:23bugmasterStatustested => verified
2021-07-24 13:23bugmasterResolutionopen => fixed
2021-07-24 13:28gitNote Added: 0102801
2021-07-24 13:28gitNote Added: 0102802
2021-07-24 13:28gitNote Added: 0102803
2021-07-24 13:28gitNote Added: 0102804

Notes
(0102528)
mkrylova   
2021-07-14 18:51   
Analysis
(0102555)
mkrylova   
2021-07-15 18:33   
(edited on: 2021-07-19 10:31)
Solution Implementation

(0102560)
git   
2021-07-16 10:09   
Branch CR32455 has been created by mkrylova.

SHA-1: 5c893326af0c1d8d36d23623a2d2e954ad4f7da5


Detailed log of new commits:

Author: mkrylova
Date: Wed Jul 14 15:06:35 2021 +0300

    0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
    
    - replaced OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
(0102651)
git   
2021-07-19 15:59   
Branch CR32455 has been updated forcibly by mkrylova.

SHA-1: d7f837f2b56ddee64612f17660ae5c8fcdd9656e
(0102673)
git   
2021-07-20 11:41   
Branch CR32455_1 has been created by mkrylova.

SHA-1: 4b3ccec9fef7eefd5dc2c433837cc8f281e7ff93


Detailed log of new commits:

Author: mkrylova
Date: Wed Jul 14 15:06:35 2021 +0300

    0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
    
    - replaced OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
(0102690)
mkrylova   
2021-07-20 18:55   
Testing, Solution Implementation
(0102702)
git   
2021-07-21 13:33   
Branch CR32455_1 has been updated by mkrylova.

SHA-1: fa8dd97cecc0a1831eb2271db99782adb180b03d


Detailed log of new commits:

Author: mkrylova
Date: Tue Jul 20 18:49:11 2021 +0300

    # kgv remarks

(0102704)
git   
2021-07-21 13:34   
Branch CR32455_2 has been created by mkrylova.

SHA-1: c2948d527feda5741626571bf03bec7a0f1d6d26


Detailed log of new commits:

Author: mkrylova
Date: Wed Jul 14 15:06:35 2021 +0300

    0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
    
    - replaced OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
(0102713)
git   
2021-07-21 16:35   
Branch CR32455_2 has been updated by mkrylova.

SHA-1: 90bb179dbce0e04120886442a4814fbdb17e52cc


Detailed log of new commits:

Author: mkrylova
Date: Wed Jul 21 16:33:09 2021 +0300

    # fixed mistakes

(0102716)
mkrylova   
2021-07-21 17:07   
Testing, Solution Implementation
(0102726)
git   
2021-07-22 13:46   
Branch CR32455_3 has been created by mkrylova.

SHA-1: 020e0729f815184c8757f4c4237c07f9a97b96e6


Detailed log of new commits:

Author: mkrylova
Date: Wed Jul 14 15:06:35 2021 +0300

    0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
    
    - replaced OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
(0102744)
mkrylova   
2021-07-23 14:49   
http://jenkins-test-occt.nnov.opencascade.com/view/CR32455_3-CR32455_2-MKRYLOVA/view/ALL/ [^]
opengl drivers d3dhost is unstable
(0102745)
mkrylova   
2021-07-23 14:49   
(edited on: 2021-07-23 14:55)
Patch is ready to review:
- OCCT: CR32455_3
- Products: CR32455_3

(0102760)
bugmaster   
2021-07-24 12:09   
Combination -
OCCT branch : IR-2021-07-23
master SHA - 4e993e4d0df118716a2ccca02a5735fc4dec54ef
a87b7ddc8cb44606b91e3f37113847c3f5f50fdc
Products branch : IR-2021-07-23 SHA - 5beb1e287b2273f9e4c222f042380bc3c0fa91dc
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17248.180000000266 / 17229.680000000302 [+0.11%]
Products
Total CPU difference: 11453.40000000009 / 11477.160000000118 [-0.21%]
Windows-64-VC14:
OCCT
Total CPU difference: 19038.78125 / 19020.171875 [+0.10%]
Products
Total CPU difference: 12762.65625 / 12734.125 [+0.22%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention
(0102801)
git   
2021-07-24 13:28   
Branch CR32455 has been deleted by mnt.

SHA-1: d7f837f2b56ddee64612f17660ae5c8fcdd9656e
(0102802)
git   
2021-07-24 13:28   
Branch CR32455_1 has been deleted by mnt.

SHA-1: fa8dd97cecc0a1831eb2271db99782adb180b03d
(0102803)
git   
2021-07-24 13:28   
Branch CR32455_2 has been deleted by mnt.

SHA-1: 90bb179dbce0e04120886442a4814fbdb17e52cc
(0102804)
git   
2021-07-24 13:28   
Branch CR32455_3 has been deleted by mnt.

SHA-1: 020e0729f815184c8757f4c4237c07f9a97b96e6