Free Electron
WorkForceI.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __thread_WorkForceI_h__
8 #define __thread_WorkForceI_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 class WorkI;
16 
17 /**************************************************************************//**
18  @brief Execute a Range
19 
20  @ingroup thread
21 *//***************************************************************************/
22 class FE_DL_EXPORT WorkForceI:
23  virtual public Component,
24  public CastableAs<WorkForceI>
25 {
26  public:
27 virtual sp<WorkI> assignment(void) =0;
28 
29 virtual void run(sp<WorkI> a_spWorkI,U32 a_threads,
30  sp<SpannedRange> a_spSpannedRange,
31  String a_stage) =0;
32 virtual void stop(void) =0;
33 
34 virtual BWORD threadsAlive(void) const =0;
35 
36 virtual BWORD willWaitForJobs(void) const =0;
37 virtual void waitForJobs(BWORD a_wait) =0;
38 };
39 
40 } /* namespace ext */
41 } /* namespace fe */
42 
43 #endif // __thread_WorkForceI_h__
44 
kernel
Definition: namespace.dox:3
Execute a Range.
Definition: WorkForceI.h:22
Automatically reference-counted string container.
Definition: String.h:128
Base for all interfacable components.
Definition: Component.h:20
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192