]> OCCT Git - occt-copy.git/commit
0031918: Application Framework - New binary format for fast reading part of OCAF...
authormpv <mpv@opencascade.com>
Sat, 9 Jan 2021 15:01:53 +0000 (18:01 +0300)
committeragv <agv@opencascade.com>
Sun, 24 Jan 2021 15:23:24 +0000 (18:23 +0300)
commit9bd57e39d205ad7a3acd0d37e3676dfa9a449314
treeb6a4b07e0236b5dde5a797b2207d81284be648b5
parent47e489e84d388b09154602c8db0c2db060dce97b
0031918: Application Framework - New binary format for fast reading part of OCAF document

Initial implementation of new format for quick reading and writing parts of the documents. It consists in writing shapes and all their contents right in the TNaming_NamedShape attribute placement and skipping the shape section.

For the current moment it is implemented as a new version 12 of the binary format. It will be decided later to have it like this and make this version of the format as default, or setting a special flag for such version reading/writing.

Modifications:
BinLDrivers and BinDrivers packages - modifications related to the quick part tree format flag usage, skipping shape section writing and adding labels sizes into the document to be able to pass labels during the reading quickly.
BinObjMgt_Persistent amd BinObjMgt_Position - to add possibility to write directly into the stream some data just after the attribute. Before this record a data-size is recorded.
BinMXCAFDoc package modifications to write BinMXCAFDoc_LocationDriver location in the same way as shapes write location data right after the attribute (empty) data in this new format.
BinTools package: creation of ShapeReader and ShapeWriter classes with same root class ShapeSetBase with ShapeSet class. These classes allows to write/read shapes directly to the stream. If some object is already in the stream, write a reference - relative position of the duplicated object.
PCDM_ReaderFilter - modified to be able to browse labels tree quickly, without usage of referencing by entry-strings.

# Conflicts:
# src/BinMNaming/BinMNaming_NamedShapeDriver.cxx
# src/BinMXCAFDoc/BinMXCAFDoc_LocationDriver.cxx
# src/BinTools/BinTools_ShapeSet.cxx
# src/BinTools/BinTools_ShapeSet.hxx
# src/BinTools/FILES
46 files changed:
src/BinDrivers/BinDrivers_DocumentRetrievalDriver.cxx
src/BinDrivers/BinDrivers_DocumentRetrievalDriver.hxx
src/BinDrivers/BinDrivers_DocumentStorageDriver.cxx
src/BinDrivers/BinDrivers_DocumentStorageDriver.hxx
src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cxx
src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.hxx
src/BinLDrivers/BinLDrivers_DocumentSection.cxx
src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cxx
src/BinLDrivers/BinLDrivers_DocumentStorageDriver.hxx
src/BinMNaming/BinMNaming_NamedShapeDriver.cxx
src/BinMNaming/BinMNaming_NamedShapeDriver.hxx
src/BinMNaming/BinMNaming_NamedShapeDriver.lxx
src/BinMXCAFDoc/BinMXCAFDoc.cxx
src/BinMXCAFDoc/BinMXCAFDoc_LocationDriver.cxx
src/BinMXCAFDoc/BinMXCAFDoc_LocationDriver.hxx
src/BinMXCAFDoc/BinMXCAFDoc_LocationDriver.lxx [deleted file]
src/BinMXCAFDoc/FILES
src/BinObjMgt/BinObjMgt_Persistent.cxx
src/BinObjMgt/BinObjMgt_Persistent.hxx
src/BinObjMgt/BinObjMgt_Persistent.lxx
src/BinObjMgt/BinObjMgt_Position.cxx [new file with mode: 0644]
src/BinObjMgt/BinObjMgt_Position.hxx [new file with mode: 0644]
src/BinObjMgt/FILES
src/BinTools/BinTools.cxx
src/BinTools/BinTools.hxx
src/BinTools/BinTools_IStream.cxx [new file with mode: 0644]
src/BinTools/BinTools_IStream.hxx [new file with mode: 0644]
src/BinTools/BinTools_LocationSet.cxx
src/BinTools/BinTools_LocationSet.hxx
src/BinTools/BinTools_ObjectType.hxx [new file with mode: 0644]
src/BinTools/BinTools_Position.cxx [new file with mode: 0644]
src/BinTools/BinTools_Position.hxx [new file with mode: 0644]
src/BinTools/BinTools_ShapeReader.cxx [new file with mode: 0644]
src/BinTools/BinTools_ShapeReader.hxx [new file with mode: 0644]
src/BinTools/BinTools_ShapeSet.cxx
src/BinTools/BinTools_ShapeSet.hxx
src/BinTools/BinTools_ShapeSetBase.cxx [new file with mode: 0644]
src/BinTools/BinTools_ShapeSetBase.hxx [new file with mode: 0644]
src/BinTools/BinTools_ShapeWriter.cxx [new file with mode: 0644]
src/BinTools/BinTools_ShapeWriter.hxx [new file with mode: 0644]
src/BinTools/FILES
src/PCDM/PCDM_ReaderFilter.cxx
src/PCDM/PCDM_ReaderFilter.hxx
src/TDocStd/TDocStd_FormatVersion.hxx
tests/bugs/caf/bug31918_1 [new file with mode: 0644]
tests/bugs/caf/bug31918_2 [new file with mode: 0644]