InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IAsyncWorkProcessorFactory.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Paul Messmer
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __IASYNCWORKPROCESSORFACTORY__
25 #define __IASYNCWORKPROCESSORFACTORY__
26 
27 #include "AsyncWork.h"
28 #include "AppFrameworkID.h"
29 
30 
31 //--------------------------------------------------------------------------------------
36 {
37 public:
38 
39  enum { kDefaultIID = IID_IASYNCWORKPROCESSORFACTORY };
40 
41  enum LoadModel
42  {
43  kComputationBound = 1, // your code does mostly computation
44  kExternalWait = 2, // your code mostly waits on I/O or external things
45  kMixed = 3 // you have no clue what your code does
46  };
47 
51  virtual bool IsThreadable () const = 0;
52 
56  virtual LoadModel GetLoadModel () const = 0;
57 
62  virtual uint32 GetMaximumInstances (uint32 nCPUCores) const = 0;
63 
70  virtual AsyncWorkProcessor *CreateProcessorInstance () const = 0;
71 };
72 
73 //--------------------------------------------------------------------------------------
74 
75 #endif // __IASYNCWORKPROCESSORFACTORY__