]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Set flags, width, precision directly on the underlying stream object.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 24 Apr 2013 15:53:38 +0000 (15:53 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Wed, 24 Apr 2013 15:53:38 +0000 (15:53 +0000)
git-svn-id: https://svn.dealii.org/trunk@29383 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/include/deal.II/base/logstream.h
deal.II/source/base/logstream.cc

index 574cc5309a952499ab1556e3133027689a257e66..98617b69a8342436fa931355f331ec4622723b0a 100644 (file)
@@ -531,27 +531,6 @@ private:
    */
   bool at_newline;
 
-  /**
-   * The flags used to modify how
-   * the stream returned by get_stream() is used.
-   */
-  std::ios_base::fmtflags stream_flags;
-
-  /**
-   * The minimum width of characters
-   * used to represent a number. Used by width() to
-   * change the stream return by get_stream()
-   */
-  std::streamsize stream_width;
-
-  /**
-   * The maximum width of characters
-   * used to represent a floating point number.
-   * Used by precision() to
-   * change the stream return by get_stream()
-   */
-  std::streamsize stream_precision;
-
   /**
    * Print head of line. This prints optional time information and the
    * contents of the prefix stack.
@@ -604,12 +583,8 @@ inline
 LogStream &
 LogStream::operator<< (const T &t)
 {
-  // save the state of the output stream
-  std::ostringstream &stream = get_stream();
-
-  // print to the internal stringstream, using the flags we have just set for
-  // the stream object:
-  stream << t;
+  // print to the internal stringstream
+  get_stream() << t;
 
   return *this;
 }
@@ -620,7 +595,6 @@ inline
 LogStream &
 LogStream::operator<< (const double t)
 {
-  // save the state of out stream
   std::ostringstream &stream = get_stream();
 
   // we have to make sure that we don't catch NaN's and +-Inf's with the
@@ -643,7 +617,6 @@ inline
 LogStream &
 LogStream::operator<< (const float t)
 {
-  // save the state of out stream
   std::ostringstream &stream = get_stream();
 
   // we have to make sure that we don't catch NaN's and +-Inf's with the
index 7594dc2750a4cf6b44e32db262f9b4fbb06079eb..588f1af187cc150c9a0128b5e9ce7e8f3599a933 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011, 2012 by the deal.II authors
+//    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011, 2012, 2013 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -57,10 +57,7 @@ LogStream::LogStream()
   float_threshold(0.),
   offset(0),
   old_cerr(0),
-  at_newline(true),
-  stream_flags(std::ios::showpoint | std::ios::left),
-  stream_width(std::cout.width()),
-  stream_precision(std::cout.precision())
+  at_newline(true)
 {
   get_prefixes().push("DEAL:");
 
@@ -134,10 +131,6 @@ LogStream::operator<< (std::ostream& (*p) (std::ostream &))
 {
 
   std::ostringstream &stream = get_stream();
-  // save the state of out stream
-  std::ios::fmtflags old_flags = stream.flags(stream_flags);
-  unsigned int old_precision = stream.precision (stream_precision);
-  unsigned int old_width = stream.width (stream_width);
 
   // Print to the internal stringstream:
   stream << p;
@@ -170,11 +163,6 @@ LogStream::operator<< (std::ostream& (*p) (std::ostream &))
       stream.str("");
     }
 
-  // reset output format
-  stream.flags (old_flags);
-  stream.precision(old_precision);
-  stream.width(old_width);
-
   return *this;
 }
 
@@ -260,33 +248,21 @@ void LogStream::pop ()
 std::ios::fmtflags
 LogStream::flags(const std::ios::fmtflags f)
 {
-  Threads::Mutex::ScopedLock lock(log_lock);
-
-  std::ios::fmtflags tmp = stream_flags;
-  stream_flags = f;
-  return tmp;
+  return get_stream().flags (f);
 }
 
 
 std::streamsize
 LogStream::precision (const std::streamsize prec)
 {
-  Threads::Mutex::ScopedLock lock(log_lock);
-
-  std::streamsize tmp = stream_precision;
-  stream_precision = prec;
-  return tmp;
+  return get_stream().precision (prec);
 }
 
 
 std::streamsize
 LogStream::width (const std::streamsize wide)
 {
-  Threads::Mutex::ScopedLock lock(log_lock);
-
-  std::streamsize tmp = stream_width;
-  stream_width = wide;
-  return tmp;
+  return get_stream().width (wide);
 }
 
 

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.