IColBufferManagerRead Class Referenceabstract

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

#include "IColBufferManagerRead.hpp"

+ Inheritance diagram for IColBufferManagerRead:

Public Member Functions

virtual int64_t getRows () const =0
 
virtual int64_t getColumns () const =0
 
virtual ColumnType getColumnType (unsigned col) const =0
 get internal column type More...
 
virtual const IValueTranslatorgetTranslator (unsigned col) const =0
 get optional translator object for translating values before setting
 
virtual const void * getColumnBuffer (unsigned col) const =0
 get the pointer to the corresponding column buffer More...
 
virtual unsigned getStride (unsigned col) const =0
 get stride size between subsequent elements in the 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 const void* getColumnBuffer ( unsigned  col) const
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).

◆ getColumnType()

virtual ColumnType getColumnType ( unsigned  col) const
pure virtual

get internal column type

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
Returns
element type of internal column buffer

◆ getStride()

virtual unsigned getStride ( unsigned  col) const
pure virtual

get stride size between subsequent elements in the column buffer

In case of continuous memory array the stride size is equal to the element size (in bytes)