GdaDataAccessWrapper — Offers a random access on top of a cursor-only access data model

Stability Level

Stable, unless otherwise indicated


GdaDataModel * model Read / Write / Construct Only

Object Hierarchy

    ╰── GdaDataAccessWrapper

Implemented Interfaces

GdaDataAccessWrapper implements GdaDataModel.


The GdaDataAccessWrapper object simply wraps another GdaDataModel data model object and allows data to be accessed in a random way while remaining memory efficient as much as possible.


gda_data_access_wrapper_new ()

GdaDataModel *
gda_data_access_wrapper_new (GdaDataModel *model);

Creates a new GdaDataModel object which buffers the rows of model . This object is useful only if model can only be accessed using cursor based method.



a GdaDataModel



a pointer to the newly created GdaDataModel.

[transfer full]

gda_data_access_wrapper_set_mapping ()

gda_data_access_wrapper_set_mapping (GdaDataAccessWrapper *wrapper,
                                     const gint *mapping,
                                     gint mapping_size);

wrapper will report as many columns as mapping_size , and for each value at position 'i' in mapping , wrapper will report the 'i'th column, mapped to the wrapped data model column at position mapping[i]. For example if mapping is {3, 4, 0}, then wrapper will report 3 columns, respectively mapped to the 4th, 5th and 1st columns of the wrapped data model (as column numbers start at 0).

If mapping is NULL, then no mapping is done and wrapper 's columns will be the same as the wrapped data model.

If a column in mapping does not exist in the wrapped data model, then it is simply ignored (no error reported).

Please note that if wrapper has already been used and if the wrapped data model offers a cursor forward access mode, then this method will return FALSE and no action will be done.

If the mapping is applied, then any existing iterator will be invalid, and wrapper is reset as if it had just been created.



a GdaDataAccessWrapper object



an array of gint which represents the mapping between wrapper 's columns and the columns of the wrapped data model.

[allow-none][array length=mapping_size]


the size of mapping .



TRUE if the mapping actually changed

Since 5.2

Types and Values

struct GdaDataAccessWrapper

struct GdaDataAccessWrapper;

struct GdaDataAccessWrapperClass

struct GdaDataAccessWrapperClass {
	GObjectClass                   parent_class;


typedef struct _GdaDataAccessWrapperPrivate GdaDataAccessWrapperPrivate;

Property Details

The “model” property

  “model”                    GdaDataModel *

Data model being wrapped.

Flags: Read / Write / Construct Only

See Also