## ESourceBackend ESourceBackend — Base class for backend-based data sources |

## Synopsis

    #include <libedataserver/libedataserver.h>

    struct              ESourceBackend;
    const gchar *       e_source_backend_get_backend_name   (ESourceBackend *extension);
    gchar *             e_source_backend_dup_backend_name   (ESourceBackend *extension);
    void                e_source_backend_set_backend_name   (ESourceBackend *extension,
                                                             const gchar *backend_name);

## Object Hierarchy

      GObject
       +----ESourceExtension
             +----ESourceBackend
                   +----ESourceAddressBook
                   +----ESourceSelectable
                   +----ESourceCollection
                   +----ESourceMailAccount
                   +----ESourceMailTransport

## Properties

      "backend-name"             gchar*                : Read / Write / Construct

## Description

ESourceBackend is an abstract base class for data sources requiring an associated backend to function. The extension merely records the name of the backend the data source should be paired with.

## Details

### struct ESourceBackend

    struct ESourceBackend;

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

Since 3.6

### e_source_backend_get_backend_name ()

    const gchar *       e_source_backend_get_backend_name   (ESourceBackend *extension);

Returns the backend name for `extension`.

`extension` : | an ESourceBackend
Returns : | the backend name for `extension`

Since 3.6

### e_source_backend_dup_backend_name ()

    gchar *             e_source_backend_dup_backend_name   (ESourceBackend *extension);

Thread-safe variation of `e_source_backend_get_backend_name()`. Use this function when accessing `extension` from multiple threads.

The returned string should be freed with `g_free()` when no longer needed.

`extension` : | an ESourceBackend
Returns : | a newly-allocated copy of "backend-name"

Since 3.6

### e_source_backend_set_backend_name ()

    void                e_source_backend_set_backend_name   (ESourceBackend *extension,
                                                             const gchar *backend_name);

Sets the backend name for `extension`.

The internal copy of `backend_name` is automatically stripped of leading and trailing whitespace. If the resulting string is empty, `NULL` is set instead.

`extension` : | an ESourceBackend
`backend_name` : | a backend name, or `NULL`. [allow-none]

Since 3.6

## Property Details

### The `"backend-name"` property

      "backend-name"             gchar*                : Read / Write / Construct

The name of the backend handling the data source.

Default value: NULL