## GogDataset

GogDataset — A data set interface

## Synopsis

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

## Object Hierarchy

      GInterface
       +----GogDataset

## Known Implementations

GogDataset is implemented by GogAxis, GogLabel, GogRegCurve, GogSeries and GogAxisLine.

## Description

## Details

### GogDataset

    typedef struct _GogDataset GogDataset;

### GogDatasetElement

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

### gog_dataset_dims ()

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

FIXME: Returns the first and last valid indicises to get/set dim.

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

### gog_dataset_get_dim ()

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

`set` : | GogDataset
`dim_i` : |
Returns : | the GOData associated with dimension `dim_i`. Does NOT add a reference.

### 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
`err` : | GError

### gog_dataset_finalize ()

    void        gog_dataset_finalize            (GogDataset *set);

`set` : |

### gog_dataset_parent_changed ()

    void        gog_dataset_parent_changed      (GogDataset *set,
                                                 gboolean was_set);

`set` : |
`was_set` : |

### gog_dataset_get_elem ()

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

`set` : |
`dim_i` : |
Returns : |

### gog_dataset_set_dim_internal ()

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

and internal routine to handle signal setup and teardown

`set` : |
`dim_i` : |
`val` : |
`graph` : |

### gog_dataset_dup_to_simple ()

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

`src` : |
`dst` : |