MantisBT - Open CASCADE
View Issue Details
0023997Open CASCADE[OCCT] OCCT:Data Exchangepublic2013-05-27 13:452020-09-25 20:35
aba 
abv 
normalfeature 
feedbackopen 
ALL
 
[OCCT] 7.6.0* 
Not needed
0023997: Getting rid of generic classes in DataExchange
As one of steps related to WOK removal, it is necessary to revise generic CDL classes and turn them into non-CDL C++ classes.

As part of this step it is supposed to get rid of generic classes in DataExchange packages.

If a class is used only once, it should become a regular C++ class. If a class is re-used in several places, the option to make it a C++ template should be considered.
No tags attached.
related to 0028966new kgv Community Coding Rules - remove Adaptor2d_HCurve2d, Adaptor3d_HCurve and Adaptor3d_HSurface classes 
related to 0031025closed bugmaster Community Coding - declared but unimplemented methods BRepBlend_AppSurf 
child of 0024487closed abv Open CASCADE Getting rid of generic CDL classes 
xls ObservationOfDataExchangeGenericClasses_updated.xls (28,672) 2013-06-07 15:37
https://tracker.dev.opencascade.org/
doc MadeChanges.doc (30,208) 2013-07-17 16:48
https://tracker.dev.opencascade.org/
Issue History
2013-05-27 13:45abaNew Issue
2013-05-27 13:45abaAssigned To => aba
2013-05-27 13:46abaRelationship addedrelated to 0023959
2013-05-27 13:46abaStatusnew => assigned
2013-05-27 13:46abaSummary0023959: Getting rid of generic classes in DataExchange => Getting rid of generic classes in DataExchange
2013-05-27 13:53abaDescription Updatedbug_revision_view_page.php?rev_id=5446#r5446
2013-05-29 12:18abaFile Added: ObservationOfDataExchangeGenericClasses.xls
2013-05-29 18:02abvRelationship addedchild of 0024002
2013-06-07 15:37abaFile Added: ObservationOfDataExchangeGenericClasses_updated.xls
2013-07-17 16:47abaFile Deleted: ObservationOfDataExchangeGenericClasses.xls
2013-07-17 16:48abaFile Added: MadeChanges.doc
2013-07-17 17:58abaNote Added: 0025101
2013-07-17 17:58abaAssigned Toaba => gka
2013-07-17 17:58abaStatusassigned => resolved
2013-07-18 14:45gkaNote Added: 0025109
2013-07-18 15:20gkaAssigned Togka => aba
2013-07-18 15:20gkaStatusresolved => assigned
2013-07-23 18:29abaNote Added: 0025139
2013-07-23 18:29abaAssigned Toaba => gka
2013-07-23 18:29abaStatusassigned => resolved
2013-07-24 11:33gkaNote Added: 0025141
2013-07-24 11:33gkaStatusresolved => reviewed
2013-07-24 12:51apnAssigned Togka => apn
2013-07-24 13:55apnNote Added: 0025146
2013-07-24 13:56apnTest case number => Not needed
2013-07-24 13:56apnAssigned Toapn => aba
2013-07-24 13:56apnStatusreviewed => assigned
2013-07-24 19:55abaNote Added: 0025150
2013-07-24 19:55abaAssigned Toaba => gka
2013-07-24 19:55abaStatusassigned => resolved
2013-07-30 10:16gkaNote Added: 0025198
2013-07-30 10:16gkaStatusresolved => reviewed
2013-07-30 11:31mkvAssigned Togka => mkv
2013-07-30 12:42mkvNote Added: 0025203
2013-07-30 12:44mkvNote Edited: 0025203bug_revision_view_page.php?bugnote_id=25203#r5678
2013-07-30 12:44mkvAssigned Tomkv => aba
2013-07-30 12:44mkvStatusreviewed => assigned
2013-08-14 18:10abaNote Added: 0025308
2013-08-14 18:10abaAssigned Toaba => gka
2013-08-14 18:10abaStatusassigned => resolved
2013-08-19 16:44gkaNote Added: 0025346
2013-08-19 16:44gkaStatusresolved => reviewed
2013-08-19 17:44mkvAssigned Togka => mkv
2013-08-19 17:44mkvAssigned Tomkv => apn
2013-08-20 13:40apnNote Added: 0025352
2013-08-20 13:40apnNote Edited: 0025352bug_revision_view_page.php?bugnote_id=25352#r5741
2013-08-20 13:41apnAssigned Toapn => aba
2013-08-20 13:41apnStatusreviewed => assigned
2013-10-25 12:23gkaNote Added: 0026277
2013-10-25 12:23gkaStatusassigned => feedback
2013-11-19 18:11sanTarget Version6.7.0 => 6.7.1
2014-01-22 10:59gkaAssigned Toaba => dln
2014-01-22 10:59gkaStatusfeedback => assigned
2014-01-22 14:27abvRelationship deletedrelated to 0023959
2014-01-22 14:28abvRelationship deletedchild of 0024002
2014-01-22 14:28abvRelationship addedchild of 0024487
2014-04-04 18:16abvTarget Version6.7.1 => 6.8.0
2014-09-26 09:37abvTarget Version6.8.0 => 7.1.0
2016-10-27 10:36gkaAssigned Todln => abv
2016-10-27 10:36gkaStatusassigned => feedback
2016-10-27 10:36gkaTarget Version7.1.0 => 7.2.0
2017-07-27 09:33abvTarget Version7.2.0 => 7.4.0
2017-08-03 12:03kgvRelationship addedrelated to 0028966
2019-07-10 22:17abvTarget Version7.4.0 => 7.5.0
2019-10-03 12:49kgvRelationship addedrelated to 0031025
2020-09-25 20:35abvTarget Version7.5.0 => 7.6.0*

