IODA Bundle
odc::ReaderIterator Class Reference

#include <ReaderIterator.h>

Collaboration diagram for odc::ReaderIterator:
[legend]

Public Member Functions

 ReaderIterator (Reader &owner)
 
 ReaderIterator (Reader &owner, const eckit::PathName &)
 
 ~ReaderIterator ()
 
bool isNewDataset ()
 
const double * data () const
 
double * data ()
 
double & data (size_t)
 
bool operator!= (const ReaderIterator &other)
 
void property (std::string, std::string)
 
std::string property (std::string)
 
const core::Propertiesproperties () const
 
const core::MetaDatacolumns () const
 
const core::MetaDatacolumns (const core::MetaData &md)
 
void setNumberOfColumns (size_t n)
 
api::ColumnType columnType (unsigned long index)
 
const std::string & columnName (unsigned long index) const
 
const std::string & codecName (unsigned long index) const
 
double columnMissingValue (unsigned long index)
 
const eckit::sql::BitfieldDef & bitfieldDef (unsigned long index)
 
int32_t byteOrder () const
 
eckit::DataHandle * dataHandle ()
 
int close ()
 
bool next ()
 
size_t dataOffset (size_t i) const
 The offset of a given column in the doubles[] data array. More...
 
size_t rowDataSizeDoubles () const
 

Public Attributes

bool noMore_
 
int refCount_
 

Protected Member Functions

size_t readBuffer (size_t dataSize)
 
size_t rowDataSizeDoublesInternal () const
 
friend int ::odb_read_iterator_get_next_row (::oda_read_iterator *, int, double *, int *)
 

Private Member Functions

 ReaderIterator (const ReaderIterator &)
 
ReaderIteratoroperator= (const ReaderIterator &)
 
void initRowBuffer ()
 
bool loadHeaderAndBufferData ()
 

Private Attributes

Readerowner_
 
core::MetaData columns_
 
double * lastValues_
 
size_t * columnOffsets_
 
size_t rowDataSizeDoubles_
 
std::vector< core::Codec * > codecs_
 
unsigned long long nrows_
 
size_t rowsRemainingInTable_
 
std::unique_ptr< eckit::DataHandle > f_
 
core::Properties properties_
 
bool newDataset_
 
eckit::Buffer rowDataBuffer_
 
core::GeneralDataStream rowDataStream_
 
unsigned long headerCounter_
 
int32_t byteOrder_
 

Friends

class odc::Reader
 
class odc::IteratorProxy< odc::ReaderIterator, odc::Reader, const double >
 
class odc::sql::ODATableIterator
 
::oda_write_iteratorodb_create_write_iterator (::oda *, const char *, int *)
 

Detailed Description

Definition at line 43 of file ReaderIterator.h.

Constructor & Destructor Documentation

◆ ReaderIterator() [1/3]

odc::ReaderIterator::ReaderIterator ( Reader owner)

Definition at line 25 of file ReaderIterator.cc.

Here is the call graph for this function:

◆ ReaderIterator() [2/3]

odc::ReaderIterator::ReaderIterator ( Reader owner,
const eckit::PathName &   
)

◆ ~ReaderIterator()

odc::ReaderIterator::~ReaderIterator ( )

Definition at line 134 of file ReaderIterator.cc.

Here is the call graph for this function:

◆ ReaderIterator() [3/3]

odc::ReaderIterator::ReaderIterator ( const ReaderIterator )
private

Member Function Documentation

◆ bitfieldDef()

const eckit::sql::BitfieldDef & odc::ReaderIterator::bitfieldDef ( unsigned long  index)

Definition at line 265 of file ReaderIterator.cc.

◆ byteOrder()

int32_t odc::ReaderIterator::byteOrder ( ) const
inline

Definition at line 80 of file ReaderIterator.h.

◆ close()

int odc::ReaderIterator::close ( )

Definition at line 248 of file ReaderIterator.cc.

Here is the caller graph for this function:

◆ codecName()

const std::string & odc::ReaderIterator::codecName ( unsigned long  index) const

Definition at line 263 of file ReaderIterator.cc.

◆ columnMissingValue()

double odc::ReaderIterator::columnMissingValue ( unsigned long  index)

Definition at line 264 of file ReaderIterator.cc.

◆ columnName()

const std::string & odc::ReaderIterator::columnName ( unsigned long  index) const

Definition at line 262 of file ReaderIterator.cc.

◆ columns() [1/2]

const core::MetaData& odc::ReaderIterator::columns ( ) const
inline

Definition at line 63 of file ReaderIterator.h.

Here is the caller graph for this function:

◆ columns() [2/2]

const core::MetaData& odc::ReaderIterator::columns ( const core::MetaData md)
inline

Definition at line 64 of file ReaderIterator.h.

◆ columnType()

api::ColumnType odc::ReaderIterator::columnType ( unsigned long  index)

Definition at line 261 of file ReaderIterator.cc.

◆ data() [1/3]

double* odc::ReaderIterator::data ( )
inline

Definition at line 53 of file ReaderIterator.h.

Here is the caller graph for this function:

◆ data() [2/3]

const double* odc::ReaderIterator::data ( ) const
inline

Definition at line 52 of file ReaderIterator.h.

Here is the caller graph for this function:

◆ data() [3/3]

double & odc::ReaderIterator::data ( size_t  i)

Definition at line 242 of file ReaderIterator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dataHandle()

eckit::DataHandle * odc::ReaderIterator::dataHandle ( )

Definition at line 47 of file ReaderIterator.cc.

