31#ifndef KEAAttributeTable_H
32#define KEAAttributeTable_H
40#include <highfive/highfive.hpp>
121 virtual int64_t
getIntField(
size_t fid,
const std::string &name)
const;
125 virtual uint8_t*
getWKBField(
size_t fid,
const std::string &name,
size_t &nWKBSize)
const;
133 virtual uint8_t*
getWKBField(
size_t fid,
size_t colIdx,
size_t &nWKBSize)
const;
136 virtual void getBoolFields(
size_t startfid,
size_t len,
size_t colIdx,
bool *pbBuffer)
const;
137 virtual void getIntFields(
size_t startfid,
size_t len,
size_t colIdx, int64_t *pnBuffer)
const;
138 virtual void getFloatFields(
size_t startfid,
size_t len,
size_t colIdx,
double *pfBuffer)
const;
139 virtual void getStringFields(
size_t startfid,
size_t len,
size_t colIdx, std::vector<std::string> *psBuffer)
const;
141 virtual void getWKBFields(
size_t startfid,
size_t len,
size_t colIdx, uint8_t **ppabyWKB,
size_t *pnWKBSize)
const;
142 virtual void getNeighbours(
size_t startfid,
size_t len, std::vector<std::vector<size_t>* > *neighbours)
const;
146 virtual void setIntField(
size_t fid,
size_t colIdx, int64_t value);
148 virtual void setStringField(
size_t fid,
size_t colIdx,
const std::string &value);
150 virtual void setWKBField(
size_t fid,
size_t colIdx, uint8_t *wkb,
size_t wkbsize);
153 virtual void setBoolFields(
size_t startfid,
size_t len,
size_t colIdx,
bool *pbBuffer);
154 virtual void setIntFields(
size_t startfid,
size_t len,
size_t colIdx, int64_t *pnBuffer);
155 virtual void setFloatFields(
size_t startfid,
size_t len,
size_t colIdx,
double *pfBuffer);
156 virtual void setStringFields(
size_t startfid,
size_t len,
size_t colIdx, std::vector<std::string> *papszStrList);
158 virtual void setWKBFields(
size_t startfid,
size_t len,
size_t colIdx, uint8_t **ppabyWKB,
size_t *pnWKBSize);
159 virtual void setNeighbours(
size_t startfid,
size_t len, std::vector<std::vector<size_t>* > *neighbours);
165 virtual void addAttBoolField(
const std::string &name,
bool val,
const std::string &usage=
"");
166 virtual void addAttIntField(
const std::string &name, int64_t val,
const std::string &usage=
"");
167 virtual void addAttFloatField(
const std::string &name,
double val,
const std::string &usage=
"");
168 virtual void addAttStringField(
const std::string &name,
const std::string &val,
const std::string &usage=
"");
170 virtual void addAttWKBField(
const std::string &name, uint8_t *pData,
size_t wkbsize,
const std::string &usage=
"");
172 virtual void addFields(std::vector<KEAATTField*> *inFields);
180 virtual bool hasField(
const std::string &name)
const;
209 static KEAAttributeTable*
createKeaAtt(HighFive::File *keaImg,
const std::shared_ptr<kealib::kea_mutex>& mutex,
unsigned int band,
unsigned int chunkSizeIn);
219 virtual void readNeighbours(
const HighFive::DataSet &dataset,
size_t startfid,
size_t len, std::vector<std::vector<size_t>* > *neighbours)
const;
220 virtual void writeNeighbours(
const HighFive::DataSet &dataset,
size_t startfid,
size_t len,
const std::vector<std::vector<size_t>* > *neighbours);
221 virtual HighFive::DataSet
createNeighboursDataset(HighFive::File *keaImg,
const std::string &datasetname,
unsigned int deflate);
223 std::map<std::string, KEAATTField> *
fields;
Definition KEAAttributeTable.h:114
virtual uint8_t * getWKBField(size_t fid, const std::string &name, size_t &nWKBSize) const
virtual uint8_t * getWKBField(size_t fid, size_t colIdx, size_t &nWKBSize) const
virtual void addRows(size_t numRows)
virtual KEAATTField getField(size_t globalColIdx) const
virtual void addField(KEAATTField *inFields)
size_t numDatetimeFields
Definition KEAAttributeTable.h:229
virtual void setWKBFields(size_t startfid, size_t len, size_t colIdx, uint8_t **ppabyWKB, size_t *pnWKBSize)
virtual size_t getNumFloatFields() const
virtual void getWKBFields(size_t startfid, size_t len, size_t colIdx, uint8_t **ppabyWKB, size_t *pnWKBSize) const
size_t numStringFields
Definition KEAAttributeTable.h:228
virtual size_t getNumIntFields() const
virtual size_t getTotalNumOfCols() const
virtual KEADateTime getDateTimeField(size_t fid, size_t colIdx) const
virtual double getFloatField(size_t fid, size_t colIdx) const
static HighFive::CompoundType createKeaDateTimeCompType()
virtual void printAttributeTableHeaderInfo()
virtual std::string getStringField(size_t fid, size_t colIdx) const
virtual void addAttDateTimeField(KEAATTField field, const KEADateTime &val)
virtual bool getBoolField(size_t fid, const std::string &name) const
virtual void setFloatFields(size_t startfid, size_t len, size_t colIdx, double *pfBuffer)
virtual void setBoolField(size_t fid, size_t colIdx, bool value)
virtual void addAttWKBField(const std::string &name, uint8_t *pData, size_t wkbsize, const std::string &usage="")
virtual size_t getNumWKBFields() const
virtual void getFloatFields(size_t startfid, size_t len, size_t colIdx, double *pfBuffer) const
size_t numBoolFields
Definition KEAAttributeTable.h:225
virtual double getFloatField(size_t fid, const std::string &name) const
virtual void getDateTimeFields(size_t startfid, size_t len, size_t colIdx, KEADateTime *pBuffer) const
virtual size_t getFieldIndex(const std::string &name) const
virtual KEAATTType getKEAATTType() const
size_t numRows
Definition KEAAttributeTable.h:232
virtual void addAttStringField(KEAATTField field, const std::string &val)
virtual int64_t getIntField(size_t fid, size_t colIdx) const
virtual void setWKBField(size_t fid, size_t colIdx, uint8_t *wkb, size_t wkbsize)
virtual void addAttIntField(KEAATTField field, int64_t val)
virtual void setDateTimeField(size_t fid, size_t colIdx, const KEADateTime &value)
virtual void setBoolFields(size_t startfid, size_t len, size_t colIdx, bool *pbBuffer)
virtual bool getBoolField(size_t fid, size_t colIdx) const
virtual size_t getChunkSize() const
virtual void addAttFloatField(const std::string &name, double val, const std::string &usage="")
virtual void addAttStringField(const std::string &name, const std::string &val, const std::string &usage="")
virtual void getStringFields(size_t startfid, size_t len, size_t colIdx, std::vector< std::string > *psBuffer) const
static HighFive::CompoundType createKeaStringCompType()
virtual KEAATTFeature * getFeature(size_t fid) const
virtual void addAttWKBField(KEAATTField field, uint8_t *pData, size_t wkbsize)
virtual size_t getSize() const
size_t numFloatFields
Definition KEAAttributeTable.h:227
virtual void setStringFields(size_t startfid, size_t len, size_t colIdx, std::vector< std::string > *papszStrList)
KEAATTType attType
Definition KEAAttributeTable.h:224
virtual KEAATTField getField(const std::string &name) const
virtual void setIntFields(size_t startfid, size_t len, size_t colIdx, int64_t *pnBuffer)
size_t numIntFields
Definition KEAAttributeTable.h:226
virtual void setStringField(size_t fid, size_t colIdx, const std::string &value)
virtual std::string getStringField(size_t fid, const std::string &name) const
virtual size_t getMaxGlobalColIdx() const
virtual void readNeighbours(const HighFive::DataSet &dataset, size_t startfid, size_t len, std::vector< std::vector< size_t > * > *neighbours) const
virtual void setIntField(size_t fid, size_t colIdx, int64_t value)
virtual int64_t getIntField(size_t fid, const std::string &name) const
virtual size_t getNumDateTimeFields() const
virtual void getNeighbours(size_t startfid, size_t len, std::vector< std::vector< size_t > * > *neighbours) const
virtual KEAATTFeature * createKeaFeature()
virtual void getBoolFields(size_t startfid, size_t len, size_t colIdx, bool *pbBuffer) const
virtual void addAttFloatField(KEAATTField field, float val)
virtual void addFields(std::vector< KEAATTField * > *inFields)
size_t numWKBFields
Definition KEAAttributeTable.h:230
virtual void addAttIntField(const std::string &name, int64_t val, const std::string &usage="")
virtual size_t getNumStringFields() const
static HighFive::CompoundType createAttributeIdxCompType()
virtual KEAFieldDataType getDataFieldType(const std::string &name) const
static KEAAttributeTable * createKeaAtt(HighFive::File *keaImg, const std::shared_ptr< kealib::kea_mutex > &mutex, unsigned int band, unsigned int chunkSizeIn)
virtual std::vector< std::string > getFieldNames() const
virtual void deleteKeaFeature(KEAATTFeature *feat)
virtual void setDateTimeFields(size_t startfid, size_t len, size_t colIdx, KEADateTime *pBuffer)
virtual void setNeighbours(size_t startfid, size_t len, std::vector< std::vector< size_t > * > *neighbours)
std::map< std::string, KEAATTField > * fields
Definition KEAAttributeTable.h:223
static void copyRAT(const KEAAttributeTable *pFrom, KEAAttributeTable *pTo)
virtual void addAttDateTimeField(const std::string &name, const KEADateTime &val, const std::string &usage="")
virtual void addAttBoolField(const std::string &name, bool val, const std::string &usage="")
std::string bandPathBase
Definition KEAAttributeTable.h:233
KEAAttributeTable(KEAATTType keaAttType, const std::shared_ptr< kealib::kea_mutex > &mutex)
virtual bool hasField(const std::string &name) const
virtual std::string getBandPathBase() const
virtual void writeNeighbours(const HighFive::DataSet &dataset, size_t startfid, size_t len, const std::vector< std::vector< size_t > * > *neighbours)
static void destroyAttributeTable(KEAAttributeTable *pTable)
virtual void getIntFields(size_t startfid, size_t len, size_t colIdx, int64_t *pnBuffer) const
virtual size_t getNumBoolFields() const
size_t numOfCols
Definition KEAAttributeTable.h:231
virtual void addAttBoolField(KEAATTField field, bool val)
size_t chunkSize
Definition KEAAttributeTable.h:234
virtual HighFive::DataSet createNeighboursDataset(HighFive::File *keaImg, const std::string &datasetname, unsigned int deflate)
virtual ~KEAAttributeTable()
virtual void setFloatField(size_t fid, size_t colIdx, double value)
virtual KEADateTime getDateTimeField(size_t fid, const std::string &name) const
Definition KEACommon.h:348
Definition KEAAttributeTable.h:45
KEAFieldDataType
Definition KEAAttributeTable.h:68
@ kea_att_string
Definition KEAAttributeTable.h:73
@ kea_att_wkb
Definition KEAAttributeTable.h:75
@ kea_att_bool
Definition KEAAttributeTable.h:70
@ kea_att_float
Definition KEAAttributeTable.h:72
@ kea_att_int
Definition KEAAttributeTable.h:71
@ kea_att_na
Definition KEAAttributeTable.h:69
@ kea_att_datetime
Definition KEAAttributeTable.h:74
KEAATTType
Definition KEAAttributeTable.h:48
@ kea_att_file
Definition KEAAttributeTable.h:51
@ kea_att_mem
Definition KEAAttributeTable.h:50
@ kea_att_undefined
Definition KEAAttributeTable.h:49
Definition KEAAttributeTable.h:57
std::vector< size_t > * neighbours
Definition KEAAttributeTable.h:64
std::vector< double > * floatFields
Definition KEAAttributeTable.h:61
size_t fid
Definition KEAAttributeTable.h:58
std::vector< int64_t > * intFields
Definition KEAAttributeTable.h:60
std::vector< bool > * boolFields
Definition KEAAttributeTable.h:59
std::vector< std::string > * strFields
Definition KEAAttributeTable.h:62
std::vector< KEADateTime > * datetimeFields
Definition KEAAttributeTable.h:63
Definition KEAAttributeTable.h:79
size_t idx
Definition KEAAttributeTable.h:82
std::string name
Definition KEAAttributeTable.h:80
KEAFieldDataType dataType
Definition KEAAttributeTable.h:81
size_t colNum
Definition KEAAttributeTable.h:84
std::string usage
Definition KEAAttributeTable.h:83
Definition KEAAttributeTable.h:96
char * str
Definition KEAAttributeTable.h:97
Definition KEAAttributeTable.h:88
uint32_t idx
Definition KEAAttributeTable.h:90
char * name
Definition KEAAttributeTable.h:89
char * usage
Definition KEAAttributeTable.h:91
uint32_t colNum
Definition KEAAttributeTable.h:92
Definition KEAAttributeTable.h:101
float second
Definition KEAAttributeTable.h:107
uint8_t month
Definition KEAAttributeTable.h:103
int16_t year
Definition KEAAttributeTable.h:102
uint8_t hour
Definition KEAAttributeTable.h:105
uint8_t day
Definition KEAAttributeTable.h:104
int8_t timezonehourby4
Definition KEAAttributeTable.h:108
uint8_t minute
Definition KEAAttributeTable.h:106