## CamelSettings CamelSettings |

## Synopsis

    struct              CamelSettings;
    GParamSpec **       camel_settings_class_list_settings  (CamelSettingsClass *settings_class,
                                                             guint *n_settings);
    CamelSettings *     camel_settings_clone                (CamelSettings *settings);
    gboolean            camel_settings_equal                (CamelSettings *settings_a,
                                                             CamelSettings *settings_b);
    void                camel_settings_load_from_url        (CamelSettings *settings,
                                                             CamelURL *url);
    void                camel_settings_save_to_url          (CamelSettings *settings,
                                                             CamelURL *url);

## Object Hierarchy

      GObject
       +----CamelSettings
             +----CamelStoreSettings

## Known Derived Interfaces

CamelSettings is required by CamelNetworkSettings.

## Description

## Details

### struct CamelSettings

    struct CamelSettings;

Contains only private data that should be read and manipulated using the functions below.

Since 3.2

### camel_settings_class_list_settings ()

    GParamSpec **       camel_settings_class_list_settings  (CamelSettingsClass *settings_class,
                                                             guint *n_settings);

Returns an array of GParamSpec for properties of `class` which are considered to be settings. By default all properties are considered to be settings, but subclasses may wish to exclude certain properties. Free the returned array with `g_free()`.

`settings_class` : | a CamelSettingsClass
`n_settings` : | return location for the length of the returned array
Returns : | an array of GParamSpec which should be freed after use

Since 3.2

### camel_settings_clone ()

    CamelSettings *     camel_settings_clone                (CamelSettings *settings);

Creates an copy of `settings`, such that passing `settings` and the copied instance to `camel_settings_equal()` would return `TRUE`.

By default, this creates a new settings instance with the same GType as `settings`, and copies all GObject property values from `settings` to the new instance.

`settings` : | a CamelSettings
Returns : | a newly-created copy of `settings`

Since 3.2

### camel_settings_equal ()

    gboolean            camel_settings_equal                (CamelSettings *settings_a,
                                                             CamelSettings *settings_b);

Returns `TRUE` if `settings_a` and `settings_b` are equal.

By default, equality requires both instances to have the same GType with the same set of GObject properties, and each property value in `settings_a` is equal to the corresponding value in `settings_b`.

`settings_a` : | a CamelSettings
`settings_b` : | another CamelSettings
Returns : | `TRUE` if `settings_a` and `settings_b` are equal

Since 3.2

### camel_settings_load_from_url ()

    void                camel_settings_load_from_url        (CamelSettings *settings,
                                                             CamelURL *url);

Populates `settings` with parameters from `url`. The `url` parameter value is converted according to the GParamSpec for the corresponding property name in `settings`.

This function is highly Evolution-centric and is only temporary. Expect this function to be removed as early as version 3.4.

`settings` : | a CamelSettings
`url` : | a CamelURL

Since 3.2

### camel_settings_save_to_url ()

    void                camel_settings_save_to_url          (CamelSettings *settings,
                                                             CamelURL *url);

Writes the values of all properties of `settings` to `url` as parameter strings. The parameter name in `url` matches the corresponding property in `settings`.

This function is highly Evolution-centric and is only temporary. Expect this function to be removed as early as version 3.4.

`settings` : | a CamelSettings
`url` : | a CamelURL

Since 3.2