View Issue Details

IDProjectCategoryView StatusLast Update
0032455Open CASCADEOCCT:Data Exchangepublic2023-03-19 18:29
Reporterkgv Assigned Tomkrylova 
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
Target Version7.6.0Fixed in Version7.6.0 
Summary0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
DescriptionOSD_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.
Steps To ReproduceN/A
TagsNo tags attached.
Test case numberNot required

Relationships

related to 0027342 closedbugmaster Open CASCADE Data Exchange, STEP - support C++ streams for import 
related to 0032350 closedmahaidong Community Data Exchange - STEPControl_Writer.writeStream(std::ostream) 
parent of 0032826 closedvpozdyayev Open CASCADE Data Exchange - use OSD_FileSystem within RWStl::ReadAscii() and StepFile_Read() 
related to 0032490 closedmkrylova Open CASCADE Data Exchange - provide OSD_FileSystem::OpenOStream() for output streams 
child of 0032099 closedbugmaster Open CASCADE Visualization - define OSD_FileSystem class managing opening of file streams 

Activities

mkrylova

2021-07-14 18:51

developer   ~0102528

Analysis

mkrylova

2021-07-15 18:33

developer   ~0102555

Last edited: 2021-07-19 10:31

Solution Implementation

git

2021-07-16 10:09

administrator   ~0102560

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()

git

2021-07-19 15:59

administrator   ~0102651

Branch CR32455 has been updated forcibly by mkrylova.

SHA-1: d7f837f2b56ddee64612f17660ae5c8fcdd9656e

git

2021-07-20 11:41

administrator   ~0102673

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()

mkrylova

2021-07-20 18:55

developer   ~0102690

Testing, Solution Implementation

git

2021-07-21 13:33

administrator   ~0102702

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

git

2021-07-21 13:34

administrator   ~0102704

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()

git

2021-07-21 16:35

administrator   ~0102713

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

mkrylova

2021-07-21 17:07

developer   ~0102716

Testing, Solution Implementation

git

2021-07-22 13:46

administrator   ~0102726

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()

mkrylova

2021-07-23 14:49

developer   ~0102744

http://jenkins-test-occt.nnov.opencascade.com/view/CR32455_3-CR32455_2-MKRYLOVA/view/ALL/
opengl drivers d3dhost is unstable

mkrylova

2021-07-23 14:49

developer   ~0102745

Last edited: 2021-07-23 14:55

Patch is ready to review:
- OCCT: CR32455_3
- Products: CR32455_3

bugmaster

2021-07-24 12:09

administrator   ~0102760

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

git

2021-07-24 13:28

administrator   ~0102801

Branch CR32455 has been deleted by mnt.

SHA-1: d7f837f2b56ddee64612f17660ae5c8fcdd9656e

git

2021-07-24 13:28

administrator   ~0102802

Branch CR32455_1 has been deleted by mnt.

SHA-1: fa8dd97cecc0a1831eb2271db99782adb180b03d

git

2021-07-24 13:28

administrator   ~0102803

Branch CR32455_2 has been deleted by mnt.

SHA-1: 90bb179dbce0e04120886442a4814fbdb17e52cc

git

2021-07-24 13:28

administrator   ~0102804

Branch CR32455_3 has been deleted by mnt.

SHA-1: 020e0729f815184c8757f4c4237c07f9a97b96e6

Related Changesets

occt: master ad3f20c6

2021-07-14 12:06:35

mkrylova


Committer: bugmaster Details Diff
0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()

- replaced OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
Affected Issues
0032455
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/BinTools/BinTools.cxx Diff File
mod - src/BRepTools/BRepTools.cxx Diff File
mod - src/DBRep/DBRep.cxx Diff File
mod - src/DDocStd/DDocStd_ApplicationCommands.cxx Diff File
mod - src/Draw/Draw_VariableCommands.cxx Diff File
mod - src/Image/Image_DDSParser.cxx Diff File
mod - src/Image/Image_Texture.cxx Diff File
mod - src/LDOM/LDOMParser.cxx Diff File
mod - src/QABugs/QABugs_1.cxx Diff File
mod - src/QABugs/QABugs_20.cxx Diff File
mod - src/RWGltf/RWGltf_CafReader.cxx Diff File
mod - src/RWGltf/RWGltf_CafWriter.cxx Diff File
mod - src/RWStl/RWStl.cxx Diff File
mod - src/RWStl/RWStl_Reader.cxx Diff File
mod - src/TObjDRAW/TObjDRAW.cxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.cxx Diff File

