# gda-config

## Name

gda-config -- Access/Management of libgda configuration

## Synopsis

    gchar*      gda_config_get_string           (const gchar *path);
    gint        gda_config_get_int              (const gchar *path);
    gdouble     gda_config_get_float            (const gchar *path);
    gboolean    gda_config_get_boolean          (const gchar *path);
    void        gda_config_set_string           (const gchar *path,
                                                 const gchar *new_value);
    void        gda_config_set_int              (const gchar *path,
                                                 gint new_value);
    void        gda_config_set_float            (const gchar *path,
                                                 gdouble new_value);
    void        gda_config_set_boolean          (const gchar *path,
                                                 gboolean new_value);
    void        gda_config_remove_section       (const gchar *path);
    void        gda_config_remove_key           (const gchar *path);
    gboolean    gda_config_has_section          (const gchar *path);
    gboolean    gda_config_has_key              (const gchar *path);
    GList*      gda_config_list_sections        (const gchar *path);
    GList*      gda_config_list_keys            (const gchar *path);
    gchar*      gda_config_get_type             (const gchar *path);
    void        gda_config_free_list            (GList *list);
    void        (*GdaConfigListenerFunc)        (const gchar *path,
                                                 gpointer user_data);
    guint       gda_config_add_listener         (const gchar *path,
                                                 GdaConfigListenerFunc func,
                                                 gpointer user_data);
    void        gda_config_remove_listener      (guint id);
    typedef     GdaProviderInfo;
    GList*      gda_config_get_provider_list    (void);
    void        gda_config_free_provider_list   (GList *list);
    GdaProviderInfo* gda_config_get_provider_by_name
                                                (const gchar *name);
    void        gda_config_free_provider_info   (GdaProviderInfo *provider_info);
    typedef     GdaDataSourceInfo;
    GList*      gda_config_get_data_source_list (void);
    GdaDataSourceInfo* gda_config_find_data_source
                                                (const gchar *name);
    GdaDataSourceInfo* gda_config_copy_data_source_info
                                                (GdaDataSourceInfo *info);
    void        gda_config_free_data_source_info
                                                (GdaDataSourceInfo *info);
    void        gda_config_free_data_source_list
                                                (GList *list);
    GdaDataModel* gda_config_get_data_source_model
                                                (void);
    void        gda_config_save_data_source     (const gchar *name,
                                                 const gchar *provider,
                                                 const gchar *cnc_string,
                                                 const gchar *description,
                                                 const gchar *username,
                                                 const gchar *password);
    void        gda_config_remove_data_source   (const gchar *name);
    #define     GDA_CONFIG_BASE
    #define     GDA_CONFIG_SECTION_DATASOURCES
    #define     GDA_CONFIG_SECTION_LAST_CONNECTIONS
    #define     GDA_CONFIG_KEY_MAX_LAST_CONNECTIONS

## Description

## Details

### gda_config_get_string ()

    gchar*      gda_config_get_string           (const gchar *path);

Gets the value of the specified configuration entry as a string. You are then responsible to free the returned string

`path` : | path to the configuration entry
Returns : | the value stored at the given entry

### gda_config_get_int ()

    gint        gda_config_get_int              (const gchar *path);

Gets the value of the specified configuration entry as an integer

`path` : | path to the configuration entry
Returns : | the value stored at the given entry

### gda_config_get_float ()

    gdouble     gda_config_get_float            (const gchar *path);

Gets the value of the specified configuration entry as a float

`path` : | path to the configuration entry
Returns : | the value stored at the given entry

### gda_config_get_boolean ()

    gboolean    gda_config_get_boolean          (const gchar *path);

Gets the value of the specified configuration entry as a boolean

`path` : | path to the configuration entry
Returns : | the value stored at the given entry

### gda_config_set_string ()

    void        gda_config_set_string           (const gchar *path,
                                                 const gchar *new_value);

Sets the given configuration entry to contain a string

`path` : | path to the configuration entry
`new_value` : | new value

### gda_config_set_int ()

    void        gda_config_set_int              (const gchar *path,
                                                 gint new_value);

Sets the given configuration entry to contain an integer

`path` : | path to the configuration entry
`new_value` : | new value

### gda_config_set_float ()

    void        gda_config_set_float            (const gchar *path,
                                                 gdouble new_value);

Sets the given configuration entry to contain a float

`path` : | path to the configuration entry
`new_value` : | new value

### gda_config_set_boolean ()

    void        gda_config_set_boolean          (const gchar *path,
                                                 gboolean new_value);

Sets the given configuration entry to contain a boolean

`path` : | path to the configuration entry
`new_value` : | new value

### gda_config_remove_section ()

    void        gda_config_remove_section       (const gchar *path);

Remove the given section from the configuration database

`path` : | path to the configuration section

### gda_config_remove_key ()

    void        gda_config_remove_key           (const gchar *path);

Remove the given entry from the configuration database If the section is empty, also remove the section.

`path` : | path to the configuration entry

### gda_config_has_section ()

    gboolean    gda_config_has_section          (const gchar *path);

Checks whether the given section exists in the configuration system

`path` : | path to the configuration section
Returns : | TRUE if the section exists, FALSE otherwise

### gda_config_has_key ()

    gboolean    gda_config_has_key              (const gchar *path);

Check whether the given key exists in the configuration system

