IColBufferManagerWrite Class Referenceabstract

managing interface for creating and filling point coordinates and attributes into a column based continuous memory buffer More...

#include "IColBufferManagerWrite.hpp"

+ Inheritance diagram for IColBufferManagerWrite:

Public Member Functions

virtual void setSize (unsigned cols, int64_t rows)=0
 initialise row buffers (first function that will be called by GenericConverter::initColBufferManager) More...
 
virtual ColumnType setColumnType (unsigned col, ColumnType colType, const char *colLabel)=0
 communicating the column type and label More...
 
virtual void * getColumnBuffer (unsigned col)=0
 get the pointer to the corresponding column buffer More...
 
- Public Member Functions inherited from ObjectBase
virtual void Delete ()
 

Detailed Description

managing interface for creating and filling point coordinates and attributes into a column based continuous memory buffer

Member Function Documentation

◆ 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 
)
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]colcurrent column index
[in]colTypeDM type of the column/attribute
[in]colLabellabel of current column/attribute
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]colsnumber of column buffers that are required
[in]rowsnumber of elements each row buffer needs to provide