Update of /cvsroot/pclasses/pclasses2/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23571/src
Modified Files:
Trace.cpp
Log Message:
- Added tracing support
Index: Trace.cpp
===================================================================
RCS file: /cvsroot/pclasses/pclasses2/src/Trace.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- Trace.cpp 10 Jan 2005 02:48:38 -0000 1.1
+++ Trace.cpp 28 Apr 2005 10:11:36 -0000 1.2
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2004 by Christian Prochnow *
+ * Copyright (C) 2005 by Christian Prochnow, SecuLogiX GmbH *
* cp...@se... *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -17,3 +17,62 @@
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
+
+#include "pclasses/Trace.h"
+#include <stdio.h>
+#include <sstream>
+
+namespace P {
+
+TraceStream::TraceStream(TraceLog& log, const SourceInfo& si, const char* cl)
+: std::ostream(new std::stringbuf()), _log(log), _src(si), _class(cl)
+{
+}
+
+TraceStream::TraceStream(const TraceStream& strm)
+: std::ostream(new std::stringbuf()), _log(strm._log), _src(strm._src),
+ _class(strm._class)
+{
+}
+
+TraceStream::~TraceStream()
+{
+ std::stringbuf* sb = static_cast<std::stringbuf*>(rdbuf());
+ _log.output(_src, _class, sb->str());
+ delete sb;
+}
+
+std::ostream& TraceStream::operator()()
+{
+ return *this;
+}
+
+
+TraceLog TraceLog::_trace;
+
+TraceLog::TraceLog()
+{
+}
+
+TraceLog::~TraceLog()
+{
+}
+
+TraceStream TraceLog::stream(const SourceInfo& si, const char* cl)
+{
+ return TraceStream(*this, si, cl);
+}
+
+void TraceLog::output(const SourceInfo& si, const std::string& cl,
+ const std::string& msg)
+{
+ //std::cout << si.file() << ":" << si.line() << std::endl;
+ std::cout << cl << ": " << msg << std::endl;
+}
+
+TraceLog& TraceLog::instance()
+{
+ return _trace;
+}
+
+}
|