The Gaudi Framework  v36r1 (3e2fb5a8)
Message Class Referencefinal

#include <GaudiKernel/Message.h>

Collaboration diagram for Message:

Public Member Functions

 Message ()=default
 Default constructor. More...
 
 Message (const char *src, int type, const char *msg)
 Constructor. More...
 
 Message (std::string src, int type, std::string msg)
 Constructor. More...
 
 ~Message ()=default
 Default destructor. More...
 
const std::stringgetMessage () const
 Get the message string. More...
 
void setMessage (std::string msg)
 Set the message string. More...
 
int getType () const
 Get the message type. More...
 
void setType (int msg_type)
 Set the message type. More...
 
const std::stringgetSource () const
 Get the message source. More...
 
void setSource (std::string_view src)
 Set the message source. More...
 
const std::stringgetFormat () const
 Get the format string. More...
 
void setFormat (std::string msg) const
 Set the format string. More...
 
const std::stringgetTimeFormat () const
 Get the time format string. More...
 
void setTimeFormat (std::string timeFormat) const
 Set the time format string. More...
 

Static Public Member Functions

static const std::string getDefaultFormat ()
 Get the default format string. More...
 
static const std::string getDefaultTimeFormat ()
 Get the default time format string. More...
 

Private Member Functions

void invalidFormat () const
 Called when an invalid format string is encountered. More...
 
void makeFormattedMsg (const std::string &format) const
 Format the message. More...
 
void decodeFormat (const std::string &format) const
 Decode format. More...
 
void sizeField (const std::string &text, bool middle=false) const
 Truncate or pad the output string to the field width. If middle is true, cut the central part, otherwise the end. More...
 
void setWidth (const std::string &formatArg) const
 Set the width of a stream. More...
 

Private Attributes

std::string m_message
 The message text. More...
 
std::string m_source {"UNKNOWN"}
 The message source. More...
 
int m_type {0}
 The message type/level. More...
 
std::string m_format {DEFAULT_FORMAT}
 The format string. More...
 
std::string m_time_format {DEFAULT_TIME_FORMAT}
 Time format string. More...
 
std::string m_formatted_msg
 Formatted message. More...
 
char m_fill {' '}
 Current fill character. More...
 
int m_width {0}
 Current field width. More...
 
bool m_left {true}
 The message alignment. More...
 
Event identifiers
EventContext::ContextID_t m_ecSlot {Gaudi::Hive::currentContext().slot()}
 Event slot. More...
 
EventContext::ContextEvt_t m_ecEvt {Gaudi::Hive::currentContext().evt()}
 Event number. More...
 
EventIDBase m_ecEvtId {Gaudi::Hive::currentContext().eventID()}
 Full event ID. More...
 
pthread_t m_ecThrd {pthread_self()}
 Thread ID. More...
 

Static Private Attributes

Formatting characters
static const char FORMAT_PREFIX = '%'
 The character used to prefix formatting commands. More...
 
static const char JUSTIFY_LEFT = 'L'
 The character used to indicate start of left text justification. More...
 
static const char JUSTIFY_RIGHT = 'R'
 The character used to indicate start of right text justification. More...
 
static const char MESSAGE = 'M'
 The character used to indicate that the message should be printed. More...
 
static const char TYPE = 'T'
 The character used to indicate that the message type should be printed. More...
 
static const char TIME = 't'
 The character used to indicate that the message timestamp should be printed. More...
 
static const char UTIME = 'u'
 The character used to indicate that the message timestamp should be printed in UTC time. More...
 
static const char SOURCE = 'S'
 The character used to indicate that the message source should be printed. More...
 
static const char COMP = 'C'
 The character used to indicate that the message source should be printed, focus on the component. More...
 
static const char SLOT = 's'
 The character used to indicate that the slot number should be printed. More...
 
static const char EVTNUM = 'e'
 The character used to indicate that the event number should be printed. More...
 
static const char THREAD = 'X'
 The character used to indicate that the thread ID should be printed. More...
 
static const char EVENTID = 'E'
 The character used to indicate that the full event ID should be printed. More...
 
static const char FILL = 'F'
 The character used to indicate that the previous character is used to pad fields if the text is not long enough. More...
 
static const char WIDTH = 'W'
 The character used to indicate that the previous decimal characters should be taken as the field width. More...
 
static constexpr const char * DEFAULT_FORMAT = "% F%18W%S%7W%R%T %0W%M"
 The default message format. More...
 
