MantisBT
Mantis Bug Tracker Workflow

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0029451Open CASCADE[OCCT] OCCT:Foundation Classespublic2018-01-25 18:332018-06-28 11:01
Reporternds 
Assigned Tonds 
PrioritynormalSeverityfeature 
StatusnewResolutionopen 
PlatformOSOS Version
Product Version[OCCT] 7.3.0 
Target Version[OCCT] 7.4.0*Fixed in Version 
Summary0029451: Information Message Alert to debug an algorithm or object functionality
DescriptionWhile developing applications on the base of OCCT, it would be nice to have some additional information about the current state of used objects.
Having implemented Message_Report mechanism, we may provide such information using Message_Info Gravity alerts.

We just need to:
- add such alert into message report when class performs its job.
- have some tool to see tree of alerts.

In this issue, it is proposed to provide such alerts in:
- a modelization algorithm (using as an example BOPAlgo_Builder)
- AIS_InteractiveContext manipulating (callback about the object activity).
TagsNo tags attached.
Test case number
Attached Files

- Relationships

-  Notes
(0073597)
git (administrator)
2018-01-25 18:48

Branch CR29451 has been created by nds.

SHA-1: 1d7ab7892086b81bba000b10b68c7abafa466aae


Detailed log of new commits:

Author: nds
Date: Thu Jan 25 18:48:10 2018 +0300

    0029451: Information Message Alert to debug an algorithm or object functionality
    
    Modifications:
    - Message alerts hierarchical structure (to debug an algorithm stages and parameters)
    - Using message alerts in AIS_Interactive context to see history of calls.
    - Message_ReportCall back to be able to react to message report filling.
    - Information alerts in boolean algorithms.
    - Import/Export report. Currently it is implemented using XmlDrivers_MessageReportStorage
    - Improvements in Inspector functionality (main are: new plugin MessageView; preferences for plugins to save/restore widgets geometry, tree view columns state)
(0073598)
git (administrator)
2018-01-26 07:18

Branch CR29451 has been updated by nds.

SHA-1: ad8452421f30c3a38f684aff030b02b055a8edf2


Detailed log of new commits:

Author: nds
Date: Fri Jan 26 07:18:54 2018 +0300

    0029451: Information Message Alert to debug an algorithm or object functionality
    
    #Linux/qt4 compile error correction

(0073607)
git (administrator)
2018-01-26 10:55

Branch CR29451 has been updated by nds.

SHA-1: c5ec85b98925b56c42cba096c0747e821ef5eeea


Detailed log of new commits:

Author: nds
Date: Fri Jan 26 10:55:47 2018 +0300

    0029451: Information Message Alert to debug an algorithm or object functionality
    
    # Qt4 compile error correction

(0073649)
abv (manager)
2018-01-29 12:59

Some remarks:

- As already indicated by Kirill, unconditional generation of alerts added in many functions in AIS and BOPAlgo will likely harm performance, but does not bring any benefits for majority of use cases; please avoid this (at least, not in production code). Generation and collection of this kind of info can be useful only in specific contexts (debug?) and should be triggered explicitly.

- Class Message_AlertWithObject could be made templated with argument being the type to be stored. (And please fill "Created on:" and "Created by:" in the header comments).

- Changes in the class Message_Alert (addition of name and array of lists of sub-alerts) make it quite heavy, while initial intent was to have it as small and fast as possible to allow algorithms generating as many alerts as needed without extra penalties. In addition, this makes alert to have the same structure as whole report. Please reconsider this. A compromise could be to add dedicated class like CompositeAlert. But should not reports be made nested instead of alerts (if really needed)? Besides, by looking at how composite alerts are generated, I have a feeling that they can all be replaced by single alert with multi-line text.

- On changes in the Report class:

-- The approach to computing elapsed time and its meaning is not clear, please explain (or document). In my opinion, it can make sense to record just a wall clock time for the alert generation instance. Elapsed time, when needed, is related to some process and not alerts, hence it should be rather measured on the algorithm side. It can be reported using specific alert.

-- Storage of myAlertOfTimer as field apparently makes this functionality not applicable to multi-threaded applications

-- Method Message_Report::SetActive() calls itself recursively without real need

-- Method GetLastAlert() does not seem to be needed; in most places where GetLastInfo() (that uses that method) is used, it is assumed to return the alert created just a few lines above. There is no sense to use such complicated ways to get last alert if it is actually available in the same code. In addition, this will not work in multithreaded setting.

- Message_ReportCallback it is called only on event of adding new alert; should not it get this alert as parameter?
(0073655)
git (administrator)
2018-01-29 15:13

Branch CR29451_1 has been created by nds.

SHA-1: b52d3b7d969a3220d91f05effc11d5c7058edbaa


Detailed log of new commits:

Author: nds
Date: Thu Jan 25 18:48:10 2018 +0300

    0029451: Information Message Alert to debug an algorithm or object functionality
    
    Modifications:
    - Message alerts hierarchical structure (to debug an algorithm stages and parameters)
    - Using message alerts in AIS_Interactive context to see history of calls.
    - Message_ReportCall back to be able to react to message report filling.
    - Information alerts in boolean algorithms.
    - Import/Export report. Currently it is implemented using XmlDrivers_MessageReportStorage
    - Improvements in Inspector functionality (main are: new plugin MessageView; preferences for plugins to save/restore widgets geometry, tree view columns state)
(0073657)
git (administrator)
2018-01-29 15:23

Branch CR29451_1 has been updated by nds.

SHA-1: 38288285145948b08f127a6e7b0cda74cb888087


Detailed log of new commits:

Author: nds
Date: Mon Jan 29 15:23:10 2018 +0300

    0029451: Information Message Alert to debug an algorithm or object functionality
    
    Modifications:
    - ViewControl_PropertyView to fill property dockable widget in any plugin (further)
    - ViewControl package for common GUI controls

(0073667)
git (administrator)
2018-01-29 18:37

Branch CR29451_1 has been updated by nds.

SHA-1: 81cd71203e47f87527516014f2690f20ef5c25c8


Detailed log of new commits:

Author: nds
Date: Mon Jan 29 18:37:00 2018 +0300

    0029451: Information Message Alert to debug an algorithm or object functionality
    
    Modifications:
    - do not create new Message_Info gravity alerts if this gravity is not active in the report. Add_report_info is implemented for it.
    - code style remarks

(0077085)
git (administrator)
2018-06-28 11:01

Branch CR29451_2 has been created by nds.

SHA-1: e4529dcf83b12759e47efb89ded8207f802556a7


Detailed log of new commits:

Author: nds
Date: Thu Jun 28 11:00:39 2018 +0300

    0029451: Information Message Alert to debug an algorithm or object functionality
    
    Modifications:
     - Message_AlertExtended to store additional parameters (attributes, composite alert container, performance meter)
     - Message_Attribute and inherited classes to store custom information about alert
     - Message_CompositeAlerts to have hierarchical structure of alerts
     - Message_PerfMeter to automatically calculate time between alerts adding into report
     - Message_ReportCall back to be able to react to message report filling.
     - Import/Export message report report. Currently it is implemented using XmlDrivers_MessageReportStorage
     - MessageView/MessageModel - Inspector plugin for GUI presentation of Message_Report

- Issue History
Date Modified Username Field Change
2018-01-25 18:33 nds New Issue
2018-01-25 18:33 nds Assigned To => nds
2018-01-25 18:48 git Note Added: 0073597
2018-01-26 07:18 git Note Added: 0073598
2018-01-26 10:55 git Note Added: 0073607
2018-01-29 12:59 abv Note Added: 0073649
2018-01-29 15:13 git Note Added: 0073655
2018-01-29 15:23 git Note Added: 0073657
2018-01-29 18:37 git Note Added: 0073667
2018-06-28 11:01 git Note Added: 0077085


Copyright © 2000 - 2018 MantisBT Team
Powered by Mantis Bugtracker