IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
ipsdk::processor::BaseDynamicSplit Class Referenceabstract

Base class for data dynamic split objets used for data dispatch. More...

#include <BaseDynamicSplit.h>

Inheritance diagram for ipsdk::processor::BaseDynamicSplit:
ipsdk::processor::BaseDataSplit ipsdk::imaproc::BaseImageTileCollSplit< OutputTileType::ImageType > ipsdk::imaproc::BaseImageTileCollSplit< TAttribute::TileType ::ImageType > ipsdk::imaproc::BaseShape2dCollSplit< InputStorageType::element_type > ipsdk::imaproc::BaseShape3dCollSplit< InputStorageType::element_type > ipsdk::imaproc::BaseImageStripSplit< InputDataType > ipsdk::imaproc::BaseImageTileCollSplit< InputImageType > ipsdk::imaproc::BaseMeasureSetSplit< InputDataType > ipsdk::imaproc::BaseShape2dCollSplit< InputDataType > ipsdk::imaproc::BaseShape3dCollSplit< InputDataType > ipsdk::processor::DynamicByCopyResultSplit< TProcessor, TAttribute > ipsdk::processor::DynamicByCreationResultSplit< TProcessor, TAttribute > ipsdk::processor::DynamicByRangeDataSplit< TProcessor, TAttribute, CollField, ValueField > ipsdk::processor::DynamicNoSplit< TProcessor, TAttribute >

Public Member Functions

eSplitBaseType getSplitBaseType () const
 retrieve split operation base type
 
virtual eSplitDynamicType getSplitDynamicType () const =0
 retrieve dynamic split operation type
 
ipUInt64 getNbMinEltsPerSplit () const
 retrieve minimum number of elements for a split operation More...
 
ipUInt64 getNbMaxEltsPerSplit () const
 retrieve maximum number of elements for a split operation More...
 
BoolResult initAttribute (BaseProcessor &processor, const ipUInt64 elementsStartIndex, const ipUInt64 nbElements, const core::BaseRequestOrigin &requestOrigin)
 initialize processor attribute associate to split operation for a starting element index and a number of elements More...
 
Constructors and destructors
 BaseDynamicSplit ()
 
virtual ~BaseDynamicSplit ()=0
 
- Public Member Functions inherited from ipsdk::processor::BaseDataSplit
virtual const std::string & getAttributeName () const =0
 retrieve attribute name associated to split operation
 
virtual const std::string & getAttributeToolTip () const =0
 retrieve attribute tooltip associated to split operation
 
bool isInit () const
 retrieve object initialization flag
 
bool isSplitted () const
 check whether object will be associated to split operation More...
 
const ElementsLocationInfogetElementsLocationInfo () const
 retrieve data location informations More...
 
ipUInt64 getFullMemorySize () const
 retrieve full memory data size for elements More...
 
bool areDataLocalized () const
 check whether data are localized More...
 
bool hasLocalData () const
 check whether some data are local data More...
 
bool hasRemoteData () const
 check whether some data are remote data More...
 
void disableDataLocalization ()
 method allowing to disable data localization More...
 
 BaseDataSplit ()
 
virtual ~BaseDataSplit ()=0
 
ipUInt64 getNbElements () const
 retrieve total number of elements associated to input data More...
 
ipUInt64 getDataMemorySize (const ipUInt64 elementIdx) const
 retrieve memory size of data for a given element More...
 
ipUInt64 getDataMemorySize () const
 retrieve memory size of data for a given element More...
 

Static Public Attributes

static const eSplitBaseType::domain g_splitBaseType = eSplitBaseType::eSBT_Dynamic
 data split type associated to object
 

Protected Member Functions

void initSplitted (const ElementsLocationInfo &elementsLocationInfo, const ipUInt64 nbMinEltsPerSplit=1, const ipUInt64 nbMaxEltsPerSplit=NumericLimits< ipUInt64 >::max())
 base class initialization method for splitted case More...
 
void initUnSplitted (const ElementsLocationInfo &elementsLocationInfo)
 base class initialization method for un splitted case More...
 
virtual BoolResult processAttribute (BaseProcessor &processor, const ipUInt64 elementsStartIndex, const ipUInt64 nbElements, const core::BaseRequestOrigin &requestOrigin)=0
 
- Protected Member Functions inherited from ipsdk::processor::BaseDataSplit
void initBaseSplitted (const ElementsLocationInfo &elementsLocationInfo)
 base class initialization method for splitted elements More...
 
void initBaseUnSplitted (const ElementsLocationInfo &elementsLocationInfo)
 base class initialization method for un splitted elements More...
 
virtual bool checkProcessorType (const processor::BaseProcessor &processor)=0
 check processor type in derived class
 
void throwNullInputSharedPtr ()
 

Protected Attributes

ipUInt64 _nbMinEltsPerSplit
 minimum number of elements for a split operation
 
ipUInt64 _nbMaxEltsPerSplit
 maximum number of elements for a split operation
 

Detailed Description

Base class for data dynamic split objets used for data dispatch.

Author
E. Noirfalise
Date
2014/2/5

Objects are splitted by packets of unitary elements Number of unitary elements is predefined Size of packets is defined at runtime

Member Function Documentation

◆ getNbMinEltsPerSplit()

ipUInt64 ipsdk::processor::BaseDynamicSplit::getNbMinEltsPerSplit ( ) const

retrieve minimum number of elements for a split operation

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif isInit() == false

◆ getNbMaxEltsPerSplit()

ipUInt64 ipsdk::processor::BaseDynamicSplit::getNbMaxEltsPerSplit ( ) const

retrieve maximum number of elements for a split operation

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif isInit() == false

◆ initAttribute()

BoolResult ipsdk::processor::BaseDynamicSplit::initAttribute ( BaseProcessor processor,
const ipUInt64  elementsStartIndex,
const ipUInt64  nbElements,
const core::BaseRequestOrigin requestOrigin 
)

initialize processor attribute associate to split operation for a starting element index and a number of elements

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif elementsStartIndex and nbElements are not valid given dynamic split type
ipsdk::processor::IPSDKBaseProcessingExceptionif processor type is invalid
Returns
false in case of failure

◆ initSplitted()

void ipsdk::processor::BaseDynamicSplit::initSplitted ( const ElementsLocationInfo elementsLocationInfo,
const ipUInt64  nbMinEltsPerSplit = 1,
const ipUInt64  nbMaxEltsPerSplit = NumericLimitsipUInt64 >::max() 
)
protected

base class initialization method for splitted case

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif elementsLocationInfo.getNbElements() == 0
ipsdk::processor::IPSDKBaseProcessingExceptionif nbMinEltsPerSplit == 0
ipsdk::processor::IPSDKBaseProcessingExceptionif nbMaxEltsPerSplit < nbMinEltsPerSplit

◆ initUnSplitted()

void ipsdk::processor::BaseDynamicSplit::initUnSplitted ( const ElementsLocationInfo elementsLocationInfo)
protected

base class initialization method for un splitted case

Exceptions
ipsdk::processor::IPSDKBaseProcessingExceptionif elementsLocationInfo.getNbElements() != 1

◆ processAttribute()

virtual BoolResult ipsdk::processor::BaseDynamicSplit::processAttribute ( BaseProcessor processor,
const ipUInt64  elementsStartIndex,
const ipUInt64  nbElements,
const core::BaseRequestOrigin requestOrigin 
)
protectedpure virtual

The documentation for this class was generated from the following file: