BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
BALL::LogStreamBuf Class Reference

#include <BALL/COMMON/logStream.h>

Inheritance diagram for BALL::LogStreamBuf:

Classes

struct  LoglineStruct
 
struct  StreamStruct
 

Public Member Functions

Constructors and Destructors
 LogStreamBuf ()
 
virtual ~LogStreamBuf ()
 
Debugging and Diagnostics
virtual void dump (std::ostream &s)
 
Stream methods
virtual int sync ()
 
int sync (bool force_flush)
 
virtual int overflow (int c=-1)
 

Static Public Attributes

Constants
static const int MAX_LEVEL
 
static const int MIN_LEVEL
 
static const Time MAX_TIME
 

Protected Types

typedef struct LoglineStruct Logline
 

Protected Member Functions

string expandPrefix_ (const string &prefix, int level, Time time) const
 

Protected Attributes

char * pbuf_
 
vector< Loglineloglines_
 
int level_
 
int tmp_level_
 
list< StreamStructstream_list_
 
string incomplete_line_
 

Friends

class LogStream
 

Detailed Description

Stream buffer used by LogStream. This class implements the low level behaviour of LogStream . It takes care of the buffers and stores the lines written into the LogStream object. It also contains a list of streams that are associated with the LogStream object. This list contains pointers to the streams and their minimum and maximum log level. Each line entered in the LogStream is marked with its time (in fact, the time sync was called) and its loglevel. The loglevel is determined by either the current loglevel (as set by LogStream::setLevel or a temporary level (as set by LogStream::level for a single line only). For each line stored, the list of associated streams is checked whether the loglevel falls into the range declared by the stream's minimum and maximum level. If this condition is met, the logline (with its prefix, see LogStream::setPrefix ) is also copied to the associated stream and this stream is flushed, too.

Definition at line 95 of file logStream.h.

Member Typedef Documentation

typedef struct LoglineStruct BALL::LogStreamBuf::Logline
protected

Definition at line 204 of file logStream.h.

Constructor & Destructor Documentation

BALL::LogStreamBuf::LogStreamBuf ( )

Default constructor. Create a new LogStreamBuf object.

virtual BALL::LogStreamBuf::~LogStreamBuf ( )
virtual

Destructor. Destruct the buffer and free all stored messages strings.

Member Function Documentation

virtual void BALL::LogStreamBuf::dump ( std::ostream &  s)
virtual

Dump method. Dumps the contents of the whole message buffer including time and log level.

string BALL::LogStreamBuf::expandPrefix_ ( const string &  prefix,
int  level,
Time  time 
) const
protected
virtual int BALL::LogStreamBuf::overflow ( int  c = -1)
virtual

Overflow method. This method calls sync and streambuf::overflow(c) to prevent a buffer overflow.

virtual int BALL::LogStreamBuf::sync ( )
virtual

Sync method. This method is called as soon as the ostream is flushed (especially this method is called by flush or endl). It transfers the contents of the streambufs putbuffer into a logline if a newline or linefeed character is found in the buffer ("\n" or "\r" resp.). The line is then removed from the putbuffer. Incomplete lines (not terminated by "\n" / "\r" are stored in incomplete_line_.

int BALL::LogStreamBuf::sync ( bool  force_flush)

Friends And Related Function Documentation

friend class LogStream
friend

Definition at line 99 of file logStream.h.

Member Data Documentation

string BALL::LogStreamBuf::incomplete_line_
protected

Definition at line 220 of file logStream.h.

int BALL::LogStreamBuf::level_
protected

Definition at line 214 of file logStream.h.

vector<Logline> BALL::LogStreamBuf::loglines_
protected

Definition at line 212 of file logStream.h.

const int BALL::LogStreamBuf::MAX_LEVEL
static

Definition at line 106 of file logStream.h.

const Time BALL::LogStreamBuf::MAX_TIME
static

Definition at line 108 of file logStream.h.

const int BALL::LogStreamBuf::MIN_LEVEL
static

Definition at line 107 of file logStream.h.

char* BALL::LogStreamBuf::pbuf_
protected

Definition at line 210 of file logStream.h.

list<StreamStruct> BALL::LogStreamBuf::stream_list_
protected

Definition at line 218 of file logStream.h.

int BALL::LogStreamBuf::tmp_level_
protected

Definition at line 216 of file logStream.h.