LCOV - code coverage report
Current view: top level - ers/src - Severity.cpp (source / functions) Coverage Total Hit
Test: code.result Lines: 28.6 % 28 8
Test Date: 2025-12-21 13:07:08 Functions: 25.0 % 12 3

            Line data    Source code
       1              : #include <assert.h>
       2              : #include <sstream>
       3              : #include <ers/ers.hpp>
       4              : 
       5              : namespace 
       6              : {
       7              :     const char * SeverityNames[] =
       8              :     { 
       9              :         "DEBUG",
      10              :         "LOG",
      11              :         "INFO",
      12              :         "WARNING",
      13              :         "ERROR",
      14              :         "FATAL"
      15              :     };
      16              : }
      17              : 
      18           73 : ERS_DECLARE_ISSUE(      ers,
      19              :                         BadSeverity,
      20              :                         "string \"" << severity << "\" does not contain valid severity",
      21              :                         ((std::string)severity) )
      22              : 
      23              : 
      24              : /** 
      25              :  * \brief Transforms a severity type into the corresponding string
      26              :  * \param s severity
      27              :  * \return reference to string with associated text 
      28              :  */
      29              : std::string
      30           54 : ers::to_string( ers::severity severity )
      31              : {
      32           54 :     assert( ers::Debug <= severity && severity <= ers::Fatal );
      33           54 :     return SeverityNames[severity];
      34              : }
      35              : 
      36              : /** 
      37              :  * \brief Transforms a severity type into the corresponding string
      38              :  * \param s severity
      39              :  * \return pointer to string with associated text 
      40              :  */
      41              : std::string
      42         1022 : ers::to_string( ers::Severity severity )
      43              : {
      44         1022 :     assert( ers::Debug <= severity && severity <= ers::Fatal );
      45              : 
      46         1022 :     if ( severity.type == ers::Debug )
      47              :     {
      48            0 :         std::ostringstream out;
      49            0 :         out << SeverityNames[severity] << "_" << severity.rank;
      50            0 :         return out.str();
      51            0 :     }
      52         1022 :     return SeverityNames[severity.type];
      53              : }
      54              : 
      55              : /** Parses a string and extracts a severity 
      56              :  * \param s the string to parse 
      57              :  * \return a severity value
      58              :  */
      59              : ers::severity
      60            0 : ers::parse( const std::string & string, ers::severity & s )
      61              : {
      62            0 :     for( short ss = ers::Debug; ss <= ers::Fatal; ++ss )
      63              :     {
      64            0 :         if ( string == SeverityNames[ss] )
      65              :         {
      66            0 :             return ( s = (ers::severity)ss );
      67              :         }
      68              :     }
      69            0 :     throw ers::BadSeverity( ERS_HERE, string ); 
      70              : }
      71              : 
      72              : /** Parses a string and extracts a severity 
      73              :  * \param s the string to parse 
      74              :  * \return a severity value
      75              :  */
      76              : ers::Severity
      77            0 : ers::parse( const std::string & string, ers::Severity & s )
      78              : {
      79            0 :     int level = 0;
      80            0 :     ers::severity type;
      81            0 :     std::string::size_type pos = string.find( '_' );
      82            0 :     if ( pos )
      83              :     {
      84            0 :         std::istringstream in( string.substr( pos + 1 ) );
      85            0 :         in >> level;
      86            0 :         ers::parse( string.substr( 0, pos ), type );
      87            0 :     }
      88              :     else
      89              :     {
      90            0 :         ers::parse( string, type );
      91              :     }
      92            0 :     return ( s = ers::Severity( type, level ) );
      93              : }
      94              : 
        

Generated by: LCOV version 2.0-1