## GdaDataModelArray GdaDataModelArray — An implementation of GdaDataModel based on a GArray. |

## Synopsis

                        GdaDataModelArray;
                        GdaDataModelArrayClass;
                        GdaDataModelArrayPrivate;
    GdaDataModel*       gda_data_model_array_new            (gint cols);
    GdaDataModel*       gda_data_model_array_new_with_g_types
                                                            (gint cols,
                                                             ...);
    GdaDataModel*       gda_data_model_array_copy_model     (GdaDataModel *src,
                                                             GError **error);
    void                gda_data_model_array_set_n_columns  (GdaDataModelArray *model,
                                                             gint cols);
    void                gda_data_model_array_clear          (GdaDataModelArray *model);

## Object Hierarchy

      GObject
       +----GdaObject
             +----GdaDataModelRow
                   +----GdaDataModelArray
                         +----GdaDataModelFilterSQL

## Implemented Interfaces

GdaDataModelArray implements GdaDataModel.

## Properties

      "n-columns"                guint                 : Read / Write

## Description

The GdaDataModelArray object is a data model which internally uses a GArray to index all its rows (represented as GdaRow objects). In this data model, all the data is stored in memory, which can be a memory limitation if the number of rows is huge.

This type of data model is easy to use to store some temporary data, and has a random access mode (any value can be accessed at any time without the need for an iterator).

## Details

### GdaDataModelArray

    typedef struct _GdaDataModelArray GdaDataModelArray;

### GdaDataModelArrayClass

    typedef struct {
    	GdaDataModelRowClass parent_class;
    } GdaDataModelArrayClass;

### GdaDataModelArrayPrivate

    typedef struct _GdaDataModelArrayPrivate GdaDataModelArrayPrivate;

### gda_data_model_array_new ()

    GdaDataModel*       gda_data_model_array_new            (gint cols);

Creates a new GdaDataModel object without initializing the column types. Using `gda_data_model_array_new_with_g_types()` is usually better.

`cols` : | number of columns for rows in this data model.
Returns : | a pointer to the newly created GdaDataModel.

### gda_data_model_array_new_with_g_types ()

    GdaDataModel*       gda_data_model_array_new_with_g_types
                                                            (gint cols,
                                                             ...);

Creates a new GdaDataModel object with the column types as specified.

`cols` : | number of columns for rows in this data model.
`...` : | types of the columns of the model to create as GType
Returns : | a pointer to the newly created GdaDataModel.

### gda_data_model_array_copy_model ()

    GdaDataModel*       gda_data_model_array_copy_model     (GdaDataModel *src,
                                                             GError **error);

Makes a copy of `src` into a new GdaDataModelArray object

`src` : | a GdaDataModel to copy data from
`error` : | a place to store errors, or `NULL`
Returns : | a new data model, or `NULL` if an error occurred

### gda_data_model_array_set_n_columns ()

    void                gda_data_model_array_set_n_columns  (GdaDataModelArray *model,
                                                             gint cols);

Sets the number of columns for rows inserted in this model. `cols` must be greated than or equal to 0.

Also clears `model`'s contents.

`model` : | the GdaDataModelArray.
`cols` : | number of columns for rows this data model should use.

### gda_data_model_array_clear ()

    void                gda_data_model_array_clear          (GdaDataModelArray *model);

Frees all the rows in `model`.

`model` : | the model to clear.

## Property Details

### The `"n-columns"` property

      "n-columns"                guint                 : Read / Write

The number of columns in the model.

Default value: 0