static constexpr const char * DEFAULT_TIME_FORMAT = "%Y-%m-%d %H:%M:%S,%f"
 The default time format (accepts strftime formatters plus %f for milliseconds). More...
 

Friends

bool operator< (const Message &lhs, const Message &rhs)
 Needed to build maps. More...
 
std::ostreamoperator<< (std::ostream &stream, const Message &msg)
 Insert the message into a stream. More...
 
bool operator== (const Message &a, const Message &b)
 Insert the message into a stream. More...
 

Detailed Description

The Message class. This class is used to contain messages which can then be formatted and sent to a message service

Author
Iain Last

Definition at line 27 of file Message.h.

Constructor & Destructor Documentation

◆ Message() [1/3]

Message::Message ( )
default

Default constructor.

◆ Message() [2/3]

Message::Message ( const char *  src,
int  type,
const char *  msg 
)

Constructor.

Definition at line 39 of file Message.cpp.

39 : m_message( msg ), m_source( src ), m_type( type ) {}

◆ Message() [3/3]

Message::Message ( std::string  src,
int  type,
std::string  msg 
)

Constructor.

Definition at line 47 of file Message.cpp.

48  : m_message( std::move( msg ) ), m_source( std::move( src ) ), m_type( type ) {}

◆ ~Message()

Message::~Message ( )
default

Default destructor.

Member Function Documentation

◆ decodeFormat()

void Message::decodeFormat ( const std::string format) const
private

Decode format.

Definition at line 231 of file Message.cpp.

231  {
232  if ( !format.empty() ) {
233  const char FORMAT_TYPE = format[format.length() - 1];
234  const std::string FORMAT_PARAM = format.substr( 0, format.length() - 1 );
235 
236  // Now test the format.
238  switch ( FORMAT_TYPE ) {
239  case FILL:
240  if ( FORMAT_PARAM.length() == 1 ) {
241  m_fill = FORMAT_PARAM[0];
242  } else
243  invalidFormat();
244  break;
245 
246  case TIME: {
247  sizeField( formattedTime( m_time_format ) );
248  } break;
249 
250  case UTIME: {
251  sizeField( formattedTime( m_time_format, true ) );
252  } break;
253 
254  case THREAD: {
255  std::ostringstream ost;
256  // ost << "0x" << std::hex << pthread_self();
257  ost << "0x" << std::hex << m_ecThrd;
258  const std::string& thrStr( ost.str() );
259  sizeField( thrStr );
260  } break;
261 
262  case SLOT: {
263  std::ostringstream ost;
265  sizeField( ost.str() );
266  } break;
267 
268  case EVTNUM: {
269  std::ostringstream ost;
271  sizeField( ost.str() );
272  } break;
273 
274  case EVENTID: {
275  std::ostringstream ost;
276  if ( m_ecEvtId.isValid() ) { ost << m_ecEvtId; }
277  sizeField( ost.str() );
278  } break;
279 
280  case MESSAGE:
281  sizeField( m_message );
282  break;
283 
284  case SOURCE:
285  sizeField( m_source );
286  break;
287 
288  case COMP:
289  sizeField( m_source, true );
290  break;
291 
292  case TYPE:
293  switch ( m_type ) {
294 #define SET( x ) \
295  case x: \
296  level = #x; \
297  break
298  SET( NIL );
299  SET( VERBOSE );
300  SET( DEBUG );
301  SET( INFO );
302  SET( WARNING );
303  SET( ERROR );
304  SET( FATAL );
305  case ALWAYS:
306  level = "SUCCESS";
307  break;
308  default:
309  level = "UNKNOWN";
310  break;
311 #undef SET
312  }
313  sizeField( level );
314  break;
315 
316  case FORMAT_PREFIX:
318  break;
319  case JUSTIFY_RIGHT:
320  m_left = false;
321  break;
322  case JUSTIFY_LEFT:
323  m_left = true;
324  break;
325  case WIDTH:
326  setWidth( FORMAT_PARAM );
327  break;
328  default:
329  invalidFormat();
330  break;
331  }
332  } else
333  invalidFormat();
334 }

◆ getDefaultFormat()

const std::string Message::getDefaultFormat ( )
static

Get the default format string.

Definition at line 144 of file Message.cpp.

144 { return DEFAULT_FORMAT; }

◆ getDefaultTimeFormat()

const std::string Message::getDefaultTimeFormat ( )
static

