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
|