### Interface

# Ide ConfigProvider

#### Description

    interface Ide.ConfigProvider : Ide.Object

No description available.

#### Prerequisite

In order to implement ConfigProvider, your type must inherit from `IdeObject`.

#### Instance methods

###### ide_config_provider_delete

Requests that the configuration provider delete the configuration.

Available since: 3.32

###### ide_config_provider_duplicate

Requests that the configuration provider duplicate the configuration.

Available since: 3.32

###### ide_config_provider_emit_added

`IdeConfigProvider` implementations should call this function with a `config` when it has discovered a new configuration.

Available since: 3.32

###### ide_config_provider_emit_removed

`IdeConfigProvider` implementations should call this function with a `config` when it has discovered it was removed.

Available since: 3.32

###### ide_config_provider_load_async

This function is called to initialize the configuration provider after the plugin instance has been created. The provider should locate any build configurations within the project and call `ide_config_provider_emit_added()` before completing the asynchronous function so that the configuration manager may be made aware of the configurations.

Available since: 3.32

###### ide_config_provider_load_finish

Completes an asynchronous request to ide_config_provider_load_async().

Available since: 3.32

###### ide_config_provider_save_async

This function is called to request that the configuration provider persist any changed configurations back to disk.

Available since: 3.32

###### ide_config_provider_save_finish

Completes an asynchronous request to ide_config_provider_save_async().

Available since: 3.32

###### ide_config_provider_unload

Requests that the configuration provider unload any state. This is called shortly before the configuration provider is finalized.

Available since: 3.32

#### Signals

###### Ide.ConfigProvider::added

No description available.

###### Ide.ConfigProvider::removed

No description available.

#### Interface structure

    struct IdeConfigProviderInterface {
      GTypeInterface parent_iface;
      void (* added) (
        IdeConfigProvider* self,
        IdeConfig* config
      );
      void (* removed) (
        IdeConfigProvider* self,
        IdeConfig* config
      );
      void (* load_async) (
        IdeConfigProvider* self,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      gboolean (* load_finish) (
        IdeConfigProvider* self,
        GAsyncResult* result,
        GError** error
      );
      void (* save_async) (
        IdeConfigProvider* self,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      gboolean (* save_finish) (
        IdeConfigProvider* self,
        GAsyncResult* result,
        GError** error
      );
      void (* delete) (
        IdeConfigProvider* self,
        IdeConfig* config
      );
      void (* duplicate) (
        IdeConfigProvider* self,
        IdeConfig* config
      );
      void (* unload) (
        IdeConfigProvider* self
      );

    }

###### Interface members

`parent_iface` |
    GTypeInterface
| No description available.
`added` |
    void (* added) (
        IdeConfigProvider* self,
        IdeConfig* config
      )
| No description available.
`removed` |
    void (* removed) (
        IdeConfigProvider* self,
        IdeConfig* config
      )
| No description available.
`load_async` |
    void (* load_async) (
        IdeConfigProvider* self,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`load_finish` |
    gboolean (* load_finish) (
        IdeConfigProvider* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`save_async` |
    void (* save_async) (
        IdeConfigProvider* self,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`save_finish` |
    gboolean (* save_finish) (
        IdeConfigProvider* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`delete` |
    void (* delete) (
        IdeConfigProvider* self,
        IdeConfig* config
      )
| No description available.
`duplicate` |
    void (* duplicate) (
        IdeConfigProvider* self,
        IdeConfig* config
      )
| No description available.
`unload` |
    void (* unload) (
        IdeConfigProvider* self
      )
| No description available.

#### Virtual methods

###### Ide.ConfigProvider.added

No description available.

###### Ide.ConfigProvider.delete

Requests that the configuration provider delete the configuration.

###### Ide.ConfigProvider.duplicate

Requests that the configuration provider duplicate the configuration.

###### Ide.ConfigProvider.load_async

This function is called to initialize the configuration provider after the plugin instance has been created. The provider should locate any build configurations within the project and call `ide_config_provider_emit_added()` before completing the asynchronous function so that the configuration manager may be made aware of the configurations.

###### Ide.ConfigProvider.load_finish

Completes an asynchronous request to ide_config_provider_load_async().

###### Ide.ConfigProvider.removed

No description available.

###### Ide.ConfigProvider.save_async

This function is called to request that the configuration provider persist any changed configurations back to disk.

###### Ide.ConfigProvider.save_finish

Completes an asynchronous request to ide_config_provider_save_async().

###### Ide.ConfigProvider.unload

Requests that the configuration provider unload any state. This is called shortly before the configuration provider is finalized.