Library: Data
Package: DataCore
Header: Poco/Data/AbstractExtraction.h
AbstractExtraction is the interface class that connects output positions to concrete values retrieved via an AbstractExtractor.
Direct Base Classes: Poco::RefCountedObject
All Base Classes: Poco::RefCountedObject
Known Derived Classes: Extraction
Member Functions: createPrepareObject, extract, getExtractor, getLimit, numOfColumnsHandled, numOfRowsAllowed, numOfRowsHandled, reset, setExtractor, setLimit
Inherited Functions: duplicate, referenceCount, release
AbstractExtraction(
Poco::UInt32 limit = Limit::LIMIT_UNLIMITED
);
Creates the AbstractExtraction. A limit value equal to EXTRACT_UNLIMITED (0xffffffffu) means that we extract as much data as possible during one execute. Otherwise the limit value is used to partition data extracting to a limited amount of rows.
virtual ~AbstractExtraction();
Destroys the AbstractExtraction.
virtual AbstractPrepare * createPrepareObject(
AbstractPreparation * pPrep,
std::size_t pos
) const = 0;
Creates a Prepare object for the etxracting object
virtual void extract(
std::size_t pos
) = 0;
Extracts a value from the param, starting at the given column position.
AbstractExtractor * getExtractor() const;
Retrieves the extractor object
Poco::UInt32 getLimit() const;
Gets the limit.
virtual std::size_t numOfColumnsHandled() const = 0;
Returns the number of columns that the extraction handles.
The trivial case will be one single column but when complex types are used this value can be larger than one.
virtual std::size_t numOfRowsAllowed() const = 0;
Returns the upper limit on number of rows that the extraction will handle.
virtual std::size_t numOfRowsHandled() const = 0;
Returns the number of rows that the extraction handles.
The trivial case will be one single row but for collection data types (ie vector) it can be larger.
virtual void reset() = 0;
Resets the etxractor so that it can be re-used.
void setExtractor(
AbstractExtractor * pExtractor
);
Sets the class used for extracting the data. Does not take ownership of the pointer.
void setLimit(
Poco::UInt32 limit
);
Sets the limit.