## GogDataset

GogDataset

## Synopsis

                        GogDatasetClass;
                        GogDatasetElement;
    void                gog_dataset_dims                    (GogDataset const *set,
                                                             int *first,
                                                             int *last);
    void                gog_dataset_dup_to_simple           (GogDataset const *src,
                                                             GogDataset *dst);
    void                gog_dataset_finalize                (GogDataset *set);
    GOData *            gog_dataset_get_dim                 (GogDataset const *set,
                                                             int dim_i);
    GogDatasetElement * gog_dataset_get_elem                (GogDataset const *set,
                                                             int dim_i);
    void                gog_dataset_parent_changed          (GogDataset *set,
                                                             gboolean was_set);
    void                gog_dataset_set_dim                 (GogDataset *set,
                                                             int dim_i,
                                                             GOData *val,
                                                             GError **err);
    void                gog_dataset_set_dim_internal        (GogDataset *set,
                                                             int dim_i,
                                                             GOData *val,
                                                             GogGraph *graph);

## Description

## Details

### GogDatasetClass

    typedef struct {
    	GTypeInterface		   base;

    	GogDatasetElement *(*get_elem) (GogDataset const *set, int dim_i);
    	void (*set_dim)     (GogDataset *set, int dim_i,
    			     GOData *val, GError **err);
    	void (*dims)	    (GogDataset const *set, int *first, int *last);
    	void (*dim_changed) (GogDataset *set, int dim_i);
    } GogDatasetClass;

GTypeInterface `base`; |
`get_elem` () | gets i-th element.
`set_dim` () | sets the data for i-th element.
`dims` () | gest first and last valid elements indices.
`dim_changed` () | called when an element has changed.

### GogDatasetElement

    typedef struct {
    	GOData	   *data;
    	GogDataset *set;
    	int	    dim_i;
    } GogDatasetElement;

GOData *`data`; | the GOData
GogDataset *`set`; | the owner data set.
int `dim_i`; | the dimension iside the dataset.

### gog_dataset_dims ()

    void                gog_dataset_dims                    (GogDataset const *set,
                                                             int *first,
                                                             int *last);

FIXME ?? Fix what ?? Stores the first and last valid indicises to get/set dim in `first` and `last`.

`set` : | GogDataset
`first` : | inclusive
`last` : | _inclusive_

### gog_dataset_dup_to_simple ()

    void                gog_dataset_dup_to_simple           (GogDataset const *src,
                                                             GogDataset *dst);

### gog_dataset_finalize ()

    void                gog_dataset_finalize                (GogDataset *set);

### gog_dataset_get_dim ()

    GOData *            gog_dataset_get_dim                 (GogDataset const *set,
                                                             int dim_i);

`set` : | GogDataset
Returns : | the GOData associated with dimension `dim_i`. Does NOT add a reference. or `NULL` on failure. [transfer none]

### gog_dataset_get_elem ()

    GogDatasetElement * gog_dataset_get_elem                (GogDataset const *set,
                                                             int dim_i);

`set` : | GogDataset
Returns : | the GODataset associated with dimension `dim_i`.

### gog_dataset_parent_changed ()

    void                gog_dataset_parent_changed          (GogDataset *set,
                                                             gboolean was_set);

### gog_dataset_set_dim ()

    void                gog_dataset_set_dim                 (GogDataset *set,
                                                             int dim_i,
                                                             GOData *val,
                                                             GError **err);

Absorbs a ref to `val` if it is non NULL

`set` : | GogDataset
`dim_i` : | < 0 gets the name
`val` : | GOData. [transfer full]
`err` : | GError

### gog_dataset_set_dim_internal ()

    void                gog_dataset_set_dim_internal        (GogDataset *set,
                                                             int dim_i,
                                                             GOData *val,
                                                             GogGraph *graph);

an internal routine to handle signal setup and teardown

`set` : | GogDataset
`dim_i` : | the index
`val` : | GOData
`graph` : | GogGraph