Notes
(0025101)
aba   
2013-07-17 17:58   
The git branch CR23997 is ready for reviewing.
All made changes description is in attached MadeChanges.doc document.

Dear gka, please review.
(0025109)
gka   
2013-07-18 14:45   
Seems it will be better to make class LibCtl_Library not template class but base class in order to avoid code duplication of method SetGlobal() at all instantiations of this class.
(0025139)
aba   
2013-07-23 18:29   
The git branch CR23997 was updated:
1) The LibCtl_Library class stayed template one, but the variable that was responsible for global list of modules was wrapped with static method.
2) There were some style changes

Dear gka, please review.
(0025141)
gka   
2013-07-24 11:33   
Branch CR23997 is ready to be tested.
(0025146)
apn   
2013-07-24 13:55   
Errors during extraction:

Error : "/misc/dn61/LocalWOK/wok_entities/LOC/dev/CR23997-master-products/src/SatControl/SatControl_Reader.cdl", line 24: Class : XSControl_Reader must not be a normal class.

Error : "/misc/dn61/LocalWOK/wok_entities/LOC/dev/CR23997-master-products/src/SatControl/SatControl_ActorRead.cdl", line 27: Class : Transfer_ActorOfTransientProcess must not be a normal class.

Error : "/misc/dn61/LocalWOK/wok_entities/LOC/dev/CR23997-master-products/src/DxfControl/DxfControl_Reader.cdl", line 23: Class : XSControl_Reader must not be a normal class.

Error : "/misc/dn61/LocalWOK/wok_entities/LOC/dev/CR23997-master-products/src/DxfControl/DxfControl_ActorRead.cdl", line 27: Class : Transfer_ActorOfTransientProcess must not be a normal class.

Error : "/misc/dn61/LocalWOK/wok_entities/LOC/dev/CR23997-master-products/src/XtControl/XtControl_Reader.cdl", line 22: Class : XSControl_Reader must not be a normal class.

Error : "/misc/dn61/LocalWOK/wok_entities/LOC/dev/CR23997-master-products/src/XtControl/XtControl_ActorRead.cdl", line 20: Class : Transfer_ActorOfTransientProcess must not be a normal class.
(0025150)
aba   
2013-07-24 19:55   
The git branch CR23997 was created in the OCCT Products repository for changes in Products according to the patch for OCCT.

