Qore DataProvider Module Reference 3.3.0
Loading...
Searching...
No Matches
DataProvider::AbstractDataProviderBulkRecordInterface Class Reference

Defines the abstract class for data provider iterators; the destructor releases the iterator. More...

#include <AbstractDataProviderBulkRecordInterface.qc.dox.h>

Inheritance diagram for DataProvider::AbstractDataProviderBulkRecordInterface:
[legend]

Public Member Methods

 constructor (int block_size, *bool requires_result, *int max_records)
 Creates the object.
 
int getBlockSize ()
 Returns the block size.
 
*int getMaxRecords ()
 Returns the 'max_records' value.
 
int getRecordCount ()
 Returns the number of records returned so far.
 
AbstractDataProviderRecordIterator getRecordIterator ()
 Returns a standard record iterator for this bulk iterator.
 
*hash< string, AbstractDataFieldgetRecordType ()
 Returns the record description, if available.
 
*hash< auto > getValue ()
 Returns a hash of lists (or constant values) or no value if no more data is available.
 
bool requiresResult ()
 Returns the 'requires_result' flag.
 
bool valid ()
 Returns True if there are more records to return.
 

Public Attributes

*int max_records
 Max records.
 
int record_count = 0
 Record count.
 
bool requires_result
 Requires result.
 

Private Member Methods

abstract *hash< auto > getValueImpl ()
 Returns a hash of lists (or constant values) according to the block size.
 
 markInvalid ()
 Called when the iterator is marked as invalid.
 

Private Attributes

int block_size
 The record block size.
 
bool valid = True
 Valid flag.
 

Detailed Description

Defines the abstract class for data provider iterators; the destructor releases the iterator.

Member Function Documentation

◆ constructor()

DataProvider::AbstractDataProviderBulkRecordInterface::constructor ( int  block_size,
*bool  requires_result,
*int  max_records 
)

Creates the object.

Parameters
block_sizethe record block size for the iterator
requires_resultif set to True, at least one record must be returned by the iterator; if no records are available, an exception is thrown when this parameter is set to True
max_recordsthe maximum number of records to return; if set, an exception is thrown when the maximum number of records is exceeded
Since
DataProvider 3.3

◆ getRecordIterator()

AbstractDataProviderRecordIterator DataProvider::AbstractDataProviderBulkRecordInterface::getRecordIterator ( )

Returns a standard record iterator for this bulk iterator.

Returns
a standard record iterator for this bulk iterator

◆ getRecordType()

*hash< string, AbstractDataField > DataProvider::AbstractDataProviderBulkRecordInterface::getRecordType ( )

Returns the record description, if available.

This base class method returns NOTHING; reimplement in subclasses to provide a record type

◆ getValue()

*hash< auto > DataProvider::AbstractDataProviderBulkRecordInterface::getValue ( )

Returns a hash of lists (or constant values) or no value if no more data is available.

Returns
a hash of lists (or constant values) according to the block size or NOTHING if no more data is available
Exceptions
NO-DATAno data available to return and requires_result is set
MAX-RECORDS-EXCEEDEDthe maximum number of records has been exceeded as set by max_records
Note
  • This call moves the internal record pointer forward, therefore multiple calls of this methods will return different results as long as data is available
  • A short read from getValueImpl() indicates that the final block is being delivered
  • The first hash key must be assigned to a list and cannot be assigned to a constant value

◆ getValueImpl()

abstract *hash< auto > DataProvider::AbstractDataProviderBulkRecordInterface::getValueImpl ( )
private

Returns a hash of lists (or constant values) according to the block size.

Returns
a hash of lists (or constant values) according to the block size; returning NOTHING or a hash where the first value is an empty list (or NOTHING) indicates that there are no more records to return
Exceptions
INVALID-ITERATORthe iterator is not pointing at a valid element
Note
  • This call moves the internal record pointer forward, therefore multiple calls of this methods will return different results as long as data is available
  • The first hash key must be assigned to a list and cannot be assigned to a constant value