Top |
GdaDataAccessWrapperGdaDataAccessWrapper — Offers a random access on top of a cursor-only access data model |
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.
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.
gboolean 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.
wrapper |
a GdaDataAccessWrapper object |
|
mapping |
an array of gint which represents the mapping between |
[allow-none][array length=mapping_size] |
mapping_size |
the size of |
Since: 5.2
“model”
property“model” GdaDataModel *
Data model being wrapped.
Owner: GdaDataAccessWrapper
Flags: Read / Write / Construct Only