## GogDataset

GogDataset — A data set interface

## Synopsis

                        GogDatasetElement;
    #define             GOG_DATASET_TYPE
    #define             GOG_DATASET                         (o)
    #define             IS_GOG_DATASET                      (o)
    #define             GOG_DATASET_CLASS                   (k)
    #define             IS_GOG_DATASET_CLASS                (k)
    #define             GOG_DATASET_GET_CLASS               (o)
    GType               gog_dataset_get_type                (void);
    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);

## Description

## Details

### GogDatasetElement

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

### GOG_DATASET_TYPE

    #define GOG_DATASET_TYPE		(gog_dataset_get_type ())

### GOG_DATASET()

    #define GOG_DATASET(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), GOG_DATASET_TYPE, GogDataset))

`o` : |

### IS_GOG_DATASET()

    #define IS_GOG_DATASET(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), GOG_DATASET_TYPE))

`o` : |

### GOG_DATASET_CLASS()

    #define GOG_DATASET_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST ((k), GOG_DATASET_TYPE, GogDatasetClass))

`k` : |

### IS_GOG_DATASET_CLASS()

    #define IS_GOG_DATASET_CLASS(k)		(G_TYPE_CHECK_CLASS_TYPE ((k), GOG_DATASET_TYPE))

`k` : |

### GOG_DATASET_GET_CLASS()

    #define GOG_DATASET_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_INTERFACE ((o), GOG_DATASET_TYPE, GogDatasetClass))

`o` : |

### gog_dataset_get_type ()

    GType               gog_dataset_get_type                (void);

Returns : |

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