libbbb  1.2.1
Groups common code used in some applications and libraries.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros
backjob.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 __BACKJOB_INC__
21 #define __BACKJOB_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <libbbb/libbbb.h>
29 #include <libbbb/amorph.h>
30 #include <QObject>
31 
32 /* INCLUDES ============================================================ */
33 //
34 //
35 //
36 //
37 /* DEFINITIONS --------------------------------------------------------- */
38 
39 namespace bbb {
40 
41 /* DEFINITIONS ========================================================= */
42 //
43 //
44 //
45 //
46 /* CLASS --------------------------------------------------------------- */
47 
51 class
52  BBBSHARED_EXPORT
53  BackJob : public QObject {
54  Q_OBJECT
55 
56  //
57  //
58  //
59  //
60  /* DEFINITIONS ----------------------------------------------------- */
61 
62 public:
63 
64 
68  typedef void (*KbTimeout) ( BackJob * bkj );
69 
70 
71  /* DEFINITIONS ===================================================== */
72  //
73  //
74  //
75  //
76  /* DATA ------------------------------------------------------------ */
77 
78 private:
79 
81  int t_id_;
82 
84  int freq_;
85 
87  KbTimeout kb_;
88 
89 
90  /* DATA ============================================================ */
91  //
92  //
93  //
94  //
95  /* FUNCTIONS ------------------------------------------------------- */
96 
97 public:
98 
99 
103  BackJob ( QObject * parent = NULL );
104 
105 
109  virtual ~BackJob ( void );
110 
111 
115  void stop ( void );
116 
117 
121  void start ( void );
122 
123 
127  bool isStarted ( void )
128  { return (t_id_ != 0); }
129 
130 
134  void setCallback ( KbTimeout val )
135  { kb_ = val; }
136 
137 
141  KbTimeout callback ( void )
142  { return kb_; }
143 
144 
148  void setFrequency ( int val )
149  {
150  if ( t_id_ != 0 )
151  stop();
152  freq_ = val;
153  if ( t_id_ != 0 )
154  start();
155  }
156 
160  int frequency ( void )
161  { return freq_; }
162 
163 
164 protected:
165 
166 
170  void timerEvent ( QTimerEvent * event );
171 
172 
173 signals:
174 
175 
179  void timeout ( void );
180 
181 
182 
183  /* FUNCTIONS ======================================================= */
184  //
185  //
186  //
187  //
188 
189 }; /* class BackJob */
190 
191 /* CLASS =============================================================== */
192 //
193 //
194 //
195 //
196 /* CLASS --------------------------------------------------------------- */
197 
203 class
204  BBBSHARED_EXPORT
205  BackJob1 : public BackJob {
206 public:
207  Amorph a1;
208 }; /* class BackJob */
209 
215 class
216  BBBSHARED_EXPORT
217  BackJob2 : public BackJob1 {
218 public:
219  Amorph a2;
220 }; /* class BackJob */
221 
227 class
228  BBBSHARED_EXPORT
229  BackJob3 : public BackJob2 {
230 public:
231  Amorph a3;
232 }; /* class BackJob */
233 
234 
235 /* CLASS =============================================================== */
236 //
237 //
238 //
239 //
240 
241 } // namespace bbb
242 
243 #endif // __BACKJOB_INC__
244 /* ------------------------------------------------------------------------- */
245 /* ========================================================================= */