### Method

# EDataServer Source get_extension

since: 3.6

#### Declaration [src]

    EDataServerSourceExtension*
    e_source_get_extension (
      ESource* source,
      const gchar* extension_name
    )

#### Description [src]

Returns an instance of some `ESourceExtension` subclass which registered itself under `extension_name`. If no such instance exists within `source`, one will be created. It is the caller’s responsibility to know which subclass is being returned.

If you just want to test for the existence of an extension within `source` without creating it, use e_source_has_extension().

Extension instances are owned by their `ESource` and should not be referenced directly. Instead, reference the `ESource` instance and use this function to fetch the extension instance as needed.

Available since: 3.6

#### Parameters

`extension_name`

  Type: `const gchar*`

  An extension name.

  The data is owned by the caller of the method.
  The value is a NUL terminated UTF-8 string.

#### Return value

Type: `ESourceExtension`

An instance of some `ESourceExtension` subclass.

The returned data is owned by the instance.