IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseDynamicProcessorDispatcher.h
1 // BaseDynamicProcessorDispatcher.h:
3 // ---------------------------------
4 //
15 
16 #ifndef __IPSDKBASEPROCESSING_BASEDYNAMICPROCESSORDISPATCHER_H__
17 #define __IPSDKBASEPROCESSING_BASEDYNAMICPROCESSORDISPATCHER_H__
18 
19 // suppression warnings
20 // warning C4251: 'ipsdk::processor::BaseDynamicProcessorDispatcher<BaseProcessor>::_dataSplitColl' : class 'std::vector<boost::shared_ptr<ipsdk::processor::BaseDynamicSplit<BaseProcessor>>>' needs to have dll-interface to be used by clients of class 'ipsdk::processor::BaseDynamicProcessorDispatcher<BaseProcessor>'
21 #pragma warning (push)
22 #pragma warning (disable : 4251)
23 
24 #include <IPSDKBaseProcessing/ProcessorDispatcher/BaseProcessorDispatcher.h>
25 
26 namespace ipsdk {
27 namespace processor {
28 
29 class BaseDynamicSplit;
30 
33 
35 {
36 // predefined public types
37 public:
40 
41 public:
45  virtual ~BaseDynamicProcessorDispatcher() = 0;
47 
48 // methods
49 public:
50 
51 protected:
53  typedef boost::shared_ptr<DataSplitType> DataSplitPtr;
54 
56  typedef std::vector<DataSplitPtr> DataSplitColl;
57 
61  BoolResult initBase(const core::BasePriority& actionPriority,
62  const DataSplitColl& dataSplitColl);
63  BoolResult initBase(const core::BasePriority& actionPriority,
64  const ipUInt64 nbMaxThreads,
65  const DataSplitColl& dataSplitColl);
67 
68 private:
71  BoolResult initAttributes(const ElementsRange& elementsRange,
72  const core::BaseRequestOrigin& requestOrigin,
73  const ProcessorPtr& pProcessor);
74 
76  void clearDerived();
77 
78 // attributes
79 protected:
82 };
83 
86 
87 } // end of namespace processor
88 } // end of namespace ipsdk
89 
90 #pragma warning (pop)
91 
92 #endif // __IPSDKBASEPROCESSING_BASEDYNAMICPROCESSORDISPATCHER_H__
std::vector< DataSplitPtr > DataSplitColl
collection of data split operations
Definition: BaseDynamicProcessorDispatcher.h:56
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
uint64_t ipUInt64
Base types definition.
Definition: BaseTypes.h:55
Base class for priority encapsulation.
Definition: BasePriority.h:32
Base class for data dynamic split objets used for data dispatch.
Definition: BaseDynamicSplit.h:31
boost::shared_ptr< DataSplitType > DataSplitPtr
shared pointer to DataSplit
Definition: BaseDynamicProcessorDispatcher.h:53
BaseDynamicSplit DataSplitType
data split operations type
Definition: BaseDynamicProcessorDispatcher.h:39
DataSplitColl _dataSplitColl
collection of data split operations associated to object
Definition: BaseDynamicProcessorDispatcher.h:81
Class allowing to store information about elements range (start offset and number of elements) ...
Definition: ElementsRange.h:27
Base class for processor operations dispatching with dynamic split operation types.
Definition: BaseDynamicProcessorDispatcher.h:34
Base class for request origin description.
Definition: BaseRequestOrigin.h:28
boost::shared_ptr< BaseProcessor > ProcessorPtr
shared pointer to processor class
Definition: ProcessorTypes.h:106
Base class for processor operations dispatching.
Definition: BaseProcessorDispatcher.h:37