april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
aprilmodule.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 __APRILMODULE_INC__
21 #define __APRILMODULE_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
29 #include <libbbb/1/refcnt.h>
30 #include <april/logic/uniqueid.h>
31 
32 /* INCLUDES ============================================================ */
33 //
34 //
35 //
36 //
37 /* DEFINITIONS --------------------------------------------------------- */
38 
39 namespace april {
40 
41 class World;
42 class AaTkString;
43 class AaToken;
44 class CommandMap;
45 class Actor;
46 
47 /* DEFINITIONS ========================================================= */
48 //
49 //
50 //
51 //
52 /* CLASS --------------------------------------------------------------- */
53 
57 class
59  AprilModule : public libbbb::RefCnt, public MemTrack {
60  BBM_TRACK( AprilModule );
61 
62  //
63  //
64  //
65  //
66  /* DEFINITIONS ----------------------------------------------------- */
67 
68  /* DEFINITIONS ===================================================== */
69  //
70  //
71  //
72  //
73  /* DATA ------------------------------------------------------------ */
74 
75 private:
76 
78  CommandMap * cmd_map_;
79 
80  /* DATA ============================================================ */
81  //
82  //
83  //
84  //
85  /* FUNCTIONS ------------------------------------------------------- */
86 
87 public:
88 
90  AprilModule ( CommandMap * cmd_map );
91 
92 protected:
93 
95  virtual ~AprilModule ( void );
96 
97 public:
98 
100  virtual void insertCommands ( CommandMap * cm ) = 0;
101 
103  virtual void removeCommands ( CommandMap * cm ) = 0;
104 
106  virtual QString name ( void ) = 0;
107 
109  inline CommandMap * cmdMap ( void ) const
110  { return cmd_map_; }
111 
112 
113 public:
116  static void errorNumberOfArguments(QString &s_err);
117  static void errorOneArgumentExpected(QString &s_err);
118  static void errorNoAssocFile(World *w, QString &s_err);
119  static void errorEnergyInteger(QString &s_err);
120  static void errorUnknownOption(QString &s_err, const QString &s_tk);
121  static void errorIntegerExpected(QString &s_err, const QString &s_tk);
122  static void errorIdExpected(QString &s_err, const QString &s_tk);
123  static void errorNoCurrentWorld(QString &s_err);
125 
126 public:
127 
129  static QString getCLUsage ( const QString & s_name );
130 
132  static bool setUsage (
133  const QString & s_name,
134  const QStringList & usage,
135  const QStringList & usage_descr,
136  const QStringList & opts,
137  const QList<QStringList> & opts_descr,
138  const QStringList & obs
139  );
140 
141 
143  typedef QString ( * arg0Func) ( void );
144 
146  typedef QString ( * arg1Func) ( const QString & s_arg_1, const AaToken & tk1 );
147 
149  typedef QString ( * arg0WFunc) ( World * w );
150 
152  typedef QString ( * arg1WFunc) (
153  World * w,
154  const QString & s_arg_1,
155  const AaToken & tk1
156  );
157 
159  typedef QString ( * argW2Func) (
160  World * w, const QString & s_arg_1, const AaToken & tk1,
161  const QString & s_arg_2, const AaToken & tk2 );
162 
164  typedef QString ( * argA0Func) ( Actor * a );
165 
167  typedef QString ( * argAIdFunc) ( Actor * a, ID id );
168 
169 
170 
172  static bool getUIntArg (
173  const AaTkString & atks,
174  int i,
175  QString & s_err,
176  quint64 * val
177  );
178 
179 protected:
180 
182  static bool funcArg0 (
183  const QString & s_cmd,
184  const AaTkString & atks,
185  QString & s_err,
186  arg0Func kb
187  );
188 
190  static bool funcArg1 (
191  const QString & s_cmd,
192  const AaTkString & atks,
193  QString & s_err,
194  arg1Func kb
195  );
196 
198  static bool funcArg0W (
199  const QString & s_cmd,
200  const AaTkString & atks,
201  QString & s_err,
202  arg0WFunc kb
203  );
204 
206  static bool funcArg1W (
207  const QString & s_cmd,
208  const AaTkString & atks,
209  QString & s_err,
210  arg1WFunc kb
211  );
212 
213 
215  static bool funcArg_W2 (
216  const QString & s_cmd,
217  const AaTkString & atks,
218  QString & s_err,
219  argW2Func kb
220  );
221 
222 
224  static bool funcArg_A0 (
225  const QString & s_cmd,
226  const AaTkString & atks,
227  QString & s_err,
228  argA0Func kb
229  );
230 
232  static bool funcArg_AID (
233  const QString & s_cmd,
234  const AaTkString & atks,
235  QString & s_err,
236  argAIdFunc kb
237  );
238 
239  /* FUNCTIONS ======================================================= */
240  //
241  //
242  //
243  //
244 
245 }; /* class AprilModule */
246 
247 /* CLASS =============================================================== */
248 //
249 //
250 //
251 //
252 
253 } // namespace april
254 
255 #endif // __APRILMODULE_INC__
256 /* ------------------------------------------------------------------------- */
257 /* ========================================================================= */