Classes from SatControl, SATCAFControl, XtControl, XTCAFControl, DxfControl, DXFCAFControl were made non-cdl ones.

Dear gka, please review.
(0025198)
gka   
2013-07-30 10:16   
Branch CR23997 is ready to be tested
(0025203)
mkv   
2013-07-30 12:42   
(edited on: 2013-07-30 12:44)
There are compilation errors:
http://jenkins-test-02.nnov.opencascade.com:8080/user/mnt/my-views/view/CR23997/job/mnt-CR23997-CR23997_build_occt_linux/1/parsed_console/? [^]

../../../../inc/LibCtl_Library.hxx:34: error: declaration of ‘typedef struct LibCtl_GlobalNode<ModuleType, ProtocolType> LibCtl_Node<ModuleType, ProtocolType>::LibCtl_GlobalNode’
../../../../inc/LibCtl_Library.hxx:26: error: changes meaning of ‘LibCtl_GlobalNode’ from ‘struct LibCtl_GlobalNode<ModuleType, ProtocolType>’
../../../../inc/LibCtl_Library.hxx:186: error: declaration of ‘typedef class LibCtl_GlobalNode<ModuleType, ProtocolType> LibCtl_Library<ObjectType, ModuleType, ProtocolType>::LibCtl_GlobalNode’
../../../../inc/LibCtl_Library.hxx:98: error: changes meaning of ‘LibCtl_GlobalNode’ from ‘class LibCtl_GlobalNode<ModuleType, ProtocolType>’
../../../../inc/LibCtl_Library.hxx:187: error: declaration of ‘typedef class LibCtl_Node<ModuleType, ProtocolType> LibCtl_Library<ObjectType, ModuleType, ProtocolType>::LibCtl_Node’
../../../../inc/LibCtl_Library.hxx:32: error: changes meaning of ‘LibCtl_Node’ from ‘class LibCtl_Node<ModuleType, ProtocolType>’
../../../../inc/LibCtl_Library.hxx:328: error: extra qualification ‘LibCtl_Library<ObjectType, ModuleType, ProtocolType>::’ on member ‘Next’
../../../../inc/LibCtl_Library.hxx:328: error: explicit specialization of ‘void LibCtl_Library<ObjectType, ModuleType, ProtocolType>::Next()’ must be introduced by ‘template <>’

(0025308)
aba   
2013-08-14 18:10   
Errors were corrected.

Dear gka, please review.
(0025346)
gka   
2013-08-19 16:44   
Branch CR23997 is ready to be tested
(0025352)
apn   
2013-08-20 13:40   
Dear BugMaster,

Branch CR23997 and products from CR23997 was compiled on Linux and Windows platforms and tested.
SHA-1: fd45dddd9392007ddd34de8f69ebf13fde0cced6

Number of compiler warnings:

occt component :
Linux: 918 (923 on master)
Windows: 853 (852 on master)

New warning on Windows: inc/Transfer_TransferProcess.hxx
Transfer_TransferProcess.hxx:2161, MSBuild, Priority: Normal
'toCompute' : unreferenced formal parameter

products component :
Linux: 188 (188 on master)
Windows: 287 (287 on master)

Regressions:
bugs iges buc60625 buc60646
http://occt-tests/CR23997-CR23997-occt/Debian60-64/summary.html [^]
http://occt-tests/CR23997-CR23997-occt/Windows-32-VC9/summary.html [^]

Improvements:
No improvements

Testing cases:
Not needed

Testing on Linux:
Total MEMORY difference: 366216612 / 365981272
Total CPU difference: 42598.27000000113 / 42530.400000000824

Testing on Windows:
Total MEMORY difference: 425817088 / 425949776
Total CPU difference: 43946.546875 / 30358.84375

There are not differences in images found by testdiff.

(0026277)
gka   
2013-10-25 12:23   
Dear aba.

Please check current state.