occt-products: master 5beb1e28

2021-07-15 17:04:07

mkrylova


Committer: bugmaster Details Diff
0032455: Data Exchange - replace OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()

- replaced OSD_OpenStream() usage with OSD_FileSystem::DefaultFileSystem()
Affected Issues
0032455
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - diff Diff File
mod - src/AcisData/AcisData_AcisModel.cxx Diff File
mod - src/IFCCAFControl/IFCCAFControl_Reader.cxx Diff File
mod - src/Json/Json_BsonDocument.cxx Diff File
mod - src/Json/Json_JsonDocument.cxx Diff File
mod - src/MeshTools/MeshTools_Mesh.cxx Diff File
mod - src/PointCloudTest/PointCloudTest_Test.cxx Diff File
mod - src/RVMCAFControl/RVMCAFControl_Reader.cxx Diff File
mod - src/RVMCAFControl/RVMCAFControl_TagProvider.cxx Diff File
mod - src/VolumeRender/VolumeRender_DicomReader.cxx Diff File
mod - src/VolumeRender/VolumeRender_RgbaTransferFunction.lxx Diff File
mod - src/XtSchemaParser/XtSchemaParser.cxx Diff File

Issue History

Date Modified Username Field Change
2021-06-18 21:22 kgv New Issue
2021-06-18 21:22 kgv Assigned To => kgv
2021-06-18 21:23 kgv Assigned To kgv => mkrylova
2021-06-18 21:23 kgv Status new => assigned
2021-06-18 21:24 kgv Relationship added child of 0032099
2021-06-18 21:25 kgv Relationship added related to 0027342
2021-06-18 21:25 kgv Relationship added related to 0032350
2021-06-18 21:31 kgv Description Updated
2021-07-14 18:51 mkrylova Note Added: 0102528
2021-07-15 18:33 mkrylova Note Added: 0102555
2021-07-16 10:09 git Note Added: 0102560
2021-07-19 10:31 mkrylova Note Edited: 0102555
2021-07-19 15:59 git Note Added: 0102651
2021-07-20 11:41 git Note Added: 0102673
2021-07-20 18:55 mkrylova Note Added: 0102690
2021-07-21 13:33 git Note Added: 0102702
2021-07-21 13:34 git Note Added: 0102704
2021-07-21 16:35 git Note Added: 0102713
2021-07-21 17:07 mkrylova Note Added: 0102716
2021-07-22 13:46 git Note Added: 0102726
2021-07-23 14:49 mkrylova Note Added: 0102744
2021-07-23 14:49 mkrylova Note Added: 0102745
2021-07-23 14:50 mkrylova Assigned To mkrylova => kgv
2021-07-23 14:50 mkrylova Status assigned => resolved
2021-07-23 14:55 mkrylova Note Edited: 0102745
2021-07-23 15:22 kgv Assigned To kgv => bugmaster
2021-07-23 15:22 kgv Status resolved => reviewed
2021-07-23 15:25 kgv Relationship added related to 0032490
2021-07-24 12:09 bugmaster Note Added: 0102760
2021-07-24 12:09 bugmaster Status reviewed => tested
2021-07-24 12:12 bugmaster Test case number => Not required
2021-07-24 13:23 bugmaster Changeset attached => occt master ad3f20c6
2021-07-24 13:23 bugmaster Status tested => verified
2021-07-24 13:23 bugmaster Resolution open => fixed
2021-07-24 13:28 git Note Added: 0102801
2021-07-24 13:28 git Note Added: 0102802
2021-07-24 13:28 git Note Added: 0102803
2021-07-24 13:28 git Note Added: 0102804
2021-12-17 18:41 bugmaster Changeset attached => occt-products master 5beb1e28
2021-12-17 18:41 mkrylova Assigned To bugmaster => mkrylova
2021-12-17 18:41 mkrylova Status closed => verified
2022-02-09 21:18 kgv Relationship added parent of 0032826
2023-03-19 18:29 vglukhik Status verified => closed