libbbb
1.2.1
Groups common code used in some applications and libraries.
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
jobinterf.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 __JOBINTERF_INC__
21
#define __JOBINTERF_INC__
22
//
23
//
24
//
25
//
26
/* INCLUDES ------------------------------------------------------------ */
27
28
#include <libbbb/libbbb.h>
29
#include <libbbb/amorph.h>
30
#include <libbbb/list2d.h>
31
#include <libbbb/timer.h>
32
33
#include <QObject>
34
#include <QThread>
35
36
/* INCLUDES ============================================================ */
37
//
38
//
39
//
40
//
41
/* DEFINITIONS --------------------------------------------------------- */
42
43
namespace
bbb {
44
45
/* DEFINITIONS ========================================================= */
46
//
47
//
48
//
49
//
50
/* CLASS --------------------------------------------------------------- */
51
63
class
64
BBBSHARED_EXPORT
65
JobInterf
{
66
67
//
68
//
69
//
70
//
71
/* DEFINITIONS ----------------------------------------------------- */
72
73
public
:
74
78
typedef
void (*KbTimeout) (
JobInterf
* job );
79
80
/* DEFINITIONS ===================================================== */
81
//
82
//
83
//
84
//
85
/* DATA ------------------------------------------------------------ */
86
87
public
:
88
90
Amorph
a0_
;
91
92
protected
:
93
94
96
KbTimeout
kb_
;
97
99
int
freq_msec_
;
100
101
/* DATA ============================================================ */
102
//
103
//
104
//
105
//
106
/* FUNCTIONS ------------------------------------------------------- */
107
108
public
:
109
110
114
JobInterf
(
void
);
115
116
120
virtual
~
JobInterf
(
void
);
121
122
126
virtual
bool
startJob (
void
) = 0;
127
128
132
virtual
void
stopJob (
void
) = 0;
133
134
138
virtual
bool
isJobRunning (
void
)
const
= 0;
139
140
144
virtual
int
frequency (
void
)
const
145
{
return
freq_msec_; }
146
147
151
virtual
void
setFrequency (
int
milisec )
152
{ freq_msec_ = milisec; }
153
154
158
void
setCallback ( KbTimeout val )
159
{ kb_ = val; }
160
161
165
KbTimeout callback (
void
)
166
{
return
kb_; }
167
168
169
170
/* FUNCTIONS ======================================================= */
171
//
172
//
173
//
174
//
175
176
};
/* class JobInterf */
177
178
/* CLASS =============================================================== */
179
//
180
//
181
//
182
//
183
/* CLASS --------------------------------------------------------------- */
184
185
class
BBBSHARED_EXPORT
JobInterf1
:
public
JobInterf
{
186
public
:
187
Amorph
a1_;
188
};
189
class
BBBSHARED_EXPORT
JobInterf2
:
public
JobInterf1
{
190
public
:
191
Amorph
a2_;
192
};
193
class
BBBSHARED_EXPORT
JobInterf3
:
public
JobInterf2
{
194
public
:
195
Amorph
a3_;
196
};
197
class
BBBSHARED_EXPORT
JobInterf4
:
public
JobInterf3
{
198
public
:
199
Amorph
a4_;
200
};
201
202
/* CLASS =============================================================== */
203
//
204
//
205
//
206
//
207
/* CLASS --------------------------------------------------------------- */
208
212
class
213
BBBSHARED_EXPORT
214
JobBack
: QObject,
public
JobInterf
{
215
216
//
217
//
218
//
219
//
220
/* DEFINITIONS ----------------------------------------------------- */
221
222
public
:
223
224
225
/* DEFINITIONS ===================================================== */
226
//
227
//
228
//
229
//
230
/* DATA ------------------------------------------------------------ */
231
232
private
:
233
237
int
id_;
238
239
240
/* DATA ============================================================ */
241
//
242
//
243
//
244
//
245
/* FUNCTIONS ------------------------------------------------------- */
246
247
public
:
248
249
253
JobBack
(
void
);
254
255
259
virtual
~
JobBack
(
void
);
260
261
265
bool
startJob (
void
);
266
267
271
void
stopJob (
void
);
272
273
277
bool
isJobRunning (
void
)
const
;
278
279
283
void
setFrequency (
int
milisec );
284
285
286
protected
:
287
288
292
void
timerEvent ( QTimerEvent * event );
293
294
295
296
/* FUNCTIONS ======================================================= */
297
//
298
//
299
//
300
//
301
302
};
/* class JobBack */
303
304
305
/* CLASS =============================================================== */
306
//
307
//
308
//
309
//
310
/* CLASS --------------------------------------------------------------- */
311
312
class
BBBSHARED_EXPORT
JobBack1
:
public
JobBack
{
313
public
:
314
Amorph
a1_;
315
};
316
class
BBBSHARED_EXPORT
JobBack2
:
public
JobBack1
{
317
public
:
318
Amorph
a2_;
319
};
320
class
BBBSHARED_EXPORT
JobBack3
:
public
JobBack2
{
321
public
:
322
Amorph
a3_;
323
};
324
class
BBBSHARED_EXPORT
JobBack4
:
public
JobBack3
{
325
public
:
326
Amorph
a4_;
327
};
328
329
/* CLASS =============================================================== */
330
//
331
//
332
//
333
//
334
/* CLASS --------------------------------------------------------------- */
335
339
class
340
BBBSHARED_EXPORT
341
JobWorker
: QThread,
public
JobInterf
{
342
343
//
344
//
345
//
346
//
347
/* DEFINITIONS ----------------------------------------------------- */
348
349
public
:
350
351
352
/* DEFINITIONS ===================================================== */
353
//
354
//
355
//
356
//
357
/* DATA ------------------------------------------------------------ */
358
359
private
:
360
361
365
Timer1
* tm_;
366
370
int
cache_freq_;
371
372
/* DATA ============================================================ */
373
//
374
//
375
//
376
//
377
/* FUNCTIONS ------------------------------------------------------- */
378
379
public
:
380
381
385
JobWorker
(
void
);
386
387
391
virtual
~
JobWorker
(
void
);
392
393
397
bool
startJob (
void
);
398
399
403
void
stopJob (
void
);
404
405
409
bool
isJobRunning (
void
)
const
;
410
411
415
void
setFrequency (
int
milisec );
416
417
418
protected
:
419
420
424
virtual
void
run (
void
);
425
426
427
private
:
428
429
433
static
bool
internalTimeEvent (
Timer
* t );
434
435
436
/* FUNCTIONS ======================================================= */
437
//
438
//
439
//
440
//
441
442
};
/* class JobWorker */
443
444
445
/* CLASS =============================================================== */
446
//
447
//
448
//
449
//
450
/* CLASS --------------------------------------------------------------- */
451
452
class
BBBSHARED_EXPORT
JobWorker1
:
public
JobWorker
{
453
public
:
454
Amorph
a1_;
455
};
456
class
BBBSHARED_EXPORT
JobWorker2
:
public
JobWorker1
{
457
public
:
458
Amorph
a2_;
459
};
460
class
BBBSHARED_EXPORT
JobWorker3
:
public
JobWorker2
{
461
public
:
462
Amorph
a3_;
463
};
464
class
BBBSHARED_EXPORT
JobWorker4
:
public
JobWorker3
{
465
public
:
466
Amorph
a4_;
467
};
468
469
/* CLASS =============================================================== */
470
//
471
//
472
//
473
//
474
/* CLASS --------------------------------------------------------------- */
475
479
class
480
BBBSHARED_EXPORT
481
JobMultiWorkers
:
public
JobInterf
{
482
483
//
484
//
485
//
486
//
487
/* DEFINITIONS ----------------------------------------------------- */
488
489
public
:
490
494
class
Th
:
public
QThread,
public
List2De
{
495
496
JobMultiWorkers
* j_;
497
Timer1
* tm_;
498
int
cache_freq_;
499
public
:
500
Th
(
JobMultiWorkers
* j )
501
{
502
j_ = j;
503
tm_ = NULL;
504
cache_freq_ = 0;
505
}
506
virtual
void
run (
void
);
507
private
:
508
static
bool
internalTimeEvent (
Timer
* t );
509
510
};
511
512
513
/* DEFINITIONS ===================================================== */
514
//
515
//
516
//
517
//
518
/* DATA ------------------------------------------------------------ */
519
520
private
:
521
522
526
List2Dh
threads_;
527
531
int
targ_th_;
532
533
/* DATA ============================================================ */
534
//
535
//
536
//
537
//
538
/* FUNCTIONS ------------------------------------------------------- */
539
540
public
:
541
542
546
JobMultiWorkers
(
void
);
547
548
552
virtual
~
JobMultiWorkers
(
void
);
553
554
558
bool
startJob (
void
);
559
560
564
void
stopJob (
void
);
565
566
570
bool
isJobRunning (
void
)
const
;
571
572
576
void
setFrequency (
int
milisec );
577
578
582
int
threadsCount (
void
)
583
{
return
targ_th_; }
584
585
589
bool
setThreadsCount (
int
i )
590
{
591
if
( isJobRunning() )
592
return
false
;
593
targ_th_ = i;
594
return
true
;
595
}
596
597
598
/* FUNCTIONS ======================================================= */
599
//
600
//
601
//
602
//
603
604
};
/* class JobMultiWorkers */
605
606
607
/* CLASS =============================================================== */
608
//
609
//
610
//
611
//
612
/* CLASS --------------------------------------------------------------- */
613
614
class
BBBSHARED_EXPORT
JobMultiWorkers1
:
public
JobMultiWorkers
{
615
public
:
616
Amorph
a1_;
617
};
618
class
BBBSHARED_EXPORT
JobMultiWorkers2
:
public
JobMultiWorkers1
{
619
public
:
620
Amorph
a2_;
621
};
622
class
BBBSHARED_EXPORT
JobMultiWorkers3
:
public
JobMultiWorkers2
{
623
public
:
624
Amorph
a3_;
625
};
626
class
BBBSHARED_EXPORT
JobMultiWorkers4
:
public
JobMultiWorkers3
{
627
public
:
628
Amorph
a4_;
629
};
630
631
/* CLASS =============================================================== */
632
//
633
//
634
//
635
//
636
}
// namespace bbb
637
638
#endif // __JOBINTERF_INC__
639
/* ------------------------------------------------------------------------- */
640
/* ========================================================================= */
src
jobinterf
jobinterf.h
Generated on Thu Aug 8 2013 20:10:33 for libbbb by
1.8.3.1