`path` : | path to the configuration key
Returns : | TRUE if the entry exists, FALSE otherwise

### gda_config_list_sections ()

    GList*      gda_config_list_sections        (const gchar *path);

Return a GList containing the names of all the sections available under the given root directory.

To free the returned value, you can use gda_config_free_list

`path` : | path for root dir
Returns : | a list containing all the section names

### gda_config_list_keys ()

    GList*      gda_config_list_keys            (const gchar *path);

Returns a list of all keys that exist under the given path.

To free the returned value, you can use gda_config_free_list

`path` : | path for root dir
Returns : | a list containing all the key names

### gda_config_get_type ()

    gchar*      gda_config_get_type             (const gchar *path);

Gets a string representing the type of the value of the given key. The caller is responsible of freeing the returned value.

`path` : | path to the configuration key
Returns : | NULL if not found. Otherwise: "string", "float", "long", "bool".

### gda_config_free_list ()

    void        gda_config_free_list            (GList *list);

Free all memory used by the given GList, which must be the return value from either gda_config_list_sections and gda_config_list_keys

`list` : | list to be freed

### GdaConfigListenerFunc ()

    void        (*GdaConfigListenerFunc)        (const gchar *path,
                                                 gpointer user_data);

`path` : |
`user_data` : |

### gda_config_add_listener ()

    guint       gda_config_add_listener         (const gchar *path,
                                                 GdaConfigListenerFunc func,
                                                 gpointer user_data);

Installs a configuration listener, which is a callback function which will be called every time a change occurs on a given configuration entry.

`path` : | configuration path to listen to.
`func` : | callback function.
`user_data` : | data to be passed to the callback function.
Returns : | the ID of the listener, which you will need for calling gda_config_remove_listener. If an error occurs, 0 is returned.

### gda_config_remove_listener ()

    void        gda_config_remove_listener      (guint id);

`id` : |

### GdaProviderInfo

    typedef struct {
    	gchar *id;
    	gchar *location;
    	gchar *description;
    	GList *gda_params;
    } GdaProviderInfo;

### gda_config_get_provider_list ()

    GList*      gda_config_get_provider_list    (void);

Return a list of all providers currently installed in the system. Each of the nodes in the returned GList is a GdaProviderInfo. To free the returned list, call the gda_config_free_provider_list function.

Returns : | a GList of GdaProviderInfo structures.

### gda_config_free_provider_list ()

    void        gda_config_free_provider_list   (GList *list);

Free a list of GdaProviderInfo structures.

`list` : | the list to be freed.

### gda_config_get_provider_by_name ()

    GdaProviderInfo* gda_config_get_provider_by_name
                                                (const gchar *name);

`name` : |
Returns : |

### gda_config_free_provider_info ()

    void        gda_config_free_provider_info   (GdaProviderInfo *provider_info);

`provider_info` : |

### GdaDataSourceInfo

    typedef struct {
    	gchar *name;
    	gchar *provider;
    	gchar *cnc_string;
    	gchar *description;
    	gchar *username;
    	gchar *password;
    } GdaDataSourceInfo;

### gda_config_get_data_source_list ()

    GList*      gda_config_get_data_source_list (void);

Returns : |

### gda_config_find_data_source ()

    GdaDataSourceInfo* gda_config_find_data_source
                                                (const gchar *name);

`name` : |
Returns : |

### gda_config_copy_data_source_info ()

    GdaDataSourceInfo* gda_config_copy_data_source_info
                                                (GdaDataSourceInfo *info);

`info` : |
Returns : |

### gda_config_free_data_source_info ()

    void        gda_config_free_data_source_info
                                                (GdaDataSourceInfo *info);

`info` : |

### gda_config_free_data_source_list ()

    void        gda_config_free_data_source_list
                                                (GList *list);

`list` : |

### gda_config_get_data_source_model ()

    GdaDataModel* gda_config_get_data_source_model
                                                (void);

Returns : |

### gda_config_save_data_source ()

    void        gda_config_save_data_source     (const gchar *name,
                                                 const gchar *provider,
                                                 const gchar *cnc_string,
                                                 const gchar *description,
                                                 const gchar *username,
                                                 const gchar *password);

Adds a new data source (or update an existing one) to the GDA configuration, based on the parameters given.

`name` : | Name for the data source to be saved.
`provider` : | Provider ID for the new data source.
`cnc_string` : | Connection string for the new data source.
`description` : | Description for the new data source.
`username` : | User name for the new data source.
`password` : | Password to use when authenticating `username`.

### gda_config_remove_data_source ()

    void        gda_config_remove_data_source   (const gchar *name);

Removes the given data source from the GDA configuration.

`name` : | Name for the data source to be removed.

### GDA_CONFIG_BASE

    #define GDA_CONFIG_BASE			     "/apps/libgda"

### GDA_CONFIG_SECTION_DATASOURCES

    #define GDA_CONFIG_SECTION_DATASOURCES       "/apps/libgda/Datasources"

### GDA_CONFIG_SECTION_LAST_CONNECTIONS

    #define GDA_CONFIG_SECTION_LAST_CONNECTIONS  "/apps/libgda/LastConnections"

### GDA_CONFIG_KEY_MAX_LAST_CONNECTIONS

    #define GDA_CONFIG_KEY_MAX_LAST_CONNECTIONS  "/apps/libgda/MaxLastConnections"