16 #ifndef ReaderIterator_H
17 #define ReaderIterator_H
23 namespace eckit {
class PathName; }
24 namespace eckit {
class DataHandle; }
35 namespace core {
class Codec; }
36 namespace sql {
class ODATableIterator; }
69 void writeHeader() { NOTIMP; }
70 int setBitfieldColumn(
size_t,
const std::string&,
api::ColumnType, eckit::sql::BitfieldDef) { NOTIMP; }
71 void missingValue(
size_t,
double) { NOTIMP; }
75 const std::string&
columnName(
unsigned long index)
const;
76 const std::string&
codecName(
unsigned long index)
const;
78 const eckit::sql::BitfieldDef&
bitfieldDef(
unsigned long index);
115 std::unique_ptr<eckit::DataHandle>
f_;
int odb_read_iterator_get_next_row(oda_read_iterator *, int, double *, int *)
oda_write_iterator * odb_create_write_iterator(oda *, const char *, int *)
int32_t byteOrder() const
std::unique_ptr< eckit::DataHandle > f_
const std::string & codecName(unsigned long index) const
const core::Properties & properties() const
size_t rowDataSizeDoubles_
ReaderIterator(Reader &owner)
eckit::Buffer rowDataBuffer_
size_t rowDataSizeDoublesInternal() const
const std::string & columnName(unsigned long index) const
friend ::oda_write_iterator * odb_create_write_iterator(::oda *, const char *, int *)
bool operator!=(const ReaderIterator &other)
size_t rowsRemainingInTable_
friend class odc::sql::ODATableIterator
std::vector< core::Codec * > codecs_
const eckit::sql::BitfieldDef & bitfieldDef(unsigned long index)
api::ColumnType columnType(unsigned long index)
unsigned long long nrows_
void property(std::string, std::string)
const double * data() const
size_t dataOffset(size_t i) const
The offset of a given column in the doubles[] data array.
unsigned long headerCounter_
size_t readBuffer(size_t dataSize)
core::Properties properties_
const core::MetaData & columns() const
ReaderIterator(Reader &owner, const eckit::PathName &)
bool loadHeaderAndBufferData()
size_t rowDataSizeDoubles() const
double columnMissingValue(unsigned long index)
ReaderIterator & operator=(const ReaderIterator &)
core::GeneralDataStream rowDataStream_
eckit::DataHandle * dataHandle()
ReaderIterator(const ReaderIterator &)
void setNumberOfColumns(size_t n)
const core::MetaData & columns(const core::MetaData &md)
std::map< std::string, std::string > Properties