## GogDataset GogDataset |

## Synopsis

                        GogDataset;
                        GogDatasetClass;
                        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 GogRegCurve, GogAxis, GogLabel, GogSeries and GogAxisLine.

## Description

## Details

### GogDataset

    typedef struct _GogDataset GogDataset;

### 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;

### 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);

an internal routine to handle signal setup and teardown

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

### gog_dataset_dup_to_simple ()

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

`src` : |
`dst` : |