|
Gaudi Framework, version v23r2 |
| Home | Generated: Thu Jun 28 2012 |
#include <GaudiKernel/Message.h>

Public Member Functions | |
| Message () | |
| Default constructor. | |
| Message (const char *src, int type, const char *msg) | |
| Constructor. | |
| Message (const std::string &src, int type, const std::string &msg) | |
| Constructor. | |
| ~Message () | |
| Default destructor. | |
| const std::string & | getMessage () const |
| Get the message string. | |
| void | setMessage (const std::string &msg) |
| Set the message string. | |
| int | getType () const |
| Get the message type. | |
| void | setType (int msg_type) |
| Set the message type. | |
| const std::string & | getSource () const |
| Get the message source. | |
| void | setSource (const std::string &src) |
| Set the message source. | |
| const std::string & | getFormat () const |
| Get the format string. | |
| void | setFormat (const std::string &msg) const |
| Set the format string. | |
| const std::string & | getTimeFormat () const |
| Get the time format string. | |
| void | setTimeFormat (const std::string &timeFormat) const |
| Set the time format string. | |
| bool | operator< (const Message &test) |
| Needed to build maps. | |
Static Public Member Functions | |
| static const std::string | getDefaultFormat () |
| Get the default format string. | |
| static const std::string | getDefaultTimeFormat () |
| Get the default time format string. | |
Protected Member Functions | |
| void | invalidFormat () const |
| Called when an invalid format string is encountered. | |
| void | makeFormattedMsg (const std::string &format) const |
| Format the message. | |
| void | decodeFormat (const std::string &format) const |
| Decode format. | |
| void | sizeField (const std::string &text) const |
| Truncate or pad the output string to the field width as necessary. | |
| void | setWidth (const std::string &formatArg) const |
| Set the width of a stream. | |
Protected Attributes | |
| std::string | m_message |
| The message. | |
| std::string | m_source |
| The source. | |
| std::string | m_format |
| The format string. | |
| std::string | m_time_format |
| Time format string. | |
| int | m_type |
| The type. | |
| std::string | m_formatted_msg |
| Formatted message. | |
| char | m_fill |
| The current fill character. | |
| int | m_width |
| The current field width. | |
| bool | m_left |
| Justification. | |
Static Protected Attributes | |
| static const char | FORMAT_PREFIX = '%' |
| The character used to prefix formatting commands. | |
| static const char | JUSTIFY_LEFT = 'L' |
| The character used to indicate start of left text justification. | |
| static const char | JUSTIFY_RIGHT = 'R' |
| The character used to indicate start of right text justification. | |
| static const char | MESSAGE = 'M' |
| The character used to indicate that the message should be printed. | |
| static const char | TYPE = 'T' |
| The character used to indicate that the message type should be printed. | |
| static const char | TIME = 't' |
| The character used to indicate that the message timestamp should be printed. | |
| static const char | UTIME = 'u' |
| The character used to indicate that the message timestamp should be printed in UTC time. | |
| static const char | SOURCE = 'S' |
| The character used to indicate that the message source should be printed. | |
| static const char | FILL = 'F' |
| The character used to indicate that the previous character is to be used for padding out fields if the text is not long enough. | |
| static const char | WIDTH = 'W' |
| The character used to indicate that the previous decimal characters should be taken as the field width. | |
| static const char * | DEFAULT_FORMAT = "% F%18W%S%7W%R%T %0W%M" |
| The default message format. | |
| static const char * | DEFAULT_TIME_FORMAT = "%Y-%m-%d %H:%M:%S,%f" |
| The default time format. | |
Friends | |
| std::ostream & | operator<< (std::ostream &stream, const Message &msg) |
| Insert the message into a stream. | |
| bool | operator== (const Message &a, const Message &b) |
| Insert the message into a stream. | |
The Message class.
This class is used to contain messages which can then be formatted and sent to a message service
Definition at line 15 of file Message.h.
| Message::Message | ( | ) |
Default constructor.
Definition at line 45 of file Message.cpp.
: m_message( "" ), m_source( "UNKNOWN" ), m_format( DEFAULT_FORMAT ), m_time_format(DEFAULT_TIME_FORMAT), m_type( NIL ), m_fill( ' ' ), m_width( 0 ), m_left( true ) { }
| Message::Message | ( | const char * | src, |
| int | type, | ||
| const char * | msg | ||
| ) |
Constructor.
Definition at line 58 of file Message.cpp.
: m_message( msg ), m_source( src ), m_format( DEFAULT_FORMAT ), m_time_format(DEFAULT_TIME_FORMAT), m_type( type ), m_fill( ' ' ), m_width( 0 ), m_left( true ) { }
| Message::Message | ( | const std::string & | src, |
| int | type, | ||
| const std::string & | msg | ||
| ) |
Constructor.
Definition at line 71 of file Message.cpp.
: m_message( msg ), m_source( src ), m_format( DEFAULT_FORMAT ), m_time_format(DEFAULT_TIME_FORMAT), m_type( type ), m_fill( ' ' ), m_width( 0 ), m_left( true ) { }
| void Message::decodeFormat | ( | const std::string & | format ) | const [protected] |
Decode format.
Definition at line 305 of file Message.cpp.
{
if ( ! format.empty() ) {
const char FORMAT_TYPE = format[ format.length() - 1 ];
const std::string FORMAT_PARAM = format.substr( 0, format.length() - 1 );
// Now test the format.
std::string level;
switch( FORMAT_TYPE ) {
case FILL:
if ( FORMAT_PARAM.length() == 1 ) {
m_fill = FORMAT_PARAM[0];
}
else
invalidFormat();
break;
case TIME:
{
const std::string& timeStr = formattedTime ( m_time_format ) ;
sizeField( timeStr );
}
break;
case UTIME:
{
const std::string& timeStr = formattedTime ( m_time_format, true ) ;
sizeField( timeStr );
}
break;
case MESSAGE:
sizeField( m_message );
break;
case SOURCE:
sizeField( m_source );
break;
case TYPE:
switch ( m_type ) {
#define SET(x) case x: level=#x; break
SET( NIL );
SET( VERBOSE );
SET( DEBUG );
SET( INFO );
SET( WARNING );
SET( ERROR );
SET( FATAL );
case ALWAYS: level="SUCCESS"; break;
default:
level = "UNKNOWN";
break;
#undef SET
}
sizeField( level );
break;
case FORMAT_PREFIX: m_formatted_msg += FORMAT_PREFIX; break;
case JUSTIFY_RIGHT: m_left = false; break;
case JUSTIFY_LEFT: m_left = true; break;
case WIDTH: setWidth( FORMAT_PARAM ); break;
default: invalidFormat(); break;
}
}
else
invalidFormat();
}
| const std::string Message::getDefaultFormat | ( | ) | [static] |
Get the default format string.
Definition at line 200 of file Message.cpp.
{
return DEFAULT_FORMAT;
}
| const std::string Message::getDefaultTimeFormat | ( | ) | [static] |
Get the default time format string.
Definition at line 238 of file Message.cpp.
{
return DEFAULT_TIME_FORMAT ;
}
| const std::string & Message::getFormat | ( | ) | const |
| const std::string & Message::getMessage | ( | ) | const |
| const std::string & Message::getSource | ( | ) | const |
| const std::string & Message::getTimeFormat | ( | ) | const |
| int Message::getType | ( | ) | const |
| void Message::invalidFormat | ( | ) | const [protected] |
Called when an invalid format string is encountered.
Definition at line 381 of file Message.cpp.
{
makeFormattedMsg( DEFAULT_FORMAT );
}
| void Message::makeFormattedMsg | ( | const std::string & | format ) | const [protected] |
Format the message.
Definition at line 265 of file Message.cpp.
{
m_formatted_msg = "";
std::string::const_iterator i = format.begin();
while( i != format.end() ) {
// Output format string until format statement found.
while( i != format.end() && *i != FORMAT_PREFIX )
m_formatted_msg += *i++;
// Test for end of format string.
if ( i == format.end() ) break;
i++;
// Find type of formatting.
std::string this_format = "";
while( i != format.end() && *i != FORMAT_PREFIX &&
*i != MESSAGE && *i != TYPE && *i != SOURCE &&
*i != FILL && *i != WIDTH && *i != TIME && *i != UTIME &&
*i != JUSTIFY_LEFT && *i != JUSTIFY_RIGHT ) {
this_format += *i++;
}
// Reached end of string with improper format.
if ( i == format.end() ) {
invalidFormat();
break;
}
this_format += *i++;
decodeFormat( this_format );
}
}
| bool Message::operator< | ( | const Message & | test ) |
Needed to build maps.
Definition at line 163 of file Message.cpp.
| void Message::setFormat | ( | const std::string & | msg ) | const |
Set the format string.
Definition at line 213 of file Message.cpp.
{
if ( format.empty() )
m_format = DEFAULT_FORMAT;
else
m_format = format;
}
| void Message::setMessage | ( | const std::string & | msg ) |
| void Message::setSource | ( | const std::string & | src ) |
| void Message::setTimeFormat | ( | const std::string & | timeFormat ) | const |
Set the time format string.
Definition at line 251 of file Message.cpp.
{
if ( timeFormat.empty() )
m_time_format = DEFAULT_TIME_FORMAT;
else
m_time_format = timeFormat;
}
| void Message::setType | ( | int | msg_type ) |
| void Message::setWidth | ( | const std::string & | formatArg ) | const [protected] |
Set the width of a stream.
Definition at line 393 of file Message.cpp.
{
// Check that the parameters are only digits.
bool only_digits = true;
for( std::string::const_iterator i = formatArg.begin();
i != formatArg.end(); i++ ) {
if ( ! isdigit( *i ) ) {
only_digits = false;
invalidFormat();
break;
}
}
// Convert string to int.
if ( only_digits ) {
#ifdef __GNUG__
m_width = atoi( formatArg.c_str() );
#else
m_width = atoi( formatArg.data() );
#endif
}
}
| void Message::sizeField | ( | const std::string & | text ) | const [protected] |
Truncate or pad the output string to the field width as necessary.
Definition at line 424 of file Message.cpp.
{
std::string newText;
if ( m_width == 0 || m_width == static_cast<int>( text.length() ) ) {
newText = text;
}
else {
// Truncate the text if it is too long.
if ( m_width < static_cast<int>( text.length() ) ) {
newText = text.substr( 0, m_width );
for ( int i = 0, j = newText.length()-1; i < 3 && j >= 0; i++, j-- )
newText[ j ] = '.';
}
// Pad the text.
else {
newText = std::string( m_width, m_fill );
if ( m_left )
newText.replace( newText.begin(), newText.begin() + text.length(),
text.begin(), text.end() );
else
newText.replace( newText.end() - text.length(), newText.end(),
text.begin(), text.end() );
}
}
m_formatted_msg += newText;
}
| std::ostream& operator<< | ( | std::ostream & | stream, |
| const Message & | msg | ||
| ) | [friend] |
Insert the message into a stream.
Definition at line 150 of file Message.cpp.
{
msg.makeFormattedMsg( msg.m_format );
stream << msg.m_formatted_msg;
return stream;
}
const char * Message::DEFAULT_FORMAT = "% F%18W%S%7W%R%T %0W%M" [static, protected] |
const char * Message::DEFAULT_TIME_FORMAT = "%Y-%m-%d %H:%M:%S,%f" [static, protected] |
const char Message::FILL = 'F' [static, protected] |
const char Message::FORMAT_PREFIX = '%' [static, protected] |
const char Message::JUSTIFY_LEFT = 'L' [static, protected] |
const char Message::JUSTIFY_RIGHT = 'R' [static, protected] |
char Message::m_fill [mutable, protected] |
std::string Message::m_format [mutable, protected] |
std::string Message::m_formatted_msg [mutable, protected] |
bool Message::m_left [mutable, protected] |
std::string Message::m_message [protected] |
std::string Message::m_source [protected] |
std::string Message::m_time_format [mutable, protected] |
int Message::m_type [protected] |
int Message::m_width [mutable, protected] |
const char Message::MESSAGE = 'M' [static, protected] |
const char Message::SOURCE = 'S' [static, protected] |
const char Message::TIME = 't' [static, protected] |
const char Message::TYPE = 'T' [static, protected] |
const char Message::UTIME = 'u' [static, protected] |
const char Message::WIDTH = 'W' [static, protected] |