OCCT3D OCCT 8.0.1
OCCT documentation

Search guides and API reference

Enter at least two characters.

    Open CASCADE Technology Reference Manual 8.0.1
    Message_Report Class Reference

    Container for alert messages, sorted according to their gravity. More...

    #include <Message_Report.hxx>

    Inheritance diagram for Message_Report:

    Public Member Functions

     Message_Report ()
     Empty constructor.
    void AddAlert (Message_Gravity theGravity, const occ::handle< Message_Alert > &theAlert)
     Add alert with specified gravity. This method is thread-safe, i.e. alerts can be added from parallel threads safely.
    const NCollection_List< occ::handle< Message_Alert > > & GetAlerts (Message_Gravity theGravity) const
     Returns list of collected alerts with specified gravity.
    bool HasAlert (const occ::handle< Standard_Type > &theType)
     Returns true if specific type of alert is recorded.
    bool HasAlert (const occ::handle< Standard_Type > &theType, Message_Gravity theGravity)
     Returns true if specific type of alert is recorded with specified gravity.
    bool IsActiveInMessenger (const occ::handle< Message_Messenger > &theMessenger=nullptr) const
     Returns true if a report printer for the current report is registered in the messenger.
    void ActivateInMessenger (const bool toActivate, const occ::handle< Message_Messenger > &theMessenger=nullptr)
     Creates an instance of Message_PrinterToReport with the current report and register it in messenger.
    void UpdateActiveInMessenger (const occ::handle< Message_Messenger > &theMessenger=nullptr)
     Updates internal flag IsActiveInMessenger. It becomes true if messenger contains at least one instance of Message_PrinterToReport.
    void AddLevel (Message_Level *theLevel, const TCollection_AsciiString &theName)
     Add new level of alerts.
    void RemoveLevel (Message_Level *theLevel)
     Remove level of alerts.
    void Clear ()
     Clears all collected alerts.
    void Clear (Message_Gravity theGravity)
     Clears collected alerts with specified gravity.
    void Clear (const occ::handle< Standard_Type > &theType)
     Clears collected alerts with specified type.
    const NCollection_IndexedMap< Message_MetricType > & ActiveMetrics () const
     Returns computed metrics when alerts are performed.
    void SetActiveMetric (const Message_MetricType theMetricType, const bool theActivate)
     Sets metrics to compute when alerts are performed.
    void ClearMetrics ()
     Removes all activated metrics.
    int Limit () const
     Returns maximum number of collecting alerts. If the limit is achieved, first alert is removed, the new alert is added in the container.
    void SetLimit (const int theLimit)
     Sets maximum number of collecting alerts.
    void Dump (Standard_OStream &theOS)
     Dumps all collected alerts to stream.
    void Dump (Standard_OStream &theOS, Message_Gravity theGravity)
     Dumps collected alerts with specified gravity to stream.
    virtual void SendMessages (const occ::handle< Message_Messenger > &theMessenger)
     Sends all collected alerts to messenger.
    virtual void SendMessages (const occ::handle< Message_Messenger > &theMessenger, Message_Gravity theGravity)
     Dumps collected alerts with specified gravity to messenger. Default implementation creates Message_Msg object with a message key returned by alert, and sends it in the messenger.
    void Merge (const occ::handle< Message_Report > &theOther)
     Merges data from theOther report into this.
    void Merge (const occ::handle< Message_Report > &theOther, Message_Gravity theGravity)
     Merges alerts with specified gravity from theOther report into this.
    void DumpJson (Standard_OStream &theOStream, int theDepth=-1) const
     Dumps the content of me into the stream.
    Public Member Functions inherited from Standard_Transient
     Standard_Transient ()
     Empty constructor.
     Standard_Transient (const Standard_Transient &)
     Copy constructor – does nothing.
    Standard_Transientoperator= (const Standard_Transient &)
     Assignment operator, needed to avoid copying reference counter.
    virtual ~Standard_Transient ()=default
     Destructor must be virtual.
    virtual const opencascade::handle< Standard_Type > & DynamicType () const
     Returns a type descriptor about this object.
    bool IsInstance (const opencascade::handle< Standard_Type > &theType) const
     Returns a true value if this is an instance of Type.
    bool IsInstance (const char *const theTypeName) const
     Returns a true value if this is an instance of TypeName.
    bool IsKind (const opencascade::handle< Standard_Type > &theType) const
     Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
    bool IsKind (const char *const theTypeName) const
     Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism.
    Standard_TransientThis () const
     Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero.
    int GetRefCount () const noexcept
     Get the reference counter of this object.
    void IncrementRefCounter () noexcept
     Increments the reference counter of this object. Uses relaxed memory ordering since incrementing only requires atomicity, not synchronization with other memory operations.
    int DecrementRefCounter () noexcept
     Decrements the reference counter of this object; returns the decremented value. Uses release ordering for the decrement to ensure all writes to the object are visible before the count reaches zero. An acquire fence is added only when the count reaches zero, ensuring proper synchronization before deletion. This is more efficient than using acq_rel for every decrement.
    virtual void Delete () const
     Memory deallocator for transient classes.

    Protected Member Functions

    const occ::handle< Message_CompositeAlerts > & compositeAlerts (const bool isCreate=false)
     Returns class provided hierarchy of alerts if created or create if the parameter is true.
    void sendMessages (const occ::handle< Message_Messenger > &theMessenger, Message_Gravity theGravity, const occ::handle< Message_CompositeAlerts > &theCompositeAlert)
     Sends alerts to messenger.
    void dumpMessages (Standard_OStream &theOS, Message_Gravity theGravity, const occ::handle< Message_CompositeAlerts > &theCompositeAlert)
     Dumps collected alerts with specified gravity to stream.

    Protected Attributes

    std::mutex myMutex
    occ::handle< Message_CompositeAlertsmyCompositAlerts
     container of alerts
    NCollection_Sequence< Message_Level * > myAlertLevels
     container of active levels, new alerts are added below the latest level
    NCollection_IndexedMap< Message_MetricTypemyActiveMetrics
     metrics to compute on alerts
    int myLimit
     Maximum number of collected alerts on the top level.
    bool myIsActiveInMessenger

    Additional Inherited Members

    typedef void base_type
     Returns a type descriptor about this object.
    static constexpr const char * get_type_name ()
     Returns a type descriptor about this object.
    static const opencascade::handle< Standard_Type > & get_type_descriptor ()
     Returns type descriptor of Standard_Transient class.

    Detailed Description

    Container for alert messages, sorted according to their gravity.

    For each gravity level, alerts are stored in simple list. If alert being added can be merged with another alert of the same type already in the list, it is merged and not added to the list.

    This class is intended to be used as follows:

    • In the process of execution, algorithm fills report by alert objects using methods AddAlert()
    • The result can be queried for presence of particular alert using methods HasAlert()
    • The reports produced by nested or sequentially executed algorithms can be collected in one using method Merge()
    • The report can be shown to the user either as plain text with method Dump() or in more advanced way, by iterating over lists returned by GetAlerts()
    • Report can be cleared by methods Clear() (usually after reporting)

    Message_PrinterToReport is a printer in Messenger to convert data sent to messenger into report

    Constructor & Destructor Documentation

    ◆ Message_Report()

    Message_Report::Message_Report ( )

    Empty constructor.

    Member Function Documentation

    ◆ ActivateInMessenger()

    void Message_Report::ActivateInMessenger ( const bool toActivate,
    const occ::handle< Message_Messenger > & theMessenger = nullptr )

    Creates an instance of Message_PrinterToReport with the current report and register it in messenger.

    Parameters
    toActivateif true, activated else deactivated
    theMessengerthe messenger. If it's NULL, the default messenger is used

    ◆ ActiveMetrics()

    const NCollection_IndexedMap< Message_MetricType > & Message_Report::ActiveMetrics ( ) const
    inline

    Returns computed metrics when alerts are performed.

    ◆ AddAlert()

    void Message_Report::AddAlert ( Message_Gravity theGravity,
    const occ::handle< Message_Alert > & theAlert )

    Add alert with specified gravity. This method is thread-safe, i.e. alerts can be added from parallel threads safely.

    ◆ AddLevel()

    void Message_Report::AddLevel ( Message_Level * theLevel,
    const TCollection_AsciiString & theName )

    Add new level of alerts.

    Parameters
    theLevela level

    ◆ Clear() [1/3]

    void Message_Report::Clear ( )

    Clears all collected alerts.

    ◆ Clear() [2/3]

    void Message_Report::Clear ( const occ::handle< Standard_Type > & theType)

    Clears collected alerts with specified type.

    ◆ Clear() [3/3]

    void Message_Report::Clear ( Message_Gravity theGravity)

    Clears collected alerts with specified gravity.

    ◆ ClearMetrics()

    void Message_Report::ClearMetrics ( )
    inline

    Removes all activated metrics.

    ◆ compositeAlerts()

    const occ::handle< Message_CompositeAlerts > & Message_Report::compositeAlerts ( const bool isCreate = false)
    protected

    Returns class provided hierarchy of alerts if created or create if the parameter is true.

    Parameters
    isCreateif composite alert has not been created for this alert, it should be created
    Returns
    instance or NULL

    ◆ Dump() [1/2]

    void Message_Report::Dump ( Standard_OStream & theOS)

    Dumps all collected alerts to stream.

    ◆ Dump() [2/2]

    void Message_Report::Dump ( Standard_OStream & theOS,
    Message_Gravity theGravity )

    Dumps collected alerts with specified gravity to stream.

    ◆ DumpJson()

    void Message_Report::DumpJson ( Standard_OStream & theOStream,
    int theDepth = -1 ) const

    Dumps the content of me into the stream.

    ◆ dumpMessages()

    void Message_Report::dumpMessages ( Standard_OStream & theOS,
    Message_Gravity theGravity,
    const occ::handle< Message_CompositeAlerts > & theCompositeAlert )
    protected

    Dumps collected alerts with specified gravity to stream.

    ◆ GetAlerts()

    const NCollection_List< occ::handle< Message_Alert > > & Message_Report::GetAlerts ( Message_Gravity theGravity) const

    Returns list of collected alerts with specified gravity.

    ◆ HasAlert() [1/2]

    bool Message_Report::HasAlert ( const occ::handle< Standard_Type > & theType)

    Returns true if specific type of alert is recorded.

    ◆ HasAlert() [2/2]

    bool Message_Report::HasAlert ( const occ::handle< Standard_Type > & theType,
    Message_Gravity theGravity )

    Returns true if specific type of alert is recorded with specified gravity.

    ◆ IsActiveInMessenger()

    bool Message_Report::IsActiveInMessenger ( const occ::handle< Message_Messenger > & theMessenger = nullptr) const

    Returns true if a report printer for the current report is registered in the messenger.

    Parameters
    theMessengerthe messenger. If it's NULL, the default messenger is used

    ◆ Limit()

    int Message_Report::Limit ( ) const
    inline

    Returns maximum number of collecting alerts. If the limit is achieved, first alert is removed, the new alert is added in the container.

    Returns
    the limit value

    ◆ Merge() [1/2]

    void Message_Report::Merge ( const occ::handle< Message_Report > & theOther)

    Merges data from theOther report into this.

    ◆ Merge() [2/2]

    void Message_Report::Merge ( const occ::handle< Message_Report > & theOther,
    Message_Gravity theGravity )

    Merges alerts with specified gravity from theOther report into this.

    ◆ RemoveLevel()

    void Message_Report::RemoveLevel ( Message_Level * theLevel)

    Remove level of alerts.

    ◆ SendMessages() [1/2]

    virtual void Message_Report::SendMessages ( const occ::handle< Message_Messenger > & theMessenger)
    virtual

    Sends all collected alerts to messenger.

    ◆ SendMessages() [2/2]

    virtual void Message_Report::SendMessages ( const occ::handle< Message_Messenger > & theMessenger,
    Message_Gravity theGravity )
    virtual

    Dumps collected alerts with specified gravity to messenger. Default implementation creates Message_Msg object with a message key returned by alert, and sends it in the messenger.

    ◆ sendMessages()

    void Message_Report::sendMessages ( const occ::handle< Message_Messenger > & theMessenger,
    Message_Gravity theGravity,
    const occ::handle< Message_CompositeAlerts > & theCompositeAlert )
    protected

    Sends alerts to messenger.

    ◆ SetActiveMetric()

    void Message_Report::SetActiveMetric ( const Message_MetricType theMetricType,
    const bool theActivate )

    Sets metrics to compute when alerts are performed.

    Parameters
    theMetricscontainer of metrics

    ◆ SetLimit()

    void Message_Report::SetLimit ( const int theLimit)
    inline

    Sets maximum number of collecting alerts.

    Parameters
    theLimitlimit value

    ◆ UpdateActiveInMessenger()

    void Message_Report::UpdateActiveInMessenger ( const occ::handle< Message_Messenger > & theMessenger = nullptr)

    Updates internal flag IsActiveInMessenger. It becomes true if messenger contains at least one instance of Message_PrinterToReport.

    Parameters
    theMessengerthe messenger. If it's NULL, the default messenger is used

    Field Documentation

    ◆ myActiveMetrics

    NCollection_IndexedMap<Message_MetricType> Message_Report::myActiveMetrics
    protected

    metrics to compute on alerts

    ◆ myAlertLevels

    NCollection_Sequence<Message_Level*> Message_Report::myAlertLevels
    protected

    container of active levels, new alerts are added below the latest level

    ◆ myCompositAlerts

    occ::handle<Message_CompositeAlerts> Message_Report::myCompositAlerts
    protected

    container of alerts

    ◆ myIsActiveInMessenger

    bool Message_Report::myIsActiveInMessenger
    protected

    ◆ myLimit

    int Message_Report::myLimit
    protected

    Maximum number of collected alerts on the top level.

    ◆ myMutex

    std::mutex Message_Report::myMutex
    protected

    The documentation for this class was generated from the following file: