IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
BaseAsync4Processor.h
1 // BaseAsync4Processor.h:
3 // ----------------------
4 //
14 
15 #ifndef __IPSDKBASEPROCESSING_BASEASYNC4PROCESSOR_H__
16 #define __IPSDKBASEPROCESSING_BASEASYNC4PROCESSOR_H__
17 
18 #include <IPSDKBaseProcessing/Processor/Instances/BaseAsyncProcessor.h>
19 
20 namespace ipsdk {
21 namespace processor {
22 
25 
27 {
28  // declare serial class
30 
31 protected:
34 
35 public:
37  virtual ~BaseAsync4Processor() = 0;
38 
39 // methods
40 public:
42  eProcessorType getProcessorType() const;
43 
44 protected:
49  virtual RetrievalResult retrieveFirstProvider(const core::BasePriority& priority,
50  core::ActionProviderPtr& pProvider) = 0;
51 
56  virtual RetrievalResult retrieveSecondProvider(const core::BasePriority& priority,
57  core::ActionProviderPtr& pProvider) = 0;
58 
63  virtual RetrievalResult retrieveThirdProvider(const core::BasePriority& priority,
64  core::ActionProviderPtr& pProvider) = 0;
65 
70  virtual RetrievalResult retrieveFourthProvider(const core::BasePriority& priority,
71  core::ActionProviderPtr& pProvider) = 0;
72 
73 private:
78  ipUInt32 retrieveSequenceInfo();
79 
84  RetrievalResult retrieveProvider(const core::BasePriority& priority,
85  const ipUInt32 curProviderIdx,
86  const ipUInt32 curNbIter,
87  core::ActionProviderPtr& pProvider);
88 
89 // attributes
90 protected:
91 
92 };
93 
96 
97 inline eProcessorType
99 {
101 }
102 
105 
106 } // end of namespace processor
107 } // end of namespace ipsdk
108 
109 #endif // __IPSDKBASEPROCESSING_BASEASYNC3PROCESSOR_H__
Class allowing to encapsulate a typed process result associated to a string description.
Definition: ProcessingResult.h:28
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
#define IPSDKBASEPROCESSING_API
Import/Export macro for library IPSDKBaseProcessing.
Definition: IPSDKBaseProcessingExports.h:27
#define IPSDK_DECLARE_ABSTRACT_SERIAL_WITHOUT_COPY(libraryName, className)
macro enabling serialization on abstract class
Definition: SerializationHdrMacro.h:97
Base class for priority encapsulation.
Definition: BasePriority.h:32
Base class for asynchronous processors.
Definition: BaseAsyncProcessor.h:29
Base class for asynchronous processors using three providers.
Definition: BaseAsync4Processor.h:26
eProcessorType
Enumerate describing processor type.
Definition: ProcessorTypes.h:37
boost::shared_ptr< BaseActionProvider > ActionProviderPtr
shared pointer to action provider
Definition: ActionProviderTypes.h:58
eProcessorType getProcessorType() const
retrieve processor type
Definition: BaseAsync4Processor.h:98
asynchronous processors using four providers
Definition: ProcessorTypes.h:47
uint32_t ipUInt32
Base types definition.
Definition: BaseTypes.h:53