Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

Tools::LogWriter Class Reference

#include <LogWriter.h>

Inheritance diagram for Tools::LogWriter:

Inheritance graph
[legend]
Collaboration diagram for Tools::LogWriter:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 LogWriter (Stream *output)
 ~LogWriter (void)
virtual Objectnext (void)
virtual void nextPut (Object *object)
virtual void nextPut (const char object)
virtual void writeLog (LogVerbosityLevel level, Collection *collection)
virtual void writeLog (LogVerbosityLevel level, const char *collection)
virtual void logAll (void)
virtual void logErrors (void)
virtual void logWarnings (void)
virtual void logInfos (void)
virtual void logNone (void)
virtual void logTraffic (void)
virtual void logDebug (void)
virtual LogVerbosityLevel verbosity (void)
virtual void verbosity (LogVerbosityLevel level)
virtual void close (void)
virtual void commit (void)
virtual bool isBinary (void)
virtual void writeLevel (LogVerbosityLevel level)

Static Public Member Functions

static LogWriteron (String *filename)
static LogWriteron (Filename *filename)

Protected Member Functions

virtual SequenceableCollectioncontentSpeciesFor (long items)

Protected Attributes

LogVerbosityLevel _level
OS::Semaphoremutex

Constructor & Destructor Documentation

LogWriter::LogWriter Stream output  ) 
 

Definition at line 39 of file LogWriter.cc.

References _level, Tools::LogError, and mutex.

Referenced by on().

00040   : StreamDecorator(writeStream)
00041 {
00042     _level = LogError;
00043     mutex = Semaphore::forMutualExclusion();
00044 }

LogWriter::~LogWriter void   ) 
 

Definition at line 46 of file LogWriter.cc.

References close(), and mutex.

00047 {
00048         close();
00049     delete mutex;
00050 }


Member Function Documentation

void LogWriter::close void   )  [virtual]
 

Reimplemented from Core::StreamDecorator.

Definition at line 144 of file LogWriter.cc.

References Core::Stream::close(), commit(), mutex, Core::StreamDecorator::underlying_stream, and OS::Semaphore::wait().

Referenced by ~LogWriter().

00145 {
00146     mutex->wait();
00147     commit();
00148     underlying_stream->close();
00149 }

void LogWriter::commit void   )  [virtual]
 

Reimplemented from Core::StreamDecorator.

Definition at line 151 of file LogWriter.cc.

References Core::Stream::commit(), Core::StreamDecorator::flush(), mutex, OS::Semaphore::signal(), and Core::StreamDecorator::underlying_stream.

Referenced by close(), and writeLog().

00152 {
00153     flush();
00154     underlying_stream->commit();
00155     mutex->signal();
00156 }

SequenceableCollection * LogWriter::contentSpeciesFor long  items  )  [protected, virtual]
 

Reimplemented from Core::StreamDecorator.

Definition at line 177 of file LogWriter.cc.

00178 {
00179     return new String(items);
00180 }

bool LogWriter::isBinary void   )  [virtual]
 

Reimplemented from Core::Stream.

Definition at line 159 of file LogWriter.cc.

00160 {
00161     return false;
00162 }

void LogWriter::logAll void   )  [virtual]
 

Definition at line 98 of file LogWriter.cc.

References logTraffic().

00099 {
00100     logTraffic();
00101 }

void LogWriter::logDebug void   )  [virtual]
 

Definition at line 128 of file LogWriter.cc.

References Tools::LogDebug, and verbosity().

00129 {
00130     verbosity(LogDebug);
00131 }

void LogWriter::logErrors void   )  [virtual]
 

Definition at line 103 of file LogWriter.cc.

References Tools::LogError, and verbosity().

00104 {
00105     verbosity(LogError);
00106 }

void LogWriter::logInfos void   )  [virtual]
 

Definition at line 113 of file LogWriter.cc.

References Tools::LogInfo, and verbosity().

00114 {
00115     verbosity(LogInfo);
00116 }

void LogWriter::logNone void   )  [virtual]
 

Definition at line 118 of file LogWriter.cc.

References Tools::LogNone, and verbosity().

00119 {
00120     verbosity(LogNone);
00121 }

void LogWriter::logTraffic void   )  [virtual]
 

Definition at line 123 of file LogWriter.cc.

References Tools::LogTraffic, and verbosity().

Referenced by logAll().

