## ESourceExtension

ESourceExtension — Base class for ESource extensions

## Synopsis

    #include <libedataserver/libedataserver.h>

    struct              ESourceExtension;
    struct              ESourceExtensionClass;
    ESource *           e_source_extension_ref_source       (ESourceExtension *extension);
    ESource *           e_source_extension_get_source       (ESourceExtension *extension);

## Description

ESourceExtension is an abstract base class for ESource extension objects. An ESourceExtension object basically just maps the keys in a key file group to a set of GObject properties. The name of the key file group doubles as the name of the ESourceExtension object.

ESourceExtension objects are accessed through `e_source_get_extension()`.

## Details

### struct ESourceExtension

    struct ESourceExtension {
    	GObject parent;
    	ESourceExtensionPrivate *priv;
    };

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

Since 3.6

### struct ESourceExtensionClass

    struct ESourceExtensionClass {
    	GObjectClass parent_class;

    	const gchar *name;
    };

### e_source_extension_ref_source ()

    ESource *           e_source_extension_ref_source       (ESourceExtension *extension);

Returns the ESource instance to which the `extension` belongs.

The returned ESource is referenced for thread-safety. Unreference the ESource with `g_object_unref()` when finished with it.

`extension` : | an ESourceExtension
Returns : | the ESource instance

Since 3.8

### e_source_extension_get_source ()

    ESource *           e_source_extension_get_source       (ESourceExtension *extension);

### Warning

`e_source_extension_get_source` has been deprecated since version 3.8 and should not be used in newly-written code. Use `e_source_extension_ref_source()` instead.

Returns the ESource instance to which `extension` belongs.

Note this function is not thread-safe. The returned ESource could be finalized by another thread while the caller is still using it.

`extension` : | an ESourceExtension
Returns : | the ESource instance. [transfer none]

Since 3.6