From 8ee13551b9ad938f94a658e08837946293a32976 Mon Sep 17 00:00:00 2001 From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08> Date: Thu, 29 Jul 2010 14:44:09 +0000 Subject: [PATCH] LogSink, fixes for Windows git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2612 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/base/src/log_sink.hh | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/base/src/log_sink.hh b/modules/base/src/log_sink.hh index b021f8f31..5710168ec 100644 --- a/modules/base/src/log_sink.hh +++ b/modules/base/src/log_sink.hh @@ -31,9 +31,9 @@ namespace ost { -namespace { +namespace impl{ - class DevNull: public std::streambuf { + class DLLEXPORT DevNull: public std::streambuf { protected: virtual int_type overflow(int_type c) {return c;} virtual std::streamsize xsputn(const char* s, std::streamsize num) {return num;} @@ -41,7 +41,7 @@ namespace { } // anon ns -class DLLEXPORT_OST_BASE LogSink { +class DLLEXPORT LogSink { public: LogSink(){}; virtual ~LogSink() { } @@ -50,18 +50,21 @@ public: typedef boost::shared_ptr<LogSink> LogSinkPtr; -class DLLEXPORT_OST_BASE NullLogSink : public LogSink { +class DLLEXPORT NullLogSink : public LogSink { public: - NullLogSink():null_(new DevNull()){} + NullLogSink():null_(new impl::DevNull()){} virtual void LogMessage(const String& message, int severity){null_ << message;} - + ~NullLogSink(){ + null_.flush(); + delete null_.rdbuf(); + } private: std::ostream null_; }; typedef boost::shared_ptr<NullLogSink> NullLogSinkPtr; -class DLLEXPORT_OST_BASE StdLogSink : public LogSink { +class DLLEXPORT StdLogSink : public LogSink { public: StdLogSink(std::ostream& stream):stream_(stream){} virtual void LogMessage(const String& message, int severity){ @@ -72,7 +75,7 @@ private: std::ostream& stream_; }; -class DLLEXPORT_OST_BASE FileLogSink : public LogSink { +class DLLEXPORT FileLogSink : public LogSink { public: FileLogSink(const String& file_name):stream_(file_name.c_str(), std::ios::out){} virtual void LogMessage(const String& message, int severity){ @@ -83,7 +86,7 @@ public: } ~FileLogSink(){ - stream_.close(); + stream_.flush(); } private: std::ofstream stream_; -- GitLab