◆ dataOffset()

size_t odc::ReaderIterator::dataOffset ( size_t  i) const
inline

The offset of a given column in the doubles[] data array.

Definition at line 89 of file ReaderIterator.h.

Here is the caller graph for this function:

◆ initRowBuffer()

void odc::ReaderIterator::initRowBuffer ( )
private

Definition at line 150 of file ReaderIterator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ int ::odb_read_iterator_get_next_row()

odc::ReaderIterator::int ::odb_read_iterator_get_next_row ( ::oda_read_iterator ,
int  ,
double *  ,
int *   
)
protected

◆ isNewDataset()

bool odc::ReaderIterator::isNewDataset ( )

Definition at line 240 of file ReaderIterator.cc.

Here is the caller graph for this function:

◆ loadHeaderAndBufferData()

bool odc::ReaderIterator::loadHeaderAndBufferData ( )
private

Definition at line 74 of file ReaderIterator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ next()

bool odc::ReaderIterator::next ( )

Definition at line 204 of file ReaderIterator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!=()

bool odc::ReaderIterator::operator!= ( const ReaderIterator other)

Definition at line 144 of file ReaderIterator.cc.

◆ operator=()

ReaderIterator& odc::ReaderIterator::operator= ( const ReaderIterator )
private

◆ properties()

const core::Properties& odc::ReaderIterator::properties ( ) const
inline

Definition at line 61 of file ReaderIterator.h.

◆ property() [1/2]

std::string odc::ReaderIterator::property ( std::string  key)

Definition at line 255 of file ReaderIterator.cc.

◆ property() [2/2]

void odc::ReaderIterator::property ( std::string  ,
std::string   
)

◆ readBuffer()

size_t odc::ReaderIterator::readBuffer ( size_t  dataSize)
protected

Definition at line 174 of file ReaderIterator.cc.

Here is the caller graph for this function:

◆ rowDataSizeDoubles()

size_t odc::ReaderIterator::rowDataSizeDoubles ( ) const
inline

Definition at line 92 of file ReaderIterator.h.

Here is the caller graph for this function:

◆ rowDataSizeDoublesInternal()

size_t odc::ReaderIterator::rowDataSizeDoublesInternal ( ) const
protected

Definition at line 230 of file ReaderIterator.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setNumberOfColumns()

void odc::ReaderIterator::setNumberOfColumns ( size_t  n)
inline

Definition at line 65 of file ReaderIterator.h.

Here is the call graph for this function:

Friends And Related Function Documentation

◆ odb_create_write_iterator

::oda_write_iterator* odb_create_write_iterator ( ::oda ,
const char *  ,
int *   
)
friend

◆ odc::IteratorProxy< odc::ReaderIterator, odc::Reader, const double >

friend class odc::IteratorProxy< odc::ReaderIterator, odc::Reader, const double >
friend

Definition at line 138 of file ReaderIterator.h.

◆ odc::Reader

friend class odc::Reader
friend

Definition at line 138 of file ReaderIterator.h.

◆ odc::sql::ODATableIterator

friend class odc::sql::ODATableIterator
friend

Definition at line 140 of file ReaderIterator.h.

Member Data Documentation

◆ byteOrder_

int32_t odc::ReaderIterator::byteOrder_
private

Definition at line 128 of file ReaderIterator.h.

◆ codecs_

std::vector<core::Codec*> odc::ReaderIterator::codecs_
private

Definition at line 111 of file ReaderIterator.h.

◆ columnOffsets_

size_t* odc::ReaderIterator::columnOffsets_
private

Definition at line 109 of file ReaderIterator.h.

◆ columns_

core::MetaData odc::ReaderIterator::columns_
private

Definition at line 107 of file ReaderIterator.h.

◆ f_

std::unique_ptr<eckit::DataHandle> odc::ReaderIterator::f_
private

Definition at line 115 of file ReaderIterator.h.

◆ headerCounter_

unsigned long odc::ReaderIterator::headerCounter_
private

Definition at line 127 of file ReaderIterator.h.

◆ lastValues_

double* odc::ReaderIterator::lastValues_
private

Definition at line 108 of file ReaderIterator.h.

◆ newDataset_

bool odc::ReaderIterator::newDataset_
private

Definition at line 118 of file ReaderIterator.h.

◆ noMore_

bool odc::ReaderIterator::noMore_

Definition at line 124 of file ReaderIterator.h.

◆ nrows_

unsigned long long odc::ReaderIterator::nrows_
private

Definition at line 112 of file ReaderIterator.h.

◆ owner_

Reader& odc::ReaderIterator::owner_
private

Definition at line 106 of file ReaderIterator.h.

◆ properties_

core::Properties odc::ReaderIterator::properties_
private

Definition at line 116 of file ReaderIterator.h.

◆ refCount_

int odc::ReaderIterator::refCount_

Definition at line 131 of file ReaderIterator.h.

◆ rowDataBuffer_

eckit::Buffer odc::ReaderIterator::rowDataBuffer_
private

Definition at line 120 of file ReaderIterator.h.

◆ rowDataSizeDoubles_

size_t odc::ReaderIterator::rowDataSizeDoubles_
private

Definition at line 110 of file ReaderIterator.h.

◆ rowDataStream_

core::GeneralDataStream odc::ReaderIterator::rowDataStream_
private

Definition at line 121 of file ReaderIterator.h.

◆ rowsRemainingInTable_

size_t odc::ReaderIterator::rowsRemainingInTable_
private

Definition at line 113 of file ReaderIterator.h.


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