Open CASCADE Technology 7.8.2.dev
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 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 Message_ListOfAlertGetAlerts (Message_Gravity theGravity) const
 Returns list of collected alerts with specified gravity.
 
Standard_Boolean HasAlert (const Handle< Standard_Type > &theType)
 Returns true if specific type of alert is recorded.
 
Standard_Boolean HasAlert (const Handle< Standard_Type > &theType, Message_Gravity theGravity)
 Returns true if specific type of alert is recorded with specified gravity.
 
Standard_Boolean IsActiveInMessenger (const Handle< Message_Messenger > &theMessenger=NULL) const
 Returns true if a report printer for the current report is registered in the messenger.
 
void ActivateInMessenger (const Standard_Boolean toActivate, const Handle< Message_Messenger > &theMessenger=NULL)
 Creates an instance of Message_PrinterToReport with the current report and register it in messenger.
 
void UpdateActiveInMessenger (const Handle< Message_Messenger > &theMessenger=NULL)
 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 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 Standard_Boolean theActivate)
 Sets metrics to compute when alerts are performed.
 
void ClearMetrics ()
 Removes all activated metrics.
 
Standard_Integer 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 Standard_Integer 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 Handle< Message_Messenger > &theMessenger)
 Sends all collected alerts to messenger.
 
virtual void SendMessages (const 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 Handle< Message_Report > &theOther)
 Merges data from theOther report into this.
 
void Merge (const Handle< Message_Report > &theOther, Message_Gravity theGravity)
 Merges alerts with specified gravity from theOther report into this.
 
void DumpJson (Standard_OStream &theOStream, Standard_Integer 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 ()
 Destructor must be virtual.
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object.
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type.
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName.
 
Standard_Boolean 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.
 
Standard_Boolean IsKind (const Standard_CString 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.
 
Standard_Integer GetRefCount () const noexcept
 Get the reference counter of this object.
 
void IncrementRefCounter () noexcept
 Increments the reference counter of this object.
 
Standard_Integer DecrementRefCounter () noexcept
 Decrements the reference counter of this object; returns the decremented value.
 
virtual void Delete () const
 Memory deallocator for transient classes.
 

Protected Member Functions

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

Protected Attributes

Standard_Mutex myMutex
 
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
 
Standard_Integer myLimit
 Maximum number of collected alerts on the top level.
 
Standard_Boolean myIsActiveInMessenger
 

Additional Inherited Members

- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object.
 
- Static Public Member Functions inherited from Standard_Transient
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 Standard_Boolean toActivate,
const Handle< Message_Messenger > & theMessenger = NULL )

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 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 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 Handle< Message_CompositeAlerts > & Message_Report::compositeAlerts ( const Standard_Boolean isCreate = Standard_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,
Standard_Integer theDepth = -1 ) const

Dumps the content of me into the stream.

◆ dumpMessages()

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

Dumps collected alerts with specified gravity to stream.

◆ GetAlerts()

const Message_ListOfAlert & Message_Report::GetAlerts ( Message_Gravity theGravity) const

Returns list of collected alerts with specified gravity.

◆ HasAlert() [1/2]

Standard_Boolean Message_Report::HasAlert ( const Handle< Standard_Type > & theType)

Returns true if specific type of alert is recorded.

◆ HasAlert() [2/2]

Standard_Boolean Message_Report::HasAlert ( const Handle< Standard_Type > & theType,
Message_Gravity theGravity )

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

◆ IsActiveInMessenger()

Standard_Boolean Message_Report::IsActiveInMessenger ( const Handle< Message_Messenger > & theMessenger = NULL) 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()

Standard_Integer 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 Handle< Message_Report > & theOther)

Merges data from theOther report into this.

◆ Merge() [2/2]

void Message_Report::Merge ( const 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 Handle< Message_Messenger > & theMessenger)
virtual

Sends all collected alerts to messenger.

◆ SendMessages() [2/2]

virtual void Message_Report::SendMessages ( const 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 Handle< Message_Messenger > & theMessenger,
Message_Gravity theGravity,
const Handle< Message_CompositeAlerts > & theCompositeAlert )
protected

Sends alerts to messenger.

◆ SetActiveMetric()

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

Sets metrics to compute when alerts are performed.

Parameters
theMetricscontainer of metrics

◆ SetLimit()

void Message_Report::SetLimit ( const Standard_Integer theLimit)
inline

Sets maximum number of collecting alerts.

Parameters
theLimitlimit value

◆ UpdateActiveInMessenger()

void Message_Report::UpdateActiveInMessenger ( const Handle< Message_Messenger > & theMessenger = NULL)

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

Handle< Message_CompositeAlerts > Message_Report::myCompositAlerts
protected

container of alerts

◆ myIsActiveInMessenger

Standard_Boolean Message_Report::myIsActiveInMessenger
protected

◆ myLimit

Standard_Integer Message_Report::myLimit
protected

Maximum number of collected alerts on the top level.

◆ myMutex

Standard_Mutex Message_Report::myMutex
protected

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