Get the default time format string.

Definition at line 175 of file Message.cpp.

175 { return DEFAULT_TIME_FORMAT; }

◆ getFormat()

const std::string & Message::getFormat ( ) const

Get the format string.

Definition at line 136 of file Message.cpp.

136 { return m_format; }

◆ getMessage()

const std::string & Message::getMessage ( ) const

Get the message string.

Definition at line 56 of file Message.cpp.

56 { return m_message; }

◆ getSource()

const std::string & Message::getSource ( ) const

Get the message source.

Definition at line 88 of file Message.cpp.

88 { return m_source; }

◆ getTimeFormat()

const std::string & Message::getTimeFormat ( ) const

Get the time format string.

Definition at line 167 of file Message.cpp.

167 { return m_time_format; }

◆ getType()

int Message::getType ( ) const

Get the message type.

Definition at line 72 of file Message.cpp.

72 { return m_type; }

◆ invalidFormat()

void Message::invalidFormat ( ) const
private

Called when an invalid format string is encountered.

Definition at line 343 of file Message.cpp.

◆ makeFormattedMsg()

void Message::makeFormattedMsg ( const std::string format) const
private

Format the message.

Definition at line 194 of file Message.cpp.

194  {
196  auto i = format.begin();
197  while ( i != format.end() ) {
198 
199  // Output format string until format statement found.
200  while ( i != format.end() && *i != FORMAT_PREFIX ) m_formatted_msg += *i++;
201 
202  // Test for end of format string.
203  if ( i == format.end() ) break;
204  i++;
205 
206  // Find type of formatting.
207  std::string this_format;
208  while ( i != format.end() && *i != FORMAT_PREFIX && *i != MESSAGE && *i != TYPE && *i != SOURCE && *i != COMP &&
209  *i != FILL && *i != WIDTH && *i != TIME && *i != UTIME && *i != SLOT && *i != EVTNUM && *i != THREAD &&
210  *i != EVENTID && *i != JUSTIFY_LEFT && *i != JUSTIFY_RIGHT ) {
211  this_format += *i++;
212  }
213 
214  // Reached end of string with improper format.
215  if ( i == format.end() ) {
216  invalidFormat();
217  break;
218  }
219 
220  this_format += *i++;
221  decodeFormat( this_format );
222  }
223 }

◆ setFormat()

void Message::setFormat ( std::string  msg) const

Set the format string.

Definition at line 153 of file Message.cpp.

153  {
154  if ( LIKELY( !format.empty() ) ) {
156  } else {
158  }
159 }

◆ setMessage()

void Message::setMessage ( std::string  msg)

Set the message string.

Definition at line 64 of file Message.cpp.

64 { m_message = std::move( msg ); }

◆ setSource()

void Message::setSource ( std::string_view  src)

Set the message source.

Definition at line 96 of file Message.cpp.

96 { m_source = src; }

◆ setTimeFormat()

void Message::setTimeFormat ( std::string  timeFormat) const

Set the time format string.

Definition at line 184 of file Message.cpp.

184  {
185  m_time_format = ( timeFormat.empty() ? DEFAULT_TIME_FORMAT : std::move( timeFormat ) );
186 }

◆ setType()

void Message::setType ( int  msg_type)

Set the message type.

Definition at line 80 of file Message.cpp.

80 { m_type = msg_type; }

◆ setWidth()

void Message::setWidth ( const std::string formatArg) const
private

Set the width of a stream.

Definition at line 362 of file Message.cpp.

362  {
363  // Convert string to int, if string contains digits only...
364  if ( all_digits( formatArg ) )
365  m_width = std::stoi( formatArg );
366  else
367  invalidFormat();
368 }

◆ sizeField()

void Message::sizeField ( const std::string text,
bool  middle = false 
) const
private

Truncate or pad the output string to the field width. If middle is true, cut the central part, otherwise the end.

Definition at line 377 of file Message.cpp.

377  {
378  std::string newText;
379  if ( m_width == 0 || m_width == static_cast<int>( text.length() ) ) {
380  newText = text;
381  } else {
382  const size_t width = static_cast<size_t>( m_width );
383  // Truncate the text if it is too long.
384  if ( width < text.length() ) {
385  if ( middle && width > 4 ) { // truncate text in the middle
386  size_t iTrunc;
387  // If the text is a component-name-chain, try showing the last component
388  const size_t iDot = text.rfind( '.' );
389  if ( iDot != std::string::npos && width > text.length() - iDot + 3 ) {
390  iTrunc = iDot + 1;
391  } else {
392  // No dot or text after dot too long
393  iTrunc = text.length() - width / 2;
394  }
395  const size_t taillength = text.length() - iTrunc;
396  const size_t frontlength = width - taillength - 3;
397  newText.reserve( width );
398  newText.append( text, 0, frontlength );
399  newText.append( 3, '.' );
400  newText.append( text, iTrunc );
401  } // else if middle
402  else { // truncate text at the end
403  newText = text.substr( 0, m_width );
404  for ( int i = 0, j = newText.length() - 1; i < 3 && j >= 0; ++i, --j ) newText[j] = '.';
405  }
406  }
407  // Pad the text.
408  else {
409  newText = std::string( m_width, m_fill );
410  if ( m_left )
411  newText.replace( newText.begin(), newText.begin() + text.length(), text.begin(), text.end() );
412  else
413  newText.replace( newText.end() - text.length(), newText.end(), text.begin(), text.end() );
414  }
415  }
416 
417  m_formatted_msg += newText;
418 }

Friends And Related Function Documentation

◆ operator<

bool operator< ( const Message lhs,
const Message rhs 
)
friend

Needed to build maps.

Definition at line 116 of file Message.cpp.

116  {
117  return lhs.m_type < rhs.m_type || lhs.m_source < rhs.m_source || lhs.m_message < rhs.m_message;
118 }

◆ operator<<

std::ostream& operator<< ( std::ostream stream,
const Message msg 
)
friend

Insert the message into a stream.

Definition at line 104 of file Message.cpp.

104  {
105  msg.makeFormattedMsg( msg.m_format );
106  stream << msg.m_formatted_msg;
107  return stream;
108 }

◆ operator==

bool operator== ( const Message a,
const Message b 
)
friend

Insert the message into a stream.

Definition at line 126 of file Message.cpp.

126  {
127  return a.m_source == b.m_source && a.m_type == b.m_type && a.m_message == b.m_message;
128 }

Member Data Documentation

◆ COMP

const char Message::COMP = 'C'
staticprivate

The character used to indicate that the message source should be printed, focus on the component.

Definition at line 147 of file Message.h.

◆ DEFAULT_FORMAT

constexpr const char* Message::DEFAULT_FORMAT = "% F%18W%S%7W%R%T %0W%M"
staticconstexprprivate

The default message format.

Definition at line 169 of file Message.h.

◆ DEFAULT_TIME_FORMAT

constexpr const char* Message::DEFAULT_TIME_FORMAT = "%Y-%m-%d %H:%M:%S,%f"
staticconstexprprivate

The default time format (accepts strftime formatters plus %f for milliseconds).

Definition at line 172 of file Message.h.

◆ EVENTID

const char Message::EVENTID = 'E'
staticprivate

The character used to indicate that the full event ID should be printed.

Definition at line 159 of file Message.h.

◆ EVTNUM

const char Message::EVTNUM = 'e'
staticprivate

The character used to indicate that the event number should be printed.

Definition at line 153 of file Message.h.

◆ FILL

const char Message::FILL = 'F'
staticprivate

The character used to indicate that the previous character is used to pad fields if the text is not long enough.

Definition at line 162 of file Message.h.

◆ FORMAT_PREFIX

const char Message::FORMAT_PREFIX = '%'
staticprivate

The character used to prefix formatting commands.

Definition at line 123 of file Message.h.

◆ JUSTIFY_LEFT

const char Message::JUSTIFY_LEFT = 'L'
staticprivate

The character used to indicate start of left text justification.

Definition at line 126 of file Message.h.

◆ JUSTIFY_RIGHT

const char Message::JUSTIFY_RIGHT = 'R'
staticprivate

The character used to indicate start of right text justification.

Definition at line 129 of file Message.h.

◆ m_ecEvt

EventContext::ContextEvt_t Message::m_ecEvt {Gaudi::Hive::currentContext().evt()}
private

Event number.

Definition at line 115 of file Message.h.

◆ m_ecEvtId

EventIDBase Message::m_ecEvtId {Gaudi::Hive::currentContext().eventID()}
private

Full event ID.

Definition at line 116 of file Message.h.

◆ m_ecSlot

EventContext::ContextID_t Message::m_ecSlot {Gaudi::Hive::currentContext().slot()}
private

Event slot.

Definition at line 114 of file Message.h.

