LRAUV  revA
MissionManager.h
Go to the documentation of this file.
1 
9 #ifndef MissionManager_H_
10 #define MissionManager_H_
11 
13 #include "utils/Mutex.h"
14 
15 class MissionItem;
16 class MissionNode;
18 
26 {
27 public:
28 
31 
33  virtual ~MissionManager();
34 
36  MissionItem* loadFromFile( const char* filename );
37 
39  bool runLoadedMission( bool quitAtEnd = false );
40 
43  bool resumeLoadedMission();
44 
47  void run();
48 
50  void initialize();
51 
53  void uninitialize();
54 
56  void logStack();
57 
60  {
61  return startupMissionItem_ == NULL
62  && loadedMissionItem_ != NULL && okToRun_ ;
63  }
64 
67  {
68  return isMissionRunning() ? loadedMissionItem_ : NULL;
69  }
70 
73  {
75  }
76 
78  static MissionNode* LoadRootNode( const char* filename, bool insert, Logger& logger );
79 
81  static MissionNode* FindTopNode( MissionNode* rootNode, Logger& logger );
82 
84  static void LogMission( const char *filename, Logger& logger );
85 
86  static MissionManager* GetInstance();
87 
88 protected:
89 
91  MissionItem* missionFromFile( const char* filename );
92 
95  bool okToRun_;
96  bool quitAtEnd_;
100 
101 private:
102 
103  // Note that the copy constructor below is private and not given a body.
104  // Any attempt to call it will return a compiler error.
105  MissionManager( const MissionManager& old ); // disallow copy constructor
106 
109 
111 
113  void uninitializeMission( MissionItem* missionItem );
114 
116 
117 };
118 
119 #endif /*MissionManager_H_*/
Client-side interface for injecting log data into the log queue.
Definition: Logger.h:30
const Str & getLoadedMissionFilename()
Returns the filename name of the most recent loaded mission.
Definition: MissionManager.h:72
static MissionNode * FindTopNode(MissionNode *rootNode, Logger &logger)
Finds a mission node within a root node.
Definition: MissionManager.cpp:185
Contains the SyncComponent class definition.
MissionManager is the computation cycle component that contains the main mission stack and manages it...
Definition: MissionManager.h:25
Wraps a Behavior or Aggregate with mission-specific settings pertaining to that item.
Definition: MissionItem.h:31
static MissionManager * GetInstance()
Definition: MissionManager.cpp:56
bool quitAtEnd_
Definition: MissionManager.h:96
bool okToRun_
Definition: MissionManager.h:95
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: DataReader.h:30
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
MissionItem * loadedMissionItem_
Definition: MissionManager.h:93
A simple pthread Mutex abstraction.
Definition: Mutex.h:20
virtual ~MissionManager()
Destructor.
Definition: MissionManager.cpp:51
bool runLoadedMission(bool quitAtEnd=false)
Loads a mission from a file.
Definition: MissionManager.cpp:80
UniversalDataWriter * missionStartedWriter_
Definition: MissionManager.h:110
MissionItem * startupMissionItem_
Definition: MissionManager.h:97
void run()
Runs the contained mission stack.
Definition: MissionManager.cpp:264
bool resumeLoadedMission()
Resumes the contained mission stack.
Definition: MissionManager.cpp:94
void logStack()
Display the currently running stack to Syslog.
Definition: MissionManager.cpp:367
bool isMissionRunning()
Returns true if a mission is running.
Definition: MissionManager.h:59
DataReader * iBITRunningReader_
Definition: MissionManager.h:108
Wraps a TiXmlNode.
Definition: MissionNode.h:20
Replacement for standard template class string.
Definition: Str.h:12
static MissionNode * LoadRootNode(const char *filename, bool insert, Logger &logger)
Load a mission node from a file.
Definition: MissionManager.cpp:140
void uninitialize()
Uninitialize the mission stacks.
Definition: MissionManager.cpp:391
void initialize()
Reads the configuration settings.
Definition: MissionManager.cpp:339
Contains the Mutex, ThreadCondition, and MutexLocker class declarations.
DataReader * sBITRunningReader_
Definition: MissionManager.h:107
Abstract Base class for components that manage mission components.
Definition: SyncComponent.h:217
static void LogMission(const char *filename, Logger &logger)
Logs the mission to the syslog.
Definition: MissionManager.cpp:212
Mutex stackModMutex_
Definition: MissionManager.h:99
MissionItem * getRunningMission()
Returns the currently running mission, or NULL if none (or in startup)
Definition: MissionManager.h:66
MissionItem * missionFromFile(const char *filename)
Loads a mission from a file.
Definition: MissionManager.cpp:234
MissionItem * loadFromFile(const char *filename)
Loads a mission from a file.
Definition: MissionManager.cpp:61
Str loadedMissionFilename_
Definition: MissionManager.h:94
MissionItem * defaultMissionItem_
Definition: MissionManager.h:98
MissionManager()
Private constructor for use only by Aggregate.
Definition: MissionManager.cpp:32
void uninitializeMission(MissionItem *missionItem)
Uninitialize a mission stack.
Definition: MissionManager.cpp:409
static MissionManager * Instance_
Definition: MissionManager.h:115