View Issue Details

IDProjectCategoryView StatusLast Update
0010031Open CASCADEOCCT:Foundation Classespublic2016-04-20 15:48
ReporterabvAssigned Tobugmaster  
PrioritynormalSeverityfeature 
Status closedResolutionfixed 
OSAll 
Target Version7.0.0Fixed in Version7.0.0 
Summary0010031: Eliminate unnecessary hxx files duplicating cdl definitions
DescriptionSome packages and classes in Open CASCADE (e.g. Standard) have more than one
definition: besides CDL, one (or more!) manually adapted HXX files which are
used actually instead of generated one (by overriding it on one of WOK steps).

This leads to:
- confusions when editing (e.g. programmer may modify CDL but did not notice
extra hxx),
- inconsistency in definition and documentation (when CDL and HXX contain
different data),
- problems with integrations (like today when Standard.hxx has not been
integrated since it was not in FILES)
- etc.

In order to avoid these problems, the situation should be analysed and
regularized by using, whenever possible, single definition for a class.

-------

Here is short analysis of the current status.
This kind of duplication can be found in packages Standard, CPPJini, Draw, and
WOK (WOKUtils, WOKTools, WOKTclTools).

It seems that there are at least two methods used for replacing generated
headers by manual ones:
- header file present in FILES and seems to be copied by WOK to inc after CDL
extraction (e.g. CPPJini.hxx)
- header file is copied by additional WOK step (defined using .edl file -- see
e.g. Standard package)

Note that manually created HXX files sometimes have the same name as the class,
sometimes have _proto postfix. Moreover in some cases (e.g. Standard_Transient)
both *.hxx and *_proto.hxx are used (one #including the other).

The following errors should be fixed at minimum:

- all manually written headers should be present in FILES exactly once (seems to
be already fixed today)

- the signature of methods and Doxygen documentation strings in hxx files should
correspond to CDL definitions (currently the documentation is missing in most of
hxx; methods definitions is often different -- see e.g.
Standard_Transient::Initialize())

- the note should be put in relevant CDL and HXX files indicating that manually
written header will be used instead of generated one, and that this header
should be corrected along with CDL

If possible, manually supported hxxs should be eliminated (this should be
possible in most cases using WOK capabilities)
TagsNo tags attached.
Test case number

Relationships

related to 0024002 closedabv Overall code and build procedure refactoring 

Activities

abv

2015-09-25 01:12

manager   ~0046117

The problem is eliminated by refactoring made for OCCT 7.0, please switch to Verified

Issue History

Date Modified Username Field Change
2005-10-31 11:33 bugmaster Assigned To bugmaster => imv
2005-10-31 11:33 bugmaster Status new => assigned
2005-12-23 18:14 abv Assigned To imv => pdn
2011-08-02 11:23 bugmaster Category OCCT:FDC => OCCT:Foundation Classes
2013-03-04 09:14 abv Assigned To pdn => abv
2014-06-05 18:56 abv Relationship added related to 0024002
2014-09-12 12:54 abv Fixed in Version EMPTY =>
2014-09-12 12:54 abv Target Version => 7.0.0
2014-09-12 12:54 abv Description Updated
2015-09-25 01:12 abv Note Added: 0046117
2015-09-25 01:12 abv Assigned To abv => bugmaster
2015-09-25 01:12 abv Status assigned => feedback
2015-09-30 11:39 bugmaster Status feedback => tested
2015-09-30 11:39 bugmaster Status tested => verified
2015-09-30 11:39 bugmaster Resolution open => fixed
2016-04-20 15:44 aiv Fixed in Version => 7.0.0
2016-04-20 15:48 aiv Status verified => closed