IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
ProcessorDispatchPolicy.h
1 // ProcessorDispatchPolicy.h:
3 // --------------------------
4 //
14 
15 #ifndef __IPSDKBASEPROCESSING_PROCESSORDISPATCHPOLICY_H__
16 #define __IPSDKBASEPROCESSING_PROCESSORDISPATCHPOLICY_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::processor::ProcessorDispatchPolicy::_dispatchLocationType' : class 'ipsdk::processor::eDispatchLocationType' needs to have dll-interface to be used by clients of class 'ipsdk::processor::ProcessorDispatchPolicy'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
25 #include <IPSDKSerialization/Engine/BaseSerializationObject.h>
26 
27 namespace ipsdk {
28 namespace processor {
29 
32 
34 {
35  // declare serial class
37 
38 public:
44 
45 // methods
46 public:
48  bool isInit() const;
49 
51  void initDefault();
52 
54  void initLocal();
55 
60  void initLocalAndRemote(const ipUInt32 nbMaxThread);
61 
64  void initMonoThread();
65 
70  void initLocal(const ipUInt32 nbMaxThread);
71 
76  void initRemote(const ipUInt32 nbMaxThread);
77 
82  void init(const eDispatchLocationType& dispatchLocationType,
83  const ipUInt32 nbMaxThread);
84 
88  ipUInt32 getNbMaxThread() const;
89 
92  const eDispatchLocationType& getDispatchLocationType() const;
93 
96  bool isLocalProcessingAllowed() const;
97 
100  bool isRemoteProcessingAllowed() const;
101 
109  void retrictPolicy(const ProcessorDispatchPolicy& policy);
110 
112  void clear();
113 
114 // attributes
115 protected:
118 
121 
123  bool _bInit;
124 };
125 
128 
129 inline bool
131 {
132  return _bInit;
133 }
134 
137 
138 } // end of namespace processor
139 } // end of namespace ipsdk
140 
141 #pragma warning (pop)
142 
143 #endif // __IPSDKBASEPROCESSING_PROCESSORDISPATCHPOLICY_H__
#define IPSDK_DECLARE_SERIAL_WITH_COPY(libraryName, className)
macro enabling serialization on class
Definition: SerializationHdrMacro.h:73
bool isInit() const
retrieve object initialisation flag
Definition: ProcessorDispatchPolicy.h:130
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
eDispatchLocationType _dispatchLocationType
dispatch location policy type
Definition: ProcessorDispatchPolicy.h:120
ipUInt32 _nbMaxThread
maximum number of thread used for dispatch
Definition: ProcessorDispatchPolicy.h:117
bool _bInit
object initialization flag
Definition: ProcessorDispatchPolicy.h:123
eDispatchLocationType
Enumerate describing dispatch location type.
Definition: ProcessorDispatchPolicyTypes.h:35
Predefined types for processor dispatch policy management.
Definition of import/export macro for library.
Class encapsuling dispatch policy for processor dispatcher classes.
Definition: ProcessorDispatchPolicy.h:33
Base class for serializable class.
Definition: BaseSerializationObject.h:33
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53