## ESourceBackend

ESourceBackend — Base class for backend-based data sources

## Synopsis

    #include <libedataserver/libedataserver.h>

    struct              ESourceBackend;
    struct              ESourceBackendClass;
    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);

## 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 {
    	ESourceExtension parent;
    	ESourceBackendPrivate *priv;
    };

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

Since 3.6

### struct ESourceBackendClass

    struct ESourceBackendClass {
    	ESourceExtensionClass parent_class;
    };

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