LRAUV  revA
MissionStateLogger.h
Go to the documentation of this file.
1 
10 #ifndef MISSIONSTATELOGGER_H_
11 #define MISSIONSTATELOGGER_H_
12 
13 #include "data/ElementURI.h"
14 #include "io/MappedIOStream.h"
15 #include "logger/Logger.h"
16 #include "utils/FastMap.h"
17 #include "utils/FlexArray.h"
18 #include "utils/Str.h"
19 
20 #include <dirent.h>
21 
22 #ifndef __APPLE_CC__
23 #define DIRENT_CONST const
24 #else
25 #define DIRENT_CONST
26 #endif
27 
28 class MissionItem;
29 
36 {
37 public:
38 
39  static void SetActive( const CodedStr& name, MissionItem* active );
40 
41  static void SetActive( const CodedStr& name, unsigned short activeCode );
42 
43  static void SetRepeatIndex( const CodedStr& name, int repeatIndex );
44 
45  static Str* GetActive( const CodedStr& aggregateName, int& repeatIndex );
46 
47  static void ShowMissionState( Logger& logger );
48 
49  static void LogArgWrite( const ElementURI& uri, DataValue* dataValue );
50 
51  static void ClearStates();
52 
53  static void NewResume( Str loadedMissionFilename, Logger& logger );
54 
55  static void NewRun( Str loadedMissionFilename );
56 
57 private:
60 
61  struct StateInfo
62  {
63  public:
65  : nameCode_(),
66  repeat_( 0 ),
67  pos_( ( unsigned int ) - 1 )
68  {}
69  unsigned short nameCode_;
70  int repeat_;
71  size_t pos_;
72  };
73 
75  {
76  public:
78  : pos_( ( unsigned int ) - 1 )
79  {}
81  {}
82  size_t pos_;
83  union
84  {
85  int intValue_;
86  float floatValue_;
87  };
88  };
89 
91 
94  {
95  public:
97  };
98 
101 
103 
104  static int StreamSize_;
105 
107 
108  static Str FilterArg_;
109 
111  static int Filter( DIRENT_CONST struct dirent* dirEntry );
112 
113  static void ConfigureFilterArg( Str loadedMissionFilename );
114 };
115 
116 #endif /*MISSIONSTATELOGGER_H_*/
Client-side interface for injecting log data into the log queue.
Definition: Logger.h:30
StreamEntry()
Definition: MissionStateLogger.h:77
float floatValue_
Definition: MissionStateLogger.h:86
Wraps a Behavior or Aggregate with mission-specific settings pertaining to that item.
Definition: MissionItem.h:31
int intValue_
Definition: MissionStateLogger.h:85
~StreamEntry()
Definition: MissionStateLogger.h:80
Definition: MissionStateLogger.h:74
Makes sure that CurrentStream_ is deleted on shutdown.
Definition: MissionStateLogger.h:93
Definition: MissionStateLogger.h:61
static Str * GetActive(const CodedStr &aggregateName, int &repeatIndex)
Definition: MissionStateLogger.cpp:146
static void NewRun(Str loadedMissionFilename)
Definition: MissionStateLogger.cpp:321
A DataValue is an abstract base class for a data value and associated engineering units of the value...
Definition: DataValue.h:35
static void LogArgWrite(const ElementURI &uri, DataValue *dataValue)
Definition: MissionStateLogger.cpp:167
static void ConfigureFilterArg(Str loadedMissionFilename)
Definition: MissionStateLogger.cpp:215
Extends the Str class, adding an unsigned short code (actually, the codes are limited to 14 bits...
Definition: CodedStr.h:23
Contains the FlexArrayBase and FlexArray class declarations.
static int StreamSize_
Definition: MissionStateLogger.h:104
static MappedIOStream * CurrentStream_
Definition: MissionStateLogger.h:90
size_t pos_
Definition: MissionStateLogger.h:71
static void SetRepeatIndex(const CodedStr &name, int repeatIndex)
Definition: MissionStateLogger.cpp:107
Replacement for standard template class string.
Definition: Str.h:12
static void SetActive(const CodedStr &name, MissionItem *active)
Definition: MissionStateLogger.cpp:39
static void ShowMissionState(Logger &logger)
Definition: MissionStateLogger.cpp:153
static FlexArray< MissionStateLogger::StateInfo * > States_
Definition: MissionStateLogger.h:106
static int Filter(DIRENT_CONST struct dirent *dirEntry)
Helper function for Supervisor::GetLatestLogFilename()
Definition: MissionStateLogger.cpp:364
int repeat_
Definition: MissionStateLogger.h:70
Contains the ElementURI class definition.
static void ClearStates()
Definition: MissionStateLogger.cpp:202
static FlexArray< MissionStateLogger::StreamEntry * > StreamEntries_
Definition: MissionStateLogger.h:102
Contains the FastMap class declaration.
Contains the MappedIOStream class declaration.
Contains the Logger class definition.
static MissionStateLogger::StaticDestructor StaticDestructor_
Static instance of StaticDestructor.
Definition: MissionStateLogger.h:100
static void NewResume(Str loadedMissionFilename, Logger &logger)
Definition: MissionStateLogger.cpp:226
Simple class providing a flexible size array of pointers.
Definition: DataReader.h:19
Code unit that represents a unique name for a DataElement.
Definition: ElementURI.h:27
static Str FilterArg_
Definition: MissionStateLogger.h:108
~StaticDestructor()
Definition: MissionStateLogger.cpp:30
size_t pos_
Definition: MissionStateLogger.h:82
Wraps Memory mapped file with an IOStream class.
Definition: MappedIOStream.h:27
StateInfo()
Definition: MissionStateLogger.h:64
#define DIRENT_CONST
Definition: MissionStateLogger.h:23
unsigned short nameCode_
Definition: MissionStateLogger.h:69
MissionStateLogger()
Private Constructor for singleton.
Serializes and unserializes mission state to allow missions to be resumed.
Definition: MissionStateLogger.h:35