ESourceExtension: Evolution-Data-Server Reference Manual

## ESourceExtension ESourceExtension — Base class for ESource extensions |

## Functions

ESource * | e_source_extension_ref_source ()
ESource * | e_source_extension_get_source ()

## Types and Values

struct | ESourceExtension
struct | ESourceExtensionClass

## Includes

    #include <libedataserver/libedataserver.h>

## 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()`.

## Functions

### 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.

#### Parameters

extension | an ESourceExtension |

#### Returns

the ESource instance

Since: 3.8

### e_source_extension_get_source ()

    ESource *
    e_source_extension_get_source (ESourceExtension *extension);

`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.

#### Parameters

extension | an ESourceExtension |

#### Returns

the ESource instance.

[transfer none]

Since: 3.6

## Types and Values

### 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;
    };