managing interface for creating and filling point coordinates and attributes into a column based continuous memory buffer
More...
#include "IColBufferManagerWrite.hpp"
managing interface for creating and filling point coordinates and attributes into a column based continuous memory buffer
◆ getColumnBuffer()
virtual void* getColumnBuffer |
( |
unsigned |
col | ) |
|
|
pure virtual |
get the pointer to the corresponding column buffer
Will be called after the corresponding setSize and setColumnType calls. It is assumed that the returned pointer shows to an initialised and properly sized memory chunk, that can be filled. Note that null values do not change the corresponding memory byte(s).
◆ setColumnType()
virtual ColumnType setColumnType |
( |
unsigned |
col, |
|
|
ColumnType |
colType, |
|
|
const char * |
colLabel, |
|
|
bool |
useNoDataMask = false |
|
) |
| |
|
pure virtual |
communicating the column type and label
This function that will be called (by GenericConverter::initColBufferManager) for each column after the initial setSize function was called. The caller therefore communicates the type and label of each column that will be processed. The function must return the type of the internal columns buffer, which may differ from the provided type. However, only fixed size type are accepted:
DM::ColumnType | Memory Size and Representation |
int_ | 4 byte, signed integer |
uint_ | 4 byte, unsigned integer |
char_ | 1 byte, integer |
uchar_ | 1 byte, unsigned integer |
short_ | 2 byte, integer |
ushort_ | 2 byte, unsigned integer |
float_ | 4 byte, real |
double_ | 8 byte, real |
llong_ | 8 byte, signed integer |
Its the managers responsibility to create appropriate sized column buffers and that are initialise with appropriate null values, since the subsequent buffer filling doesn't write any null values are the corresponding memory positions.
- Parameters
-
[in] | col | current column index |
[in] | colType | DM type of the column/attribute |
[in] | colLabel | label of current column/attribute |
[in] | useNoDataMask | flag if a separate no data flag memory array is used instead of no data values |
- Returns
- element type of internal column buffer
◆ setSize()
virtual void setSize |
( |
unsigned |
cols, |
|
|
int64_t |
rows |
|
) |
| |
|
pure virtual |
initialise row buffers (first function that will be called by GenericConverter::initColBufferManager)
- Parameters
-
[in] | cols | number of column buffers that are required |
[in] | rows | number of elements each row buffer needs to provide |