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