Opm::MessageLimiter Class Reference

Handles limiting the number of messages with the same tag. More...

#include <MessageLimiter.hpp>

Public Types

enum  { NoLimit = -1 }
 Used to indicate no message number limit. More...
 
enum class  Response {
  PrintMessage , JustOverTagLimit , JustOverCategoryLimit , OverTagLimit ,
  OverCategoryLimit
}
 

Public Member Functions

 MessageLimiter ()
 Default constructor, no limit to the number of messages. More...
 
 MessageLimiter (const int tag_limit)
 
 MessageLimiter (const int tag_limit, const std::map< int64_t, int > &category_limits)
 
int tagMessageLimit () const
 The tag message limit (same for all tags). More...
 
const std::map< int64_t, int > & categoryMessageLimits () const
 The category message limits. More...
 
const std::map< int64_t, int > & categoryMessageCounts () const
 The category message counts. More...
 
Response handleMessageLimits (const std::string &tag, const int64_t messageMask)
 

Detailed Description

Handles limiting the number of messages with the same tag.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Used to indicate no message number limit.

Enumerator
NoLimit 

◆ Response

enum class Opm::MessageLimiter::Response
strong

Used for handleMessageLimits() return type (see that function).

Enumerator
PrintMessage 
JustOverTagLimit 
JustOverCategoryLimit 
OverTagLimit 
OverCategoryLimit 

Constructor & Destructor Documentation

◆ MessageLimiter() [1/3]

Opm::MessageLimiter::MessageLimiter ( )
inline

Default constructor, no limit to the number of messages.

◆ MessageLimiter() [2/3]

Opm::MessageLimiter::MessageLimiter ( const int  tag_limit)
inlineexplicit

Construct with given limit to number of messages with the same tag.

Negative limits (including NoLimit) are interpreted as NoLimit, but the default constructor is the preferred way to obtain that behaviour.

References Opm::Log::MessageType::Bug, Opm::Log::MessageType::Debug, Opm::Log::MessageType::Error, Opm::Log::MessageType::Info, NoLimit, Opm::Log::MessageType::Note, Opm::Log::MessageType::Problem, and Opm::Log::MessageType::Warning.

◆ MessageLimiter() [3/3]

Opm::MessageLimiter::MessageLimiter ( const int  tag_limit,
const std::map< int64_t, int > &  category_limits 
)
inline

Member Function Documentation

◆ categoryMessageCounts()

const std::map< int64_t, int > & Opm::MessageLimiter::categoryMessageCounts ( ) const
inline

The category message counts.

◆ categoryMessageLimits()

const std::map< int64_t, int > & Opm::MessageLimiter::categoryMessageLimits ( ) const
inline

The category message limits.

◆ handleMessageLimits()

Response Opm::MessageLimiter::handleMessageLimits ( const std::string tag,
const int64_t  messageMask 
)
inline

If (tag count == tag limit + 1) for the passed tag, respond JustOverTagLimit. If (tag count > tag limit + 1), respond OverTagLimit. If a tag is empty, there is no tag message limit or for that tag (tag count <= tag limit), consider the category limits: If (category count == category limit + 1) for the passed messageMask, respond JustOverCategoryLimit. If (category count > category limit + 1), respond OverCategoryLimit. If (category count <= category limit), or there is no limit for that category, respond PrintMessage.

References count, NoLimit, and PrintMessage.

◆ tagMessageLimit()

int Opm::MessageLimiter::tagMessageLimit ( ) const
inline

The tag message limit (same for all tags).


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