april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
commandmap.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __COMMANDMAP_INC__
21 #define __COMMANDMAP_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
29 #include <QMap>
30 
31 /* INCLUDES ============================================================ */
32 //
33 //
34 //
35 //
36 /* DEFINITIONS --------------------------------------------------------- */
37 
38 namespace april {
39 
40 class AaTkString;
41 class AprilModule;
42 
44 typedef bool (*cmdCallBack) (
45  const QString & s_cmd,
46  const AaTkString & atks,
47  QString & s_err
48  );
49 
50 /* DEFINITIONS ========================================================= */
51 //
52 //
53 //
54 //
55 /* CLASS --------------------------------------------------------------- */
56 
60 class
62  CommandMap : public MemTrack {
63  BBM_TRACK( CommandMap );
64 
65  //
66  //
67  //
68  //
69  /* DEFINITIONS ----------------------------------------------------- */
70 
71  typedef QMap<QString,cmdCallBack> CmdList;
72  typedef QMap<QString,cmdCallBack>::Iterator CmdIter;
73 
74  /* DEFINITIONS ===================================================== */
75  //
76  //
77  //
78  //
79  /* DATA ------------------------------------------------------------ */
80 
81 private:
82 
84  CmdList cmd_list_;
85 
87  bool b_exit_;
88 
90  QList<AprilModule*> modules_;
91 
93  static CommandMap * def_inst_;
94 
95  /* DATA ============================================================ */
96  //
97  //
98  //
99  //
100  /* FUNCTIONS ------------------------------------------------------- */
101 
102 public:
103 
105  CommandMap ( void );
106 
108  virtual ~CommandMap ( void );
109 
110 
112  bool addCommand ( const QString & s_cmd, cmdCallBack kb );
113 
115  bool remCommand ( const QString & s_cmd, cmdCallBack kb );
116 
118  QStringList commands ( void ) const;
119 
121  bool addModule ( AprilModule * m );
122 
124  bool remModule ( AprilModule * m );
125 
127  QStringList modules ( void ) const;
128 
129 
131  void execute ( const QString & s_input );
132 
134  bool shouldExit ( void ) const
135  { return b_exit_; }
136 
138  bool shouldContinue ( void ) const
139  { return b_exit_ == false; }
140 
142  static CommandMap * defaultInstance ( void );
143 
144  /* FUNCTIONS ======================================================= */
145  //
146  //
147  //
148  //
149 
150 }; /* class CommandMap */
151 
152 /* CLASS =============================================================== */
153 //
154 //
155 //
156 //
157 
158 } // namespace april
159 
160 #endif // __COMMANDMAP_INC__
161 /* ------------------------------------------------------------------------- */
162 /* ========================================================================= */