## 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 ?? 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_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. or `NULL` on failure.

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