◆ m_ecThrd

pthread_t Message::m_ecThrd {pthread_self()}
private

Thread ID.

Definition at line 117 of file Message.h.

◆ m_fill

char Message::m_fill {' '}
mutableprivate

Current fill character.

Definition at line 108 of file Message.h.

◆ m_format

std::string Message::m_format {DEFAULT_FORMAT}
mutableprivate

The format string.

Definition at line 105 of file Message.h.

◆ m_formatted_msg

std::string Message::m_formatted_msg
mutableprivate

Formatted message.

Definition at line 107 of file Message.h.

◆ m_left

bool Message::m_left {true}
mutableprivate

The message alignment.

Definition at line 110 of file Message.h.

◆ m_message

std::string Message::m_message
private

The message text.

Definition at line 102 of file Message.h.

◆ m_source

std::string Message::m_source {"UNKNOWN"}
private

The message source.

Definition at line 103 of file Message.h.

◆ m_time_format

std::string Message::m_time_format {DEFAULT_TIME_FORMAT}
mutableprivate

Time format string.

Definition at line 106 of file Message.h.

◆ m_type

int Message::m_type {0}
private

The message type/level.

Definition at line 104 of file Message.h.

◆ m_width

int Message::m_width {0}
mutableprivate

Current field width.

Definition at line 109 of file Message.h.

◆ MESSAGE

const char Message::MESSAGE = 'M'
staticprivate

The character used to indicate that the message should be printed.

Definition at line 132 of file Message.h.

◆ SLOT

const char Message::SLOT = 's'
staticprivate

The character used to indicate that the slot number should be printed.

Definition at line 150 of file Message.h.

◆ SOURCE

const char Message::SOURCE = 'S'
staticprivate

The character used to indicate that the message source should be printed.

Definition at line 144 of file Message.h.

◆ THREAD

const char Message::THREAD = 'X'
staticprivate

The character used to indicate that the thread ID should be printed.

Definition at line 156 of file Message.h.

◆ TIME

const char Message::TIME = 't'
staticprivate

The character used to indicate that the message timestamp should be printed.

Definition at line 138 of file Message.h.

◆ TYPE

const char Message::TYPE = 'T'
staticprivate

The character used to indicate that the message type should be printed.

Definition at line 135 of file Message.h.

◆ UTIME

const char Message::UTIME = 'u'
staticprivate

The character used to indicate that the message timestamp should be printed in UTC time.

Definition at line 141 of file Message.h.

◆ WIDTH

const char Message::WIDTH = 'W'
staticprivate

The character used to indicate that the previous decimal characters should be taken as the field width.

Definition at line 165 of file Message.h.


