### Interface

# Ide ToolchainProvider

#### Description

    interface Ide.ToolchainProvider : Ide.Object

No description available.

#### Prerequisite

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

#### Instance methods

###### ide_toolchain_provider_emit_added

`IdeToolchainProvider` implementations should call this function with a `toolchain` when it has discovered a new toolchain.

Available since: 3.32

###### ide_toolchain_provider_emit_removed

`IdeToolchainProvider` implementations should call this function with a `toolchain` when the toolchain was removed.

Available since: 3.32

###### ide_toolchain_provider_load_async

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

Available since: 3.32

###### ide_toolchain_provider_load_finish

Completes an asynchronous request to ide_toolchain_provider_load_async().

Available since: 3.32

###### ide_toolchain_provider_unload

No description available.

#### Signals

###### Ide.ToolchainProvider::added

No description available.

###### Ide.ToolchainProvider::removed

No description available.

#### Interface structure

    struct IdeToolchainProviderInterface {
      GTypeInterface parent_iface;
      void (* load_async) (
        IdeToolchainProvider* self,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      gboolean (* load_finish) (
        IdeToolchainProvider* self,
        GAsyncResult* result,
        GError** error
      );
      void (* unload) (
        IdeToolchainProvider* self,
        IdeToolchainManager* manager
      );
      void (* added) (
        IdeToolchainProvider* self,
        IdeToolchain* toolchain
      );
      void (* removed) (
        IdeToolchainProvider* self,
        IdeToolchain* toolchain
      );

    }

###### Interface members

`parent_iface` |
    GTypeInterface
| No description available.
`load_async` |
    void (* load_async) (
        IdeToolchainProvider* self,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      )
| No description available.
`load_finish` |
    gboolean (* load_finish) (
        IdeToolchainProvider* self,
        GAsyncResult* result,
        GError** error
      )
| No description available.
`unload` |
    void (* unload) (
        IdeToolchainProvider* self,
        IdeToolchainManager* manager
      )
| No description available.
`added` |
    void (* added) (
        IdeToolchainProvider* self,
        IdeToolchain* toolchain
      )
| No description available.
`removed` |
    void (* removed) (
        IdeToolchainProvider* self,
        IdeToolchain* toolchain
      )
| No description available.

#### Virtual methods

###### Ide.ToolchainProvider.added

No description available.

###### Ide.ToolchainProvider.load_async

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

###### Ide.ToolchainProvider.load_finish

Completes an asynchronous request to ide_toolchain_provider_load_async().

###### Ide.ToolchainProvider.removed

No description available.

###### Ide.ToolchainProvider.unload

No description available.