LCOV - code coverage report
Current view: top level - libMagAOX/logger/types - config_log.hpp (source / functions) Coverage Total Hit
Test: MagAOX Lines: 50.0 % 28 14
Test Date: 2026-01-03 21:03:39 Functions: 75.0 % 4 3

            Line data    Source code
       1              : /** \file config_log.hpp
       2              :   * \brief The MagAO-X logger config_log log type.
       3              :   * \author Jared R. Males (jaredmales@gmail.com)
       4              :   *
       5              :   * \ingroup logger_types_files
       6              :   *
       7              :   * History:
       8              :   * - 2018-09-06 created by JRM
       9              :   */
      10              : #ifndef logger_types_config_log_hpp
      11              : #define logger_types_config_log_hpp
      12              : 
      13              : #include "generated/config_log_generated.h"
      14              : #include "flatbuffer_log.hpp"
      15              : 
      16              : namespace MagAOX
      17              : {
      18              : namespace logger
      19              : {
      20              : 
      21              : 
      22              : /// Log entry recording configuration settings at startup
      23              : /** \ingroup logger_types
      24              :   */
      25              : struct config_log : public flatbuffer_log
      26              : {
      27              :    ///The event code
      28              :    static const flatlogs::eventCodeT eventCode = eventCodes::CONFIG_LOG;
      29              : 
      30              :    ///The default level
      31              :    static const flatlogs::logPrioT defaultLevel = flatlogs::logPrio::LOG_INFO;
      32              : 
      33              : 
      34              :    ///The type of the input message
      35              :    struct messageT : public fbMessage
      36              :    {
      37              :       ///Construct from components
      38          337 :       messageT( const std::string & name,
      39              :                 const int & code,
      40              :                 const std::string & value,
      41              :                 const std::string & source
      42              :               )
      43          337 :       {
      44          337 :          auto _name = builder.CreateString(name);
      45          337 :          auto _value = builder.CreateString(value);
      46          337 :          auto _source = builder.CreateString(source);
      47              : 
      48              : 
      49          337 :          auto fp = CreateConfig_log_fb(builder, _name, code, _value, _source);
      50          337 :          builder.Finish(fp);
      51              : 
      52          337 :       }
      53              : 
      54              :    };
      55              : 
      56            1 :    static bool verify( flatlogs::bufferPtrT & logBuff,  ///< [in] Buffer containing the flatbuffer serialized message.
      57              :                        flatlogs::msgLenT len            ///< [in] length of msgBuffer.
      58              :                      )
      59              :    {
      60            1 :       auto verifier = flatbuffers::Verifier( static_cast<uint8_t*>(flatlogs::logHeader::messageBuffer(logBuff)), static_cast<size_t>(len));
      61            2 :       return VerifyConfig_log_fbBuffer(verifier);
      62              :    }
      63              : 
      64              :    ///Get the message formatte for human consumption.
      65            0 :    static std::string msgString( void * msgBuffer,  /**< [in] Buffer containing the flatbuffer serialized message.*/
      66              :                                  flatlogs::msgLenT len  /**< [in] [unused] length of msgBuffer.*/
      67              :                                )
      68              :    {
      69              :       static_cast<void>(len);
      70              : 
      71            0 :       auto fbs = GetConfig_log_fb(msgBuffer);
      72              : 
      73            0 :       std::string msg = "Config: ";
      74              : 
      75            0 :       if(fbs->name())
      76              :       {
      77            0 :          msg += fbs->name()->c_str();
      78              :       }
      79              : 
      80            0 :       msg += "=";
      81              : 
      82            0 :       if(fbs->value())
      83              :       {
      84            0 :          msg += fbs->value()->c_str();
      85              :       }
      86              : 
      87            0 :       msg += " [";
      88              : 
      89            0 :       if(fbs->source())
      90              :       {
      91            0 :          msg += fbs->source()->c_str();
      92              :       }
      93              : 
      94            0 :       msg += "]";
      95              : 
      96            0 :       return msg;
      97              : 
      98            0 :    }
      99              : 
     100              :    /// Get an empty logMetaDetail because meta data doesn't make sense for this log
     101              :    /**
     102              :      * \returns an empty logMetaDetail
     103              :      */
     104            1 :    static logMetaDetail getAccessor( const std::string & member /**< [in] the name of the member */ )
     105              :    {
     106              :       static_cast<void>(member);
     107              : 
     108            1 :       std::cerr << "meta data doesn't make sense for config_log.\n";
     109            1 :       return logMetaDetail();
     110              :    }
     111              : 
     112              : }; //config_log
     113              : 
     114              : 
     115              : } //namespace logger
     116              : } //namespace MagAOX
     117              : 
     118              : #endif //logger_types_config_log_hpp
     119              : 
        

Generated by: LCOV version 2.0-1