From c573f43c7a6ec5d31075447eae319ef874a9ea24 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Klinkovsk=C3=BD?= <klinkjak@fjfi.cvut.cz>
Date: Sat, 17 Nov 2018 13:44:46 +0100
Subject: [PATCH] Moved stuff from Logger.cpp to Logger_impl.h

---
 src/TNL/CMakeLists.txt |  1 -
 src/TNL/Logger.cpp     | 57 -------------------------------
 src/TNL/Logger.h       | 12 +++----
 src/TNL/Logger_impl.h  | 77 ++++++++++++++++++++++++++++++++----------
 4 files changed, 66 insertions(+), 81 deletions(-)
 delete mode 100644 src/TNL/Logger.cpp

diff --git a/src/TNL/CMakeLists.txt b/src/TNL/CMakeLists.txt
index 4a4484eeaf..fdf140c50d 100644
--- a/src/TNL/CMakeLists.txt
+++ b/src/TNL/CMakeLists.txt
@@ -39,7 +39,6 @@ set( headers
 set( common_SOURCES
      FileName.cpp
      Object.cpp
-     Logger.cpp
      String.cpp
      Timer.cpp )
 
diff --git a/src/TNL/Logger.cpp b/src/TNL/Logger.cpp
deleted file mode 100644
index 988d4ed68e..0000000000
--- a/src/TNL/Logger.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/***************************************************************************
-                          Logger.cpp  -  description
-                             -------------------
-    begin                : 2007/08/22
-    copyright            : (C) 2007 by Tomas Oberhuber
-    email                : tomas.oberhuber@fjfi.cvut.cz
- ***************************************************************************/
-
-/* See Copyright Notice in tnl/Copyright */
-
-#include <iomanip>
-#include <TNL/Logger.h>
-#include <TNL/Devices/CudaDeviceInfo.h>
-#include <TNL/Devices/SystemInfo.h>
-
-namespace TNL {
-
-Logger :: Logger( int _width, std::ostream& _stream )
-: width( _width ),
-  stream( _stream )
-{
-}
-
-void Logger :: writeHeader( const String& title )
-{
-   int fill = stream. fill();
-   int titleLength = title. getLength();
-   stream << "+" << std::setfill( '-' ) << std::setw( width ) << "+" << std::endl;
-   stream << "|" << std::setfill( ' ' ) << std::setw( width ) << "|" << std::endl;
-   stream << "|" << std::setw( width / 2 + titleLength / 2 )
-    << title << std::setw( width / 2 - titleLength / 2  ) << "|" << std::endl;
-   stream << "|" << std::setfill( ' ' ) << std::setw( width ) << "|" << std::endl;
-   stream << "+" << std::setfill( '-' ) << std::setw( width ) << "+" << std::endl;
-   stream. fill( fill );
-}
-
-void Logger :: writeSeparator()
-{
-   int fill = stream. fill();
-   stream << "+" << std::setfill( '-' ) << std::setw( width ) << "+" << std::endl;
-   stream. fill( fill );
-}
-
-bool Logger :: writeSystemInformation( const Config::ParameterContainer& parameters )
-{
-   Devices::SystemInfo::writeDeviceInfo( *this );
-   if( parameters.getParameter< String >( "device" ) == "cuda" )
-      Devices::CudaDeviceInfo::writeDeviceInfo( *this );
-   return true;
-}
-
-void Logger :: writeCurrentTime( const char* label )
-{
-   writeParameter< String >( label, Devices::SystemInfo::getCurrentTime() );
-}
-
-} // namespace TNL
diff --git a/src/TNL/Logger.h b/src/TNL/Logger.h
index 7a6472bfae..d1f6c5c678 100644
--- a/src/TNL/Logger.h
+++ b/src/TNL/Logger.h
@@ -11,6 +11,7 @@
 #pragma once
 
 #include <ostream>
+
 #include <TNL/Config/ParameterContainer.h>
 
 namespace TNL {
@@ -18,15 +19,15 @@ namespace TNL {
 /// Creates calculations log in the form of a table.
 class Logger
 {
-   public:
-
+public:
    /////
    /// \brief Basic constructor.
    ///
    /// \param _width Integer that defines the width of the log.
    /// \param _stream Defines output stream where the log will be printed out.
-   Logger( int _width,
-              std::ostream& _stream );
+   Logger( int width, std::ostream& stream )
+   : width( width ), stream( stream )
+   {}
 
    /////
    /// \brief Creates header in given log.
@@ -76,8 +77,7 @@ class Logger
                         const ParameterType& value,
                         int parameterLevel = 0 );
 
-   protected:
-
+protected:
    /// \brief Integer defining the width of the log.
    int width;
 
diff --git a/src/TNL/Logger_impl.h b/src/TNL/Logger_impl.h
index 08181070f4..4a42e55dce 100644
--- a/src/TNL/Logger_impl.h
+++ b/src/TNL/Logger_impl.h
@@ -13,29 +13,72 @@
 #include <sstream>
 #include <iomanip>
 
+#include <TNL/Logger.h>
+#include <TNL/Devices/CudaDeviceInfo.h>
+#include <TNL/Devices/SystemInfo.h>
+
 namespace TNL {
 
-template< typename ParameterType >
-void Logger::writeParameter( const String& label,
-                             const String& parameterName,
-                             const Config::ParameterContainer& parameters,
-                             int parameterLevel )
+inline void
+Logger::writeHeader( const String& title )
+{
+   const int fill = stream.fill();
+   const int titleLength = title.getLength();
+   stream << "+" << std::setfill( '-' ) << std::setw( width ) << "+" << std::endl;
+   stream << "|" << std::setfill( ' ' ) << std::setw( width ) << "|" << std::endl;
+   stream << "|" << std::setw( width / 2 + titleLength / 2 )
+          << title << std::setw( width / 2 - titleLength / 2  ) << "|" << std::endl;
+   stream << "|" << std::setfill( ' ' ) << std::setw( width ) << "|" << std::endl;
+   stream << "+" << std::setfill( '-' ) << std::setw( width ) << "+" << std::endl;
+   stream.fill( fill );
+}
+
+inline void
+Logger::writeSeparator()
+{
+   const int fill = stream.fill();
+   stream << "+" << std::setfill( '-' ) << std::setw( width ) << "+" << std::endl;
+   stream.fill( fill );
+}
+
+inline bool
+Logger::writeSystemInformation( const Config::ParameterContainer& parameters )
+{
+   Devices::SystemInfo::writeDeviceInfo( *this );
+   if( parameters.getParameter< String >( "device" ) == "cuda" )
+      Devices::CudaDeviceInfo::writeDeviceInfo( *this );
+   return true;
+}
+
+inline void
+Logger::writeCurrentTime( const char* label )
+{
+   writeParameter< String >( label, Devices::SystemInfo::getCurrentTime() );
+}
+
+template< typename T >
+void
+Logger::writeParameter( const String& label,
+                        const String& parameterName,
+                        const Config::ParameterContainer& parameters,
+                        int parameterLevel )
 {
    stream << "| ";
    int i;
    for( i = 0; i < parameterLevel; i ++ )
       stream << " ";
    std::stringstream str;
-   str << parameters.getParameter< ParameterType >( parameterName );
-   stream  << label
-           << std::setw( width - label.getLength() - parameterLevel - 3 )
-           << str.str() << " |" << std::endl;
+   str << parameters.getParameter< T >( parameterName );
+   stream << label
+          << std::setw( width - label.getLength() - parameterLevel - 3 )
+          << str.str() << " |" << std::endl;
 }
 
-template< typename ParameterType >
-void Logger :: writeParameter( const String& label,
-                               const ParameterType& value,
-                               int parameterLevel )
+template< typename T >
+void
+Logger::writeParameter( const String& label,
+                        const T& value,
+                        int parameterLevel )
 {
    stream << "| ";
    int i;
@@ -43,9 +86,9 @@ void Logger :: writeParameter( const String& label,
       stream << " ";
    std::stringstream str;
    str << value;
-   stream  << label
-           << std::setw( width - label.getLength() - parameterLevel - 3 )
-           << str.str() << " |" << std::endl;
-};
+   stream << label
+          << std::setw( width - label.getLength() - parameterLevel - 3 )
+          << str.str() << " |" << std::endl;
+}
 
 } // namespace TNL
-- 
GitLab