00124 {
00125     verbosity(LogTraffic);
00126 }

void LogWriter::logWarnings void   )  [virtual]
 

Definition at line 108 of file LogWriter.cc.

References Tools::LogWarning, and verbosity().

00109 {
00110     verbosity(LogWarning);
00111 }

Object * LogWriter::next void   )  [virtual]
 

Reimplemented from Core::Stream.

Definition at line 64 of file LogWriter.cc.

References Core::Stream::next(), and Core::StreamDecorator::underlying_stream.

00065 {
00066     return underlying_stream->next();
00067 }

void LogWriter::nextPut const char  object  )  [virtual]
 

Reimplemented from Core::Stream.

Definition at line 74 of file LogWriter.cc.

References Core::Stream::nextPut(), and Core::StreamDecorator::underlying_stream.

00075 {
00076     underlying_stream->nextPut(object);
00077 }

void LogWriter::nextPut Object object  )  [virtual]
 

Reimplemented from Core::Stream.

Definition at line 69 of file LogWriter.cc.

References Core::Stream::nextPut(), and Core::StreamDecorator::underlying_stream.

00070 {
00071     underlying_stream->nextPut(object);
00072 }

LogWriter * LogWriter::on Filename filename  )  [static]
 

Definition at line 58 of file LogWriter.cc.

References LogWriter(), and Tools::Filename::withEncoding().

00059 {
00060     return new LogWriter(filename->withEncoding("default")->appendStream());
00061 }

LogWriter * LogWriter::on String filename  )  [static]
 

Definition at line 53 of file LogWriter.cc.

00054 {
00055     return LogWriter::on(new Filename(filename));
00056 }

void LogWriter::verbosity LogVerbosityLevel  level  )  [virtual]
 

Definition at line 138 of file LogWriter.cc.

References _level.

00139 {
00140     _level = level;
00141 }

LogVerbosityLevel LogWriter::verbosity void   )  [virtual]
 

Definition at line 133 of file LogWriter.cc.

References _level.

Referenced by logDebug(), logErrors(), logInfos(), logNone(), logTraffic(), and logWarnings().

00134 {
00135     return _level;
00136 }

void LogWriter::writeLevel LogVerbosityLevel  level  )  [virtual]
 

Definition at line 165 of file LogWriter.cc.

References Tools::LogDebug, Tools::LogError, Tools::LogInfo, Tools::LogNone, Tools::LogTraffic, Tools::LogWarning, and Core::Stream::nextPutAll().

Referenced by writeLog().

00166 {
00167     switch (level) {
00168     case LogNone    : nextPutAll("--"); break;
00169     case LogError   : nextPutAll("EE"); break;
00170     case LogWarning : nextPutAll("WW"); break;
00171     case LogInfo    : nextPutAll("II"); break;
00172     case LogTraffic : nextPutAll("=="); break;
00173     case LogDebug   : nextPutAll("DD"); break;
00174     }
00175 }

void LogWriter::writeLog LogVerbosityLevel  level,
const char *  collection
[virtual]
 

Definition at line 93 of file LogWriter.cc.

References writeLog().

00094 {
00095     writeLog(level, new String(collection));
00096 }

void LogWriter::writeLog LogVerbosityLevel  level,
Collection collection
[virtual]
 

Definition at line 79 of file LogWriter.cc.

References _level, commit(), Core::Stream::lf(), mutex, Core::Stream::nextPutAll(), Core::Stream::print(), OS::Semaphore::wait(), and writeLevel().

Referenced by writeLog().

00080 {
00081     if (level <= _level) {
00082         mutex->wait();
00083         print(Timestamp::now());
00084         nextPutAll(": (");
00085         writeLevel(level);
00086         nextPutAll(") ");
00087         nextPutAll(collection);
00088         lf();
00089         commit();
00090     }
00091 }


Member Data Documentation

LogVerbosityLevel Tools::LogWriter::_level [protected]
 

Definition at line 44 of file LogWriter.h.

Referenced by LogWriter(), verbosity(), and writeLog().

OS::Semaphore* Tools::LogWriter::mutex [protected]
 

Definition at line 45 of file LogWriter.h.

Referenced by close(), commit(), LogWriter(), writeLog(), and ~LogWriter().


The documentation for this class was generated from the following files:
Generated on Mon Nov 27 09:52:39 2006 for Smalltalk like C++ Class Library by  doxygen 1.4.2