View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0030773 | Open CASCADE | OCCT:Application Framework | public | 2019-06-06 18:10 | 2021-12-17 18:41 |
Reporter | Assigned To | ||||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
Product Version | 7.3.0 | ||||
Target Version | 7.5.0 | Fixed in Version | 7.5.0 | ||
Summary | 0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms | ||||
Description | Currently most of the medium and big size-applications that use OCAF data structures covers them by higher-level interfaces. They allow involving application-specific names, relations between data, some simple logic over the basis OCAF components. For an example: there may be “Color” class that covers the array of integer attribute (RGB). It manages OCAF data by reference to attribute of to the label. It may: • Provide application-specific access to the data: methods ”blue”, “setBlue”, “isWhite”, etc. • Support references between objects. Like, this label may contain not array attribute, but reference to other array or object or pointer to external, not OCAF object. Method “blue” and others may correctly manage this. • To cash some data based on persistent values to avoid too often computation. Like “intensity” by RGB. Disadvantage of such approach is that the interface classes hardly can be persistent. Normally interface is created on the fly by demand and cannot live longer than a transaction. This approach does not allow the cashing, keeping some objects in fields and controlling the data modification. If objects are more persistent, there appeared a problem with update of these objects on undo/redo, abort and load/save operations. Modification of OCAF data may be done outside of related objects, so it breaks the object-oriented approach and an idea of encapsulation. Currently here appeared a problem that it is required to create interface-objects by some data of TDF_Attribute. Low level OCAF entities (labels and/or attributes) in many cases become arguments of methods for creation, searching or iteration of high-level interfaces. It is necessary anyway to create some kind of factory that creates interface-objects (at least on load of the document) by the presented OCAF structure. Another approach may be to inherit the OCAF attributes and somehow control the data change (AfterUndo and other similar methods), but this requires complicated development to implement persistent mechanism for them (in general, at least for 2 standard formats supported) and other things. With the current way of implementation it is simple code-duplication. In this improvement it is proposed to allow developer to inherit existing attributes if the same persistent fileds are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. Development of persistence mechanism for such attributes is minimal. In the example above for “Color” class it will be enough to inherit “TDataStd_IntegerArray”, so, functionality of “TDataStd_IntegerArray” will be used to store/restore all the needed data. Minimal requirement is to redefine NewEmpty method (ID and GetID to have different GUID, other methods for more complicated behavior). To re-create such attributes on load of the file, there must be a special factory. It is proposed to add it to the TDF_Attribute.hxx file, so, no additional includes will be required to make a derived attribute. A special macro will register a new derived attributes in the factory (it may be callled instead of standard Handle macro definition: IMPLEMENT_STANDARD_RTTIEXT). The main benefit for OCCT is that derived attributes contain only interfaces and new GUIDs (and dynamic type) and require no classes in persistent drivers (like TDataStd_Comment may inherit TDataStd_Name and the following drivers become obsolete: BinMDataStd_CommentDriver, XmlMDataStd_CommentDriver, part of StdLPersistent_Value). This improvement should not change both present formats Bin and XML documents. THe obsolete Standard scheme is not changed at all. | ||||
Steps To Reproduce | The following tests are added: caf basic F4 caf basic F5 | ||||
Tags | No tags attached. | ||||
Test case number | Not required | ||||
|
Branch CR30773 has been created by mpv. SHA-1: 3468f571674dbc9e876bad577980f70d0465c126 Detailed log of new commits: Author: mpv Date: Thu Jun 6 18:23:34 2019 +0300 30773: To allow to inherit existing attributes to reuse persistence mechanisms Added possibility to inherit attributes, supported by Deriver Attributes factory in TDF_Attribute, macros and DerivedDriver instance in the Bin and XML data storage. Removed drivers in Bin and XML schemes for derived attributes. |
|
Branch CR30773 has been updated by mpv. SHA-1: 2540bde130ea87e5a83646fd8c9752066e58c88a Detailed log of new commits: Author: mpv Date: Fri Jun 7 16:28:07 2019 +0300 30773: To allow to inherit existing attributes to reuse persistence mechanisms # Correction of compilation warnings |
|
Branch CR30773_2 has been created by mpv. SHA-1: 7f21b051d965bea56dfeea4da88cbb08766454d7 Detailed log of new commits: Author: mpv Date: Tue Jun 11 09:46:16 2019 +0300 30773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms |
|
Solution is in CR30773_2 branch: many drivers in Bin and Xml persistence schemes are removed due to duplication of functionality of drivers, or fully empty drivers methods. No regressions are detected: http://occt-tests/CR30773_2-CR30773_2-MPV-Products/Debian80-64/diff_summary.html http://occt-tests/CR30773_2-CR30773_2-MPV-OCCT/Windows-64-VC14/diff_summary.html Please, review. |
|
Remarks. 1.IntegerDriver (Bin & Xml) modification if (!ok) { theSource.SetPosition(aPos); anAtt->SetID(TDataStd_Integer::GetID()); ok = Standard_True; } else ... It means that expected predefined attribute (before TDataStd_Integer). Removing line anAtt->SetID(...) is dangerous as it leads to not initialized field. It should be processed taking into account as parent as derived types. 2.It is not desirable to use static maps (DERIVED & DERIVED_TYPES) as it blocks possibility to use it in multi-threading application. It would be better to use another solution with dynamic creation. Let's discuss it. |
|
See my comments. |
|
Branch CR30773_2 has been updated by mpv. SHA-1: 1056ba2343c05ec33814341474943fe6f188032b Detailed log of new commits: Author: mpv Date: Fri Jun 14 15:39:03 2019 +0300 30773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Protection for the multi-threaded open/save of documents with different resources. |
|
It is discussed that the first note is not needed to implement: GUID is defined in the constructor of the attributes. The second note is fixed in branch CR30773_2 : access to the map is covered by a mutex. http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_2-CR30773_2-MPV-OCCT-Windows-64-VC14-opt-test-compare/4/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_2-CR30773_2-MPV-OCCT-Debian80-64-opt-test-compare/7/ Please, review. |
|
Reviewed. |
|
Combination - OCCT branch : CR30773_2 master SHA - 1056ba2343c05ec33814341474943fe6f188032b d67d4b811012eef8913d3c535c29654d0acf3c4c Products branch : CR30773_2 SHA - 13155ea25080dfb52eff0da21e2a40bed0df94a2 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: 16189.080000000034 / 16165.440000000055 [+0.15%] Products Total CPU difference: 10479.060000000041 / 10470.220000000043 [+0.08%] Windows-64-VC14: OCCT Total CPU difference: 17615.328125 / 17617.515625 [-0.01%] Products Total CPU difference: 12065.65625 / 12110.78125 [-0.37%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR30773_2 has been updated by mpv. SHA-1: 25cdd1ed800fbef952d5f5d7f2d2e75ffea2c3b8 Detailed log of new commits: Author: mpv Date: Thu Jun 20 15:01:15 2019 +0300 30773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms # fix of the Ubuntu-1604-64-opt warnings |
|
30773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms The patch description which is supposed to be within commit description is missing. + Standard_EXPORT void AddDerivedDriver (Handle(TDF_Attribute) theInstance); ... + BinMDF_DerivedDriver(const Handle(TDF_Attribute) theDerivative, const Handle(BinMDF_ADriver) theBaseDriver); ... + Standard_EXPORT bool RegisterAttribute(Handle(TDF_Attribute) theDerived, const Handle(TDF_Attribute)& const Handle(BinMDF_ADriver)& --- /dev/null +++ b/src/BinMDF/BinMDF_DerivedDriver.lxx --- /dev/null +++ b/src/XmlMDF/XmlMDF_DerivedDriver.lxx Please avoid creation of new .lxx files for inlined functions having small size. Also prefer inlining at declaration for compact functions. --- a/src/BinMDataStd/BinMDataStd_IntegerDriver.cxx +++ b/src/BinMDataStd/BinMDataStd_IntegerDriver.cxx @@ -65,7 +65,6 @@ Standard_Boolean BinMDataStd_IntegerDriver::Paste ok = theSource >> aGuid; if (!ok) { theSource.SetPosition(aPos); - anAtt->SetID(TDataStd_Integer::GetID()); Is it related to the patch? + if (DERIVED.IsBound (theType)) + return DERIVED (theType); Seek()/Find(). +//! Defines implementation of Handle method and registers the derived attribute +#define IMPLEMENT_DERIVED_ATTRIBUTE(Class, Base) \ + IMPLEMENT_STANDARD_RTTIEXT(Class, Base) \ + static bool TDF_DERIVED_CONTAINER(TDF_DerivedAttribute::RegisterAttribute(new Class())); This mechanism will lead to problems on using OCCT built as static libraries. + //! Returns the current message driver of this driver + const Handle(Message_Messenger)& MessageDriver() const; I suppose Standard_EXPORT is missing. +inline Handle(Standard_Type) XmlMDF_ADriverTable::AddDerivedDriver (Standard_CString theDerivedType) What inline is supposed to mean here? +class XmlMDF_DerivedDriver : public XmlMDF_ADriver { newline before { |
|
Branch CR30773_3 has been created by mpv. SHA-1: c638611f5d6065172d911de2857ee98a48d641a1 Detailed log of new commits: Author: mpv Date: Tue Jul 9 16:15:08 2019 +0300 0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Added possibility to inherit existing attributes if the same persistent fields are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. They may have same GUIDs as a base class or new ones. Special macros IMPLEMENT_DERIVED_ATTRIBUTE and IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE must be used instead of standard Handle macro definition IMPLEMENT_STANDARD_RTTIEXT to register new derived attributes. Using this improvement several existing attributes from TDataStd, TDataXtd and XCAFDoc packages become inherited from other base attribute-classes. XML and Bin drivers of these attributes are removed. This improvement does not change both present formats Bin and XML documents. The obsolete Standard scheme is not changed at all. |
|
Dear KGV, All remarks are fixed except the following: + Standard_EXPORT bool RegisterAttribute(Handle(TDF_Attribute) theDerived, It should not receive references to "Handle" because it is called with attributes, created "on the fly". - anAtt->SetID(TDataStd_Integer::GetID()); Is it related to the patch? Yes. For now correct GUID is assigned in constructor of TDataStd_Integer and this line prevents from creation of derived attributes with different GUIDs (it is already discussed with SZY in comments 85050 and 85093) + static bool TDF_DERIVED_CONTAINER(TDF_DerivedAttribute::RegisterAttribute(new Class())); This mechanism will lead to problems on using OCCT built as static libraries. In TDF_Attribute.cxx all global variables are covered by static methods now. So, there should not be problem with order of global variables initialization in static mode of link. Solution is in CR30773_3 branch No regressions are detected: http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_3-CR30773_3-MPV-OCCT-Debian80-64-opt-test-compare/1/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_3-CR30773_3-MPV-OCCT-Windows-64-VC14-opt-test-compare/1/ Please, review. |
|
Branch CR30773_3 has been updated by kgv. SHA-1: 72a52f3bab11af12b10fd39661b81a7897377df2 Detailed log of new commits: Author: kgv Date: Thu Jul 18 13:05:23 2019 +0300 # remarks |
|
Branch CR30773_3 has been updated forcibly by kgv. SHA-1: 25e0507a1c5d93e24cf6cddc0380862b12422478 |
|
I have pushed some corrections to CR30773_3. Apart from this, the problem of usage of static library still not handled by the patch. The problem has been already indicated by GCC warnings which you have just suppressed: +#if (defined(__GNUC__)) + // gcc emits -Wunused-variable but TDF_DERIVED_CONTAINER variable is declared for RegisterAttribute call only + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wunused-variable" +#endif + +//! Defines implementation of Handle method and registers the derived attribute +#define IMPLEMENT_DERIVED_ATTRIBUTE(Class, Base) \ + IMPLEMENT_STANDARD_RTTIEXT(Class, Base) \ + static bool TDF_DERIVED_CONTAINER(TDF_DerivedAttribute::RegisterAttribute(new Class())); Defining a global variable which is never used explicitly in code allows linker to completely remove their construction from static library when using default linkage options. In addition, unconditional initialization of these maps while loading DLL is also undesired, because its slows down application startup even in case, when OCAF is not used / not always used by application. Moreover, though, such kind of self-initialization looks very compact, it complicates understanding of where these structures are actually used. Therefore, the preferred solution is implementing a dedicated initializer(s) which are explicitly called before they will be used, where each derived attribute is explicitly registered. Example of this initialization style are global variables defined via Interface_Static interface - see STEPCAFControl_Controller::Init(), STEPControl_Controller::Init(), IGESControl_Controller::Init() calls. |
|
Branch CR30773_3 has been updated by mpv. SHA-1: 94cf40cfb67de7c3e1988c0f9e16f0785da06713 Detailed log of new commits: Author: mpv Date: Thu Aug 1 13:35:02 2019 +0300 # reaction to remarks |
|
Ok, I have tried to satisfy the last request: - Global variable is now used by NewEmpty method, so, no warnings, no remove possibility by constructor - Slowing down the application on launch is minimized: no attribute-constructors are called, no map is filled. Just list, filled by simple pointers, few bytes per attribute. - The needed maps are filled by "Initialize" method, like in Interface_Static. It is called by the first demand: on document open or save. - Filling (resize) of maps is normally performed only once per application run-time. So, probability to keep invalid Handle referenced to destroyed map is minimized, near to 0 (this is to comment "not thread-safe when resizing the map" in TDF_DerivedAttribute.cxx) |
|
No regressions now: http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_3-CR30773_3-MPV-OCCT-Windows-64-VC14-opt-test-compare/3/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_3-CR30773_3-MPV-OCCT-Debian80-64-opt-test-compare/3/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_3-CR30773_3-MPV-Products-Windows-64-VC14-opt-test-compare/3/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_3-CR30773_3-MPV-Products-Debian80-64-opt-test-compare/3/ |
|
Branch CR30773_4 has been created by kgv. SHA-1: bc03a2ecc61d832c33fee9cffb1241c2214506c7 Detailed log of new commits: Author: mpv Date: Tue Jul 9 16:15:08 2019 +0300 0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Added possibility to inherit existing attributes if the same persistent fields are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. They may have same GUIDs as a base class or new ones. Special macros IMPLEMENT_DERIVED_ATTRIBUTE and IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE must be used instead of standard Handle macro definition IMPLEMENT_STANDARD_RTTIEXT to register new derived attributes. Using this improvement several existing attributes from TDataStd, TDataXtd and XCAFDoc packages become inherited from other base attribute-classes. XML and Bin drivers of these attributes are removed. This improvement does not change both present formats Bin and XML documents. The obsolete Standard scheme is not changed at all. |
|
+const Handle(TDF_Attribute) & TDF_DerivedAttribute::Attribute (Standard_CString theType) +{ + Standard_Mutex::Sentry aSentry (TDF_DerivedAttributeGlobals::Mutex()); + Initialize(); + if (const Handle(TDF_Attribute)* aResult = TDF_DerivedAttributeGlobals::Attributes().Seek (theType)) + { + return *aResult; /// TODO - not thread-safe when resizing the map + } + + static const Handle(TDF_Attribute) aNullAttrib; + return aNullAttrib; +} Any ideas for these TODOs? |
|
Branch CR30773_4 has been updated by mpv. SHA-1: 4328f91feeeb933999b5a93ab39fb9886f4d41b0 Detailed log of new commits: Author: mpv Date: Mon Sep 2 17:26:28 2019 +0300 # Apply of TODOs |
|
The patch is checked "ok": http://occt-tests/CR30773_4-CR30773_3-MPV-OCCT/Windows-64-VC14/diff_summary.html http://occt-tests/CR30773_4-CR30773_3-MPV-OCCT/Debian80-64/diff_summary.html |
|
There is a compiler warning on android-armeabi-v7a-gcc:from occt.git\src\TDataXtd\TDataXtd.cxx:18: occt.git/src/TDF/TDF_DerivedAttribute.hxx:28:1: warning: multi-line comment [-Wcomment] //static Handle(TDF_Attribute) NewDerived(); \ ^ |
|
Branch CR30773_4 has been updated by mpv. SHA-1: fa65198a01ce469cd1a5f52c12239ea54c90bc3e Detailed log of new commits: Author: mpv Date: Tue Sep 3 09:19:44 2019 +0300 # Removed useless comment |
|
Fixed |
|
There are two remarks: 1. Possible problem in client code due to changed inheritance. Current implementation changes inheritance relationships between existing attributes, which can be dangerous. For instance, consider this code (taken from DDocStd_MTMCommands.cxx, function XAttributeValue; similar code exists in XDEDRAW.cxx): else if ( att->IsKind(STANDARD_TYPE(TDataStd_Name)) ) { Handle(TDataStd_Name) val = Handle(TDataStd_Name)::DownCast ( att ); TCollection_AsciiString str ( val->Get(), '?' ); di << str.ToCString(); } else if ( att->IsKind(STANDARD_TYPE(TDataStd_Comment)) ) { Handle(TDataStd_Comment) val = Handle(TDataStd_Comment)::DownCast ( att ); TCollection_AsciiString str ( val->Get(), '?' ); di << str.ToCString(); } The second "if" will never be visited since TDataStd_Comment now inherits TDataStd_Name. This kind of errors is very difficult to diagnose, thus better to avoid this possibility. I propose adding specific attributes (possibly abstract) for use as base classes for derived attributes, instead of reusing existing ones. 2. Tricky mechanism of enabling persistence for derived attributes The proposed implementation is quite complicated, for the sake of automatism (you use two macros in attribute definition and can expect it to be supported in persistence). However, this is not explicit and may not always work as expected. In particular, this automatism still requires proper initialization of drivers of the base attribute. Would not it be more straighforward and convenient just to allow registering a persistence driver for the derived class using driver class of the base class? In that case we would keep existing approach with explicit initialization of driver tables listing all types, instead of mixed one (base drivers shall be explicitly added while derived get added automatically). For instance, in BinMDataStd::AddDrivers() instead of theDriverTable->AddDriver (new BinMDataStd_CommentDriver (theMsgDriver) ); we would put (assuming that TDataStd_Name inherits TDataStd_Comment): theDriverTable->AddDriver (new BinMDataStd_NameDriver (theMsgDriver, new TDataStd_Comment) ); The driver would use instance of the derived attribute to get type name of the attribute class and create new instances. Please consider this possibility. |
|
Ok for the first remark: I will create the abstract attribute classes that will be used as base classes for all attributes which inherit other attributes currently (ok, some more entities on OCCT, I wanted to avoid). For the second remark: this will destroy the simple mechanism I wanted to create. If we do this, this improvement may be erased, since in will be the same complexity as the current mechanism of creation of custom attributes, so, useless. |
|
Branch CR30773_5 has been created by mpv. SHA-1: ace139800a1a27e4179b61b9b5d5aa4b4d25bc9b Detailed log of new commits: Author: mpv Date: Thu May 14 22:12:52 2020 +0300 0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Added possibility to inherit existing attributes if the same persistent fields are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. They may have same GUIDs as a base class or new ones. Special macros IMPLEMENT_DERIVED_ATTRIBUTE and IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE must be used instead of standard Handle macro definition IMPLEMENT_STANDARD_RTTIEXT to register new derived attributes. Using this improvement several existing attributes from TDataStd, TDataXtd and XCAFDoc packages become inherited from other base attribute-classes. XML and Bin drivers of these attributes are removed. New base attribute classes are added: TDataStd_GenericEmpty and TDataStd_GenericExtString. This improvement does not change both present formats Bin and XML documents. The obsolete Standard scheme is not changed at all. |
|
Branch CR30773_5 has been updated forcibly by mpv. SHA-1: 075cce71d3889ce6d72b8b34a376abff29d68429 |
|
Branch CR30773_5 has been updated by mpv. SHA-1: 4cb2efae6c0f9ecb6bee0b5d57e10751bf35268d Detailed log of new commits: Author: mpv Date: Mon May 18 13:47:33 2020 +0300 # Eliminate MacOS warnings |
|
Branch CR30773_6 has been created by mpv. SHA-1: 77679c3695b833ace57b8f1680d615311d8647e0 Detailed log of new commits: Author: mpv Date: Fri Jun 19 23:12:17 2020 +0300 0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Added possibility to inherit existing attributes if the same persistent fields are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. They may have same GUIDs as a base class or new ones. Special macros IMPLEMENT_DERIVED_ATTRIBUTE and IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE must be used instead of standard Handle macro definition IMPLEMENT_STANDARD_RTTIEXT to register new derived attributes. Using this improvement several existing attributes from TDataStd, TDataXtd and XCAFDoc packages become inherited from other base attribute-classes. XML and Bin drivers of these attributes are removed. New base attribute classes are added: TDataStd_GenericEmpty and TDataStd_GenericExtString. This improvement does not change both present formats Bin and XML documents. The obsolete Standard scheme is not changed at all. |
|
Fixes are located in CR307734_6 of OCCT and PRODUCTS. TDataStd_GenericEmpty and TDataStd_GenericExtString classes are added as intermediate attributes, base of no-fields attributes and one TCollection_ExtendedString field attribute. |
|
Tests were passed: http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_6-CR30773_6-MPV-OCCT-Windows-64-VC14-opt-test-compare/2/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_6-CR30773_6-MPV-OCCT-Debian80-64-opt-test-compare/2/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_6-CR30773_6-MPV-Products-Windows-64-VC14-opt-test-compare/2/ http://vm-jenkins-test-12.nnov.opencascade.com:8080/job/CR30773_6-CR30773_6-MPV-Products-Debian80-64-opt-test-compare/2/ |
|
Dear VRO, could you review this issue. |
|
Reviewed. Mikhail, there were a lot of changes in OCAF recently. What do you think about writing of a short tutorial with several simple examples (like the Color attribute from your description)? |
|
+ +//! Defines implementation of Handle method and registers the derived attribute +#define IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(Class, Base, NameSpace, TypeName) \ Mikhail, this documentation style will not be handled correctly by Doxygen. Could you please use @def tag for documenting new macros? + +class TDF_DerivedAttribute Looks like description of the class has been lost. |
|
In the current implementation at least internal goal is achieved: remove duplicated drivers files from OCCT. I agree that we could extend documentation sometimes, but I would prefer to do it after we add some new attribute in this advanced way, or use the proposed mechanism in some external development. For bugmaster: OCCT branch: CR30773_6 Products branch: CR30773_6 Is it worth to rebase these branches on top of origin/WEEK-37 (since they are quite old)? |
|
Branch CR30773_6 has been updated by mpv. SHA-1: 8ca4374bf859a6e75946e5c137537ea534f7aa9b Detailed log of new commits: Author: mpv Date: Fri Sep 11 16:41:26 2020 +0300 # COmments are added. |
|
Combination - OCCT branch : IR-2020-09-11 master SHA - d1b25684e9402d995dafec22fb98f83957d5fb76 a206de37fbfa0bf71bd534ae47192bbec23b8522 Products branch : IR-2020-09-11 SHA - a7e55a291cf6642cb4af945a999deeeb5f91272a 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: 17333.360000000142 / 17325.800000000123 [+0.04%] Products Total CPU difference: 12056.720000000096 / 12079.64000000011 [-0.19%] Windows-64-VC14: OCCT Total CPU difference: 18817.921875 / 18792.46875 [+0.14%] Products Total CPU difference: 13294.09375 / 13274.75 [+0.15%] Image differences : No differences that require special attention Memory differences : No differences that require special attention |
|
Branch CR30773_6 has been deleted by inv. SHA-1: 8ca4374bf859a6e75946e5c137537ea534f7aa9b |
|
Branch CR30773_5 has been deleted by inv. SHA-1: 4cb2efae6c0f9ecb6bee0b5d57e10751bf35268d |
|
Branch CR30773_4 has been deleted by inv. SHA-1: fa65198a01ce469cd1a5f52c12239ea54c90bc3e |
|
Branch CR30773_3 has been deleted by inv. SHA-1: 94cf40cfb67de7c3e1988c0f9e16f0785da06713 |
|
Branch CR30773_2 has been deleted by inv. SHA-1: 25cdd1ed800fbef952d5f5d7f2d2e75ffea2c3b8 |
|
Branch CR30773 has been deleted by inv. SHA-1: 2540bde130ea87e5a83646fd8c9752066e58c88a |
occt: master c99ad5d7 2020-06-19 20:12:17
Committer: abv Details Diff |
0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Added possibility to inherit existing attributes if the same persistent fields are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. They may have same GUIDs as a base class or new ones. Special macros IMPLEMENT_DERIVED_ATTRIBUTE and IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE must be used instead of standard Handle macro definition IMPLEMENT_STANDARD_RTTIEXT to register new derived attributes. Using this improvement several existing attributes from TDataStd, TDataXtd and XCAFDoc packages become inherited from other base attribute-classes. XML and Bin drivers of these attributes are removed. New base attribute classes are added: TDataStd_GenericEmpty and TDataStd_GenericExtString. This improvement does not change both present formats Bin and XML documents. The obsolete Standard scheme is not changed at all. |
Affected Issues 0030773 |
|
mod - src/BinMDataStd/BinMDataStd.cxx | Diff File | ||
mod - src/BinMDataStd/BinMDataStd.hxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_CommentDriver.cxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_CommentDriver.hxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_DirectoryDriver.cxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_DirectoryDriver.hxx | Diff File | ||
mod - src/BinMDataStd/BinMDataStd_IntegerDriver.cxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_NoteBookDriver.cxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_NoteBookDriver.hxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_RelationDriver.cxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_RelationDriver.hxx | Diff File | ||
rm - src/BinMDataStd/BinMDataStd_TickDriver.hxx | Diff File | ||
mod - src/BinMDataStd/FILES | Diff File | ||
mod - src/BinMDataXtd/BinMDataXtd.cxx | Diff File | ||
mod - src/BinMDataXtd/BinMDataXtd.hxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_AxisDriver.cxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_PlacementDriver.cxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_PlacementDriver.hxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_PlaneDriver.cxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_PlaneDriver.hxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_PointDriver.cxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_PointDriver.hxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_ShapeDriver.cxx | Diff File | ||
rm - src/BinMDataXtd/BinMDataXtd_ShapeDriver.hxx | Diff File | ||
mod - src/BinMDataXtd/FILES | Diff File | ||
mod - src/BinMDF/BinMDF_ADriver.cxx | Diff File | ||
mod - src/BinMDF/BinMDF_ADriver.hxx | Diff File | ||
mod - src/BinMDF/BinMDF_ADriver.lxx | Diff File | ||
mod - src/BinMDF/BinMDF_ADriverTable.cxx | Diff File | ||
mod - src/BinMDF/BinMDF_ADriverTable.hxx | Diff File | ||
mod - src/BinMDF/BinMDF_ADriverTable.lxx | Diff File | ||
add - src/BinMDF/BinMDF_DerivedDriver.cxx | Diff File | ||
add - src/BinMDF/BinMDF_DerivedDriver.hxx | Diff File | ||
mod - src/BinMDF/FILES | Diff File | ||
mod - src/BinMXCAFDoc/BinMXCAFDoc.cxx | Diff File | ||
mod - src/BinMXCAFDoc/BinMXCAFDoc.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.hxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cxx | Diff File | ||
rm - src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.hxx | Diff File | ||
mod - src/BinMXCAFDoc/FILES | Diff File | ||
mod - src/DDF/DDF_BasicCommands.cxx | Diff File | ||
mod - src/TDataStd/FILES | Diff File | ||
mod - src/TDataStd/TDataStd_Comment.cxx | Diff File | ||
mod - src/TDataStd/TDataStd_Comment.hxx | Diff File | ||
mod - src/TDataStd/TDataStd_Directory.cxx | Diff File | ||
mod - src/TDataStd/TDataStd_Directory.hxx | Diff File | ||
mod - src/TDataStd/TDataStd_Expression.cxx | Diff File | ||
mod - src/TDataStd/TDataStd_Expression.hxx | Diff File | ||
add - src/TDataStd/TDataStd_GenericEmpty.cxx | Diff File | ||
add - src/TDataStd/TDataStd_GenericEmpty.hxx | Diff File | ||
add - src/TDataStd/TDataStd_GenericExtString.cxx | Diff File | ||
add - src/TDataStd/TDataStd_GenericExtString.hxx | Diff File | ||
mod - src/TDataStd/TDataStd_Name.cxx | Diff File | ||
mod - src/TDataStd/TDataStd_Name.hxx | Diff File | ||
mod - src/TDataStd/TDataStd_NoteBook.cxx | Diff File | ||
mod - src/TDataStd/TDataStd_NoteBook.hxx | Diff File | ||
mod - src/TDataStd/TDataStd_Real.hxx | Diff File | ||
mod - src/TDataStd/TDataStd_Relation.cxx | Diff File | ||
mod - src/TDataStd/TDataStd_Relation.hxx | Diff File | ||
mod - src/TDataStd/TDataStd_Tick.cxx | Diff File | ||
mod - src/TDataStd/TDataStd_Tick.hxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Axis.cxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Axis.hxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Placement.cxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Placement.hxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Plane.cxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Plane.hxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Point.cxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Point.hxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Shape.cxx | Diff File | ||
mod - src/TDataXtd/TDataXtd_Shape.hxx | Diff File | ||
mod - src/TDF/FILES | Diff File | ||
add - src/TDF/TDF_DerivedAttribute.cxx | Diff File | ||
add - src/TDF/TDF_DerivedAttribute.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_Area.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_Area.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ClippingPlaneTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ClippingPlaneTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ColorTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ColorTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_Dimension.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_Dimension.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_DimTolTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_DimTolTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_DocumentTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_DocumentTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_GeomTolerance.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_GeomTolerance.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_LayerTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_LayerTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_MaterialTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_MaterialTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_Note.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_NoteBalloon.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_NoteBalloon.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_NotesTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_NotesTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ShapeTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ShapeTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_View.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_View.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ViewTool.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_ViewTool.hxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_Volume.cxx | Diff File | ||
mod - src/XCAFDoc/XCAFDoc_Volume.hxx | Diff File | ||
mod - src/XmlMDataStd/FILES | Diff File | ||
mod - src/XmlMDataStd/XmlMDataStd.cxx | Diff File | ||
mod - src/XmlMDataStd/XmlMDataStd.hxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_CommentDriver.cxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_CommentDriver.hxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_DirectoryDriver.cxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_DirectoryDriver.hxx | Diff File | ||
mod - src/XmlMDataStd/XmlMDataStd_IntegerDriver.cxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_NoteBookDriver.cxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_NoteBookDriver.hxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_RelationDriver.cxx | Diff File | ||
rm - src/XmlMDataStd/XmlMDataStd_RelationDriver.hxx | Diff File | ||
mod - src/XmlMDataXtd/FILES | Diff File | ||
mod - src/XmlMDataXtd/XmlMDataXtd.cxx | Diff File | ||
mod - src/XmlMDataXtd/XmlMDataXtd.hxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_AxisDriver.hxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.hxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.hxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_PointDriver.cxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_PointDriver.hxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cxx | Diff File | ||
rm - src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.hxx | Diff File | ||
mod - src/XmlMDF/FILES | Diff File | ||
mod - src/XmlMDF/XmlMDF.cxx | Diff File | ||
mod - src/XmlMDF/XmlMDF_ADriver.cxx | Diff File | ||
mod - src/XmlMDF/XmlMDF_ADriver.hxx | Diff File | ||
mod - src/XmlMDF/XmlMDF_ADriverTable.cxx | Diff File | ||
mod - src/XmlMDF/XmlMDF_ADriverTable.hxx | Diff File | ||
add - src/XmlMDF/XmlMDF_DerivedDriver.cxx | Diff File | ||
add - src/XmlMDF/XmlMDF_DerivedDriver.hxx | Diff File | ||
mod - src/XmlMXCAFDoc/FILES | Diff File | ||
mod - src/XmlMXCAFDoc/XmlMXCAFDoc.cxx | Diff File | ||
mod - src/XmlMXCAFDoc/XmlMXCAFDoc.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ClippingPlaneToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ClippingPlaneToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NoteBalloonDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NoteBalloonDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NotesToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NotesToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ViewToolDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ViewToolDriver.hxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.cxx | Diff File | ||
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.hxx | Diff File | ||
add - tests/caf/basic/F4 | Diff File | ||
add - tests/caf/basic/F5 | Diff File | ||
occt-products: master aed86f84 2020-06-19 22:33:12
Committer: bugmaster Details Diff |
30773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms Correct behavior of the inherited attributes in the SWIG classes list. Added TDF_DerivedAttribute class to the wrapper, after TDF_Attribute. Also, added new base attributes to the wrapper: Empty and ExtString. |
Affected Issues 0030773 |
|
mod - diff | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-06-06 18:10 |
|
New Issue | |
2019-06-06 18:10 |
|
Assigned To | => mpv |
2019-06-06 18:24 | git | Note Added: 0084935 | |
2019-06-07 13:44 | kgv | Summary | To allow to inherit existing attributes to reuse persistence mechanisms => Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms |
2019-06-07 16:28 | git | Note Added: 0084947 | |
2019-06-11 09:49 | git | Note Added: 0084981 | |
2019-06-13 10:20 |
|
Note Added: 0085025 | |
2019-06-13 10:20 |
|
Assigned To | mpv => szy |
2019-06-13 10:20 |
|
Status | new => resolved |
2019-06-13 10:20 |
|
Steps to Reproduce Updated | |
2019-06-14 12:46 |
|
Note Added: 0085050 | |
2019-06-14 12:47 |
|
Note Added: 0085051 | |
2019-06-14 12:47 |
|
Assigned To | szy => mpv |
2019-06-14 12:47 |
|
Status | resolved => feedback |
2019-06-14 15:39 | git | Note Added: 0085055 | |
2019-06-17 17:14 |
|
Note Added: 0085093 | |
2019-06-17 17:14 |
|
Assigned To | mpv => szy |
2019-06-17 17:14 |
|
Status | feedback => resolved |
2019-06-19 10:37 |
|
Note Added: 0085138 | |
2019-06-19 10:37 |
|
Assigned To | szy => bugmaster |
2019-06-19 10:37 |
|
Status | resolved => reviewed |
2019-06-19 20:11 | bugmaster | Test case number | => Not required |
2019-06-19 20:12 | bugmaster | Note Added: 0085151 | |
2019-06-19 20:12 | bugmaster | Status | reviewed => tested |
2019-06-20 15:02 | git | Note Added: 0085179 | |
2019-06-20 15:51 | kgv | Note Added: 0085182 | |
2019-06-20 15:51 | kgv | Assigned To | bugmaster => mpv |
2019-06-20 15:51 | kgv | Status | tested => assigned |
2019-06-20 15:51 | kgv | Target Version | => 7.5.0 |
2019-06-20 15:53 | kgv | Note Edited: 0085182 | |
2019-07-09 16:16 | git | Note Added: 0085514 | |
2019-07-09 18:25 |
|
Note Added: 0085529 | |
2019-07-09 18:25 |
|
Assigned To | mpv => kgv |
2019-07-09 18:25 |
|
Status | assigned => resolved |
2019-07-18 13:07 | git | Note Added: 0085758 | |
2019-07-18 14:01 | git | Note Added: 0085763 | |
2019-07-19 09:44 | kgv | Note Added: 0085779 | |
2019-07-19 09:45 | kgv | Assigned To | kgv => mpv |
2019-07-19 09:45 | kgv | Status | resolved => assigned |
2019-07-19 09:45 | kgv | Note Edited: 0085779 | |
2019-07-19 09:46 | kgv | Note Edited: 0085779 | |
2019-07-19 09:46 | kgv | Note Edited: 0085779 | |
2019-08-01 13:37 | git | Note Added: 0085965 | |
2019-08-01 13:46 |
|
Note Added: 0085967 | |
2019-08-01 13:46 |
|
Assigned To | mpv => kgv |
2019-08-01 13:46 |
|
Status | assigned => resolved |
2019-08-21 09:39 |
|
Note Added: 0086379 | |
2019-09-02 14:26 | git | Note Added: 0086613 | |
2019-09-02 15:40 | kgv | Note Added: 0086616 | |
2019-09-02 15:40 | kgv | Note Edited: 0086616 | |
2019-09-02 17:29 | git | Note Added: 0086626 | |
2019-09-03 08:41 |
|
Note Added: 0086676 | |
2019-09-03 09:13 | kgv | Note Added: 0086677 | |
2019-09-03 09:22 | git | Note Added: 0086678 | |
2019-09-03 09:23 |
|
Note Added: 0086679 | |
2019-09-03 09:24 | kgv | Assigned To | kgv => abv |
2019-09-05 09:23 |
|
Target Version | 7.5.0 => 7.4.0 |
2019-09-06 14:39 |
|
Note Added: 0086882 | |
2019-09-06 14:39 |
|
Target Version | 7.4.0 => 7.5.0 |
2019-09-06 14:39 |
|
Assigned To | abv => mpv |
2019-09-06 14:39 |
|
Status | resolved => assigned |
2019-09-06 15:53 |
|
Note Added: 0086893 | |
2020-05-14 22:49 | git | Note Added: 0092127 | |
2020-05-15 15:30 | git | Note Added: 0092156 | |
2020-05-18 13:46 | git | Note Added: 0092231 | |
2020-06-19 23:10 | git | Note Added: 0092586 | |
2020-06-22 12:59 |
|
Note Added: 0092645 | |
2020-06-22 12:59 |
|
Assigned To | mpv => abv |
2020-06-22 12:59 |
|
Status | assigned => resolved |
2020-06-22 12:59 |
|
Steps to Reproduce Updated | |
2020-06-22 13:40 |
|
Note Added: 0092650 | |
2020-09-09 10:57 |
|
Note Added: 0094287 | |
2020-09-09 10:57 |
|
Assigned To | abv => vro |
2020-09-10 15:23 | vro | Note Added: 0094379 | |
2020-09-10 15:23 | vro | Assigned To | vro => bugmaster |
2020-09-10 15:23 | vro | Status | resolved => reviewed |
2020-09-10 15:29 | kgv | Note Added: 0094381 | |
2020-09-10 15:33 |
|
Note Added: 0094383 | |
2020-09-11 16:38 | git | Note Added: 0094479 | |
2020-09-13 11:06 | bugmaster | Note Added: 0094547 | |
2020-09-13 11:06 | bugmaster | Status | reviewed => tested |
2020-09-13 11:24 |
|
Changeset attached | => occt master c99ad5d7 |
2020-09-13 11:24 |
|
Assigned To | bugmaster => abv |
2020-09-13 11:24 |
|
Status | tested => verified |
2020-09-13 11:24 |
|
Resolution | open => fixed |
2020-09-13 11:44 | git | Note Added: 0094566 | |
2020-09-13 11:47 | git | Note Added: 0094610 | |
2020-09-13 11:47 | git | Note Added: 0094623 | |
2020-09-13 11:48 | git | Note Added: 0094630 | |
2020-09-13 11:48 | git | Note Added: 0094632 | |
2020-09-13 11:48 | git | Note Added: 0094634 | |
2020-10-14 11:55 | kgv | Relationship added | related to 0025681 |
2020-12-02 16:22 |
|
Fixed in Version | => 7.5.0 |
2020-12-02 17:11 |
|
Status | verified => closed |
2021-12-17 18:41 | bugmaster | Changeset attached | => occt-products master aed86f84 |