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

            Line data    Source code
       1              : /** \file saving_state_change.hpp
       2              :   * \brief The MagAO-X logger saving_state_change log type.
       3              :   * \author Jared R. Males (jaredmales@gmail.com)
       4              :   *
       5              :   * \ingroup logger_types_files
       6              :   *
       7              :   * History:
       8              :   * - 2019-05-04 created by JRM
       9              :   */
      10              : #ifndef logger_types_saving_state_change_hpp
      11              : #define logger_types_saving_state_change_hpp
      12              : 
      13              : #include "../../app/stateCodes.hpp"
      14              : 
      15              : #include "generated/saving_state_change_generated.h"
      16              : #include "flatbuffer_log.hpp"
      17              : 
      18              : namespace MagAOX
      19              : {
      20              : namespace logger
      21              : {
      22              : 
      23              : 
      24              : ///Saving State Change
      25              : /** \ingroup logger_types
      26              :   */
      27              : struct saving_state_change : public flatbuffer_log
      28              : {
      29              : 
      30              : 
      31              :    ///The type of the message
      32              :    struct messageT : public fbMessage
      33              :    {
      34           12 :       messageT( int16_t state,
      35              :                 uint64_t frameNo
      36              :               )
      37           12 :       {
      38           12 :          auto gs = CreateSaving_state_change_fb(builder, state, frameNo);
      39           12 :          builder.Finish(gs);
      40           12 :       }
      41              :    };
      42              : 
      43            3 :    static bool verify( flatlogs::bufferPtrT & logBuff,  ///< [in] Buffer containing the flatbuffer serialized message.
      44              :                        flatlogs::msgLenT len            ///< [in] length of msgBuffer.
      45              :                      )
      46              :    {
      47            3 :       auto verifier = flatbuffers::Verifier( static_cast<uint8_t*>(flatlogs::logHeader::messageBuffer(logBuff)), static_cast<size_t>(len));
      48            6 :       return VerifySaving_state_change_fbBuffer(verifier);
      49              :    }
      50              : 
      51              :    /// Format the message for text output, including translation of state codes to text form.
      52              :    /**
      53              :      * \returns the message formatted as "State changed from UNINITIALIZED to INITIALIZED"
      54              :      */
      55            0 :    static std::string msgString( void * msgBuffer,  /**< [in] Buffer containing the flatbuffer serialized message.*/
      56              :                                  flatlogs::msgLenT len  /**< [in] [unused] length of msgBuffer.*/
      57              :                                )
      58              :    {
      59              :       static_cast<void>(len);
      60              : 
      61            0 :       auto rgs = GetSaving_state_change_fb(msgBuffer);
      62              : 
      63            0 :       std::stringstream s;
      64            0 :       s << "Saving ";
      65              : 
      66            0 :       if(rgs->state() == 0) s << "stopped at frame number ";
      67            0 :       else s << "started at frame number ";
      68              : 
      69            0 :       s << rgs->frameNo();
      70              : 
      71            0 :       return s.str();
      72            0 :    }
      73              : 
      74              :    /// Get an empty logMetaDetail because meta data doesn't make sense for this log
      75              :    /**
      76              :      * \returns an empty logMetaDetail
      77              :      */
      78            2 :    static logMetaDetail getAccessor( const std::string & member /**< [in] the name of the member */ )
      79              :    {
      80              :       static_cast<void>(member);
      81              : 
      82            2 :       std::cerr << "meta data doesn't make sense for saving_state_change.\n";
      83            2 :       return logMetaDetail();
      84              :    }
      85              : };
      86              : 
      87              : } //namespace logger
      88              : } //namespace MagAOX
      89              : 
      90              : #endif //logger_types_saving_state_change_hpp
        

Generated by: LCOV version 2.0-1