The documentation for this class was generated from the following files:
Message::FILL
static const char FILL
The character used to indicate that the previous character is used to pad fields if the text is not l...
Definition: Message.h:162
Message::m_ecEvt
EventContext::ContextEvt_t m_ecEvt
Event number.
Definition: Message.h:115
Message::DEFAULT_FORMAT
static constexpr const char * DEFAULT_FORMAT
The default message format.
Definition: Message.h:169
Message::FORMAT_PREFIX
static const char FORMAT_PREFIX
The character used to prefix formatting commands.
Definition: Message.h:123
Write.stream
stream
Definition: Write.py:31
std::string
STL class.
Message::m_format
std::string m_format
The format string.
Definition: Message.h:105
Message::TYPE
static const char TYPE
The character used to indicate that the message type should be printed.
Definition: Message.h:135
Message::m_fill
char m_fill
Current fill character.
Definition: Message.h:108
std::move
T move(T... args)
MSG::INFO
@ INFO
Definition: IMessageSvc.h:25
Message::SOURCE
static const char SOURCE
The character used to indicate that the message source should be printed.
Definition: Message.h:144
std::string::reserve
T reserve(T... args)
SuperAlgDynamicGraph.DEBUG
DEBUG
Definition: SuperAlgDynamicGraph.py:67
Message::m_ecThrd
pthread_t m_ecThrd
Thread ID.
Definition: Message.h:117
std::string::length
T length(T... args)
Message::sizeField
void sizeField(const std::string &text, bool middle=false) const
Truncate or pad the output string to the field width. If middle is true, cut the central part,...
Definition: Message.cpp:377
Message::WIDTH
static const char WIDTH
The character used to indicate that the previous decimal characters should be taken as the field widt...
Definition: Message.h:165
GaudiMP.FdsRegistry.msg
msg
Definition: FdsRegistry.py:18
Message::DEFAULT_TIME_FORMAT
static constexpr const char * DEFAULT_TIME_FORMAT
The default time format (accepts strftime formatters plus %f for milliseconds).
Definition: Message.h:172
EventContext::INVALID_CONTEXT_ID
static constexpr ContextID_t INVALID_CONTEXT_ID
Definition: EventContext.h:39
MSG::WARNING
@ WARNING
Definition: IMessageSvc.h:25
Message::EVENTID
static const char EVENTID
The character used to indicate that the full event ID should be printed.
Definition: Message.h:159
Message::EVTNUM
static const char EVTNUM
The character used to indicate that the event number should be printed.
Definition: Message.h:153
Message::m_left
bool m_left
The message alignment.
Definition: Message.h:110
std::string::clear
T clear(T... args)
std::string::replace
T replace(T... args)
std::hex
T hex(T... args)
Message::m_width
int m_width
Current field width.
Definition: Message.h:109
EventIDBase::isValid
bool isValid() const
Definition: EventIDBase.h:157
Message::m_type
int m_type
The message type/level.
Definition: Message.h:104
std::stoi
T stoi(T... args)
Message::UTIME
static const char UTIME
The character used to indicate that the message timestamp should be printed in UTC time.
Definition: Message.h:141
Message::m_ecSlot
EventContext::ContextID_t m_ecSlot
Event slot.
Definition: Message.h:114
LIKELY
#define LIKELY(x)
Definition: Kernel.h:105
EventContext::INVALID_CONTEXT_EVT
static constexpr ContextEvt_t INVALID_CONTEXT_EVT
Definition: EventContext.h:40
Message::invalidFormat
void invalidFormat() const
Called when an invalid format string is encountered.
Definition: Message.cpp:343
format
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
Message::m_message
std::string m_message
The message text.
Definition: Message.h:102
Message::TIME
static const char TIME
The character used to indicate that the message timestamp should be printed.
Definition: Message.h:138
gaudirun.level
level
Definition: gaudirun.py:346
MSG::FATAL
@ FATAL
Definition: IMessageSvc.h:25
std::string::append
T append(T... args)
Message::JUSTIFY_LEFT
static const char JUSTIFY_LEFT
The character used to indicate start of left text justification.
Definition: Message.h:126
std::string::substr
T substr(T... args)
std::ostringstream
STL class.
Message::COMP
static const char COMP
The character used to indicate that the message source should be printed, focus on the component.
Definition: Message.h:147
gaudirun.type
type
Definition: gaudirun.py:154
MSG::VERBOSE
@ VERBOSE
Definition: IMessageSvc.h:25
Message::m_source
std::string m_source
The message source.
Definition: Message.h:103
MSG::ALWAYS
@ ALWAYS
Definition: IMessageSvc.h:25
std::string::begin
T begin(T... args)
Message::MESSAGE
static const char MESSAGE
The character used to indicate that the message should be printed.
Definition: Message.h:132
MSG::NIL
@ NIL
Definition: IMessageSvc.h:25
MSG::ERROR
@ ERROR
Definition: IMessageSvc.h:25
Message::SLOT
static const char SLOT
The character used to indicate that the slot number should be printed.
Definition: Message.h:150
Message::THREAD
static const char THREAD
The character used to indicate that the thread ID should be printed.
Definition: Message.h:156
std::string::empty
T empty(T... args)
Message::m_ecEvtId
EventIDBase m_ecEvtId
Full event ID.
Definition: Message.h:116
Message::m_formatted_msg
std::string m_formatted_msg
Formatted message.
Definition: Message.h:107
Message::m_time_format
std::string m_time_format
Time format string.
Definition: Message.h:106
std::ostringstream::str
T str(T... args)
std::string::end
T end(T... args)
Message::decodeFormat
void decodeFormat(const std::string &format) const
Decode format.
Definition: Message.cpp:231
Message::makeFormattedMsg
void makeFormattedMsg(const std::string &format) const
Format the message.
Definition: Message.cpp:194
std::string::rfind
T rfind(T... args)
SET
#define SET(x)
Message::setWidth
void setWidth(const std::string &formatArg) const
Set the width of a stream.
Definition: Message.cpp:362
Message::JUSTIFY_RIGHT
static const char JUSTIFY_RIGHT
The character used to indicate start of right text justification.
Definition: Message.h:129