MsgStream.h File Reference
#include "GaudiKernel/IMessageSvc.h"
#include "GaudiKernel/SerializeSTL.h"
#include <cstdio>
#include <string>
#include <iomanip>
#include <vector>
#include <sstream>
Include dependency graph for MsgStream.h:

Go to the source code of this file.

Classes

class  MsgStream
 Definition of the MsgStream class used to transmit messages. More...
 
class  MsgStream
 Definition of the MsgStream class used to transmit messages. More...
 

Functions

MsgStreamendmsg (MsgStream &s)
 MsgStream Modifier: endmsg. Calls the output method of the MsgStream. More...
 
GAUDI_API std::string format (const char *,...)
 MsgStream format utility "a la sprintf(...)". More...
 
template<class _Tm >
MsgStreamoperator<< (MsgStream &s, const std::smanip< _Tm > &manip)
 I/O Manipulator for setfill. More...
 
MsgStreamoperator<< (MsgStream &s, const char *arg)
 Specialization to avoid the generation of implementations for char[]. More...
 
template<typename T >
MsgStreamoperator<< (MsgStream &lhs, const T &arg)
 General templated stream operator. More...
 

Function Documentation

MsgStream & endmsg ( MsgStream s)
inline

MsgStream Modifier: endmsg. Calls the output method of the MsgStream.

Definition at line 244 of file MsgStream.h.

244  {
245  return s.doOutput();
246 }
virtual GAUDI_API MsgStream & doOutput()
Output method.
Definition: MsgStream.cpp:72
GAUDI_API std::string format ( const char *  ,
  ... 
)

MsgStream format utility "a la sprintf(...)".

Definition at line 133 of file MsgStream.cpp.

134 {
135  const int buffsize = 2048;
136  static char buffer[buffsize];
137  va_list arguments;
138  va_start( arguments, fmt );
139  if( vsprintf(buffer, fmt, arguments) >= buffsize )
140  throw GaudiException("Insufficient buffer size (2048) when formatting message",
141  "MsgStream", 0);
142  return std::string(buffer);
143 }
Define general base for Gaudi exception.
template<class _Tm >
MsgStream & operator<< ( MsgStream s,
const std::smanip< _Tm > &  manip 
)
inline

I/O Manipulator for setfill.

Definition at line 332 of file MsgStream.h.

332  {
333  try {
334  // this may throw, and we cannot afford it if the stream is used in a catch block
335  if ( s.isActive() ) s.stream() << manip;
336  } catch (...) {}
337  return s;
338 }
std::ostringstream & stream()
Access string MsgStream.
Definition: MsgStream.h:98
bool isActive() const
Accessor: is MsgStream active.
Definition: MsgStream.h:128
string s
Definition: gaudirun.py:244
MsgStream & operator<< ( MsgStream s,
const char *  arg 
)
inline

Specialization to avoid the generation of implementations for char[].

See also
{bug #87340}

Definition at line 343 of file MsgStream.h.

343  {
344  try {
345  // this may throw, and we cannot afford it if the stream is used in a catch block
346  if ( s.isActive() ) s.stream() << arg;
347  } catch (...) {}
348  return s;
349 }
std::ostringstream & stream()
Access string MsgStream.
Definition: MsgStream.h:98
bool isActive() const
Accessor: is MsgStream active.
Definition: MsgStream.h:128
string s
Definition: gaudirun.py:244
template<typename T >
MsgStream & operator<< ( MsgStream lhs,
const T &  arg 
)

General templated stream operator.

Definition at line 353 of file MsgStream.h.

353  {
354  using namespace GaudiUtils;
355  if(lhs.isActive())
356  try {
357  // this may throw, and we cannot afford it if the stream is used in a catch block
358  lhs.stream() << arg;
359  }
360  catch (...) {}
361  return lhs;
362 }
std::ostringstream & stream()
Access string MsgStream.
Definition: MsgStream.h:98
bool isActive() const
Accessor: is MsgStream active.
Definition: MsgStream.h:128
Forward declarations for the functions in SerializeSTL.h.
Definition: GaudiHistoID.h:141