Open CASCADE Technology Reference Manual 8.0.0
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes
Message_Report Class Reference

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

#include <Message_Report.hxx>

Inheritance diagram for Message_Report:
Inheritance graph
[legend]

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

- 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 charget_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:

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: