## EShellBackend EShellBackend — dynamically loaded capabilities |

## Functions

gint | e_shell_backend_compare ()
const gchar * | e_shell_backend_get_config_dir ()
const gchar * | e_shell_backend_get_data_dir ()
struct _EShell * | e_shell_backend_get_shell ()
void | e_shell_backend_add_activity ()
gboolean | e_shell_backend_is_busy ()
void | e_shell_backend_set_prefer_new_item ()
const gchar * | e_shell_backend_get_prefer_new_item ()
void | e_shell_backend_cancel_all ()
void | e_shell_backend_start ()
gboolean | e_shell_backend_is_started ()
gboolean | e_shell_backend_migrate ()

## Types and Values

struct | EShellBackend
struct | EShellBackendClass

## Includes

    #include <shell/e-shell-backend.h>

## Description

## Functions

### e_shell_backend_compare ()

    gint
    e_shell_backend_compare (EShellBackend *shell_backend_a,
                             EShellBackend *shell_backend_b);

`e_shell_backend_compare` is deprecated and should not be used in newly-written code.

Using the `sort_order` field from both backends' EShellBackendClass, compares `shell_backend_a` with `shell_mobule_b` and returns -1, 0 or +1 if `shell_backend_a` is found to be less than, equal to or greater than `shell_backend_b` , respectively.

#### Parameters

shell_backend_a | an EShellBackend |
shell_backend_b | an EShellBackend |

#### Returns

-1, 0 or +1, for a less than, equal to or greater than result

### e_shell_backend_get_config_dir ()

    const gchar *
    e_shell_backend_get_config_dir (EShellBackend *shell_backend);

`e_shell_backend_get_config_dir` is deprecated and should not be used in newly-written code.

Returns the absolute path to the configuration directory for `shell_backend` . The string is owned by `shell_backend` and should not be modified or freed.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

the backend's configuration directory

### e_shell_backend_get_data_dir ()

    const gchar *
    e_shell_backend_get_data_dir (EShellBackend *shell_backend);

`e_shell_backend_get_data_dir` is deprecated and should not be used in newly-written code.

Returns the absolute path to the data directory for `shell_backend` . The string is owned by `shell_backend` and should not be modified or freed.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

the backend's data directory

### e_shell_backend_get_shell ()

    struct _EShell *
    e_shell_backend_get_shell (EShellBackend *shell_backend);

`e_shell_backend_get_shell` is deprecated and should not be used in newly-written code.

Returns the EShell singleton.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

the EShell

### e_shell_backend_add_activity ()

    void
    e_shell_backend_add_activity (EShellBackend *shell_backend,
                                  EActivity *activity);

`e_shell_backend_add_activity` is deprecated and should not be used in newly-written code.

Emits an “activity-added” signal and tracks the `activity` until it is finalized.

#### Parameters

shell_backend | an EShellBackend |
activity | an EActivity |

### e_shell_backend_is_busy ()

    gboolean
    e_shell_backend_is_busy (EShellBackend *shell_backend);

`e_shell_backend_is_busy` is deprecated and should not be used in newly-written code.

Returns `TRUE` if any activities passed to `e_shell_backend_add_activity()` are still in progress, `FALSE` if the `shell_backend` is currently idle.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

`TRUE` if activities are still in progress

### e_shell_backend_set_prefer_new_item ()

    void
    e_shell_backend_set_prefer_new_item (EShellBackend *shell_backend,
                                         const gchar *prefer_new_item);

`e_shell_backend_set_prefer_new_item` is deprecated and should not be used in newly-written code.

Sets name of a preferred item in New toolbar button. Use `NULL` or an empty string for no preference.

#### Parameters

shell_backend | an EShellBackend |
prefer_new_item | name of an item |

Since: 3.4

### e_shell_backend_get_prefer_new_item ()

    const gchar *
    e_shell_backend_get_prefer_new_item (EShellBackend *shell_backend);

`e_shell_backend_get_prefer_new_item` is deprecated and should not be used in newly-written code.

#### Parameters

shell_backend | an EShellBackend |

#### Returns

Name of a preferred item in New toolbar button, `NULL` or an empty string for no preference.

Since: 3.4

### e_shell_backend_cancel_all ()

    void
    e_shell_backend_cancel_all (EShellBackend *shell_backend);

`e_shell_backend_cancel_all` is deprecated and should not be used in newly-written code.

Cancels all activities passed to `e_shell_backend_add_activity()` that have not already been finalized. Note that an EActivity can only be cancelled if it was given a GCancellable object.

Also, assuming all activities are cancellable, there may still be a delay before `e_shell_backend_is_busy()` returns `FALSE`, because some activities may not be able to respond to the cancellation request immediately. Connect to the "notify::busy" signal if you need notification of `shell_backend` becoming idle.

#### Parameters

shell_backend | an EShellBackend |

### e_shell_backend_start ()

    void
    e_shell_backend_start (EShellBackend *shell_backend);

`e_shell_backend_start` is deprecated and should not be used in newly-written code.

Tells the `shell_backend` to begin loading data or running background tasks which may consume significant resources. This gets called in reponse to the user switching to the corresponding EShellView for the first time. The function is idempotent for each `shell_backend` .

#### Parameters

shell_backend | an EShellBackend |

### e_shell_backend_is_started ()

    gboolean
    e_shell_backend_is_started (EShellBackend *shell_backend);

`e_shell_backend_is_started` is deprecated and should not be used in newly-written code.

Returns whether `e_shell_backend_start()` was called for `shell_backend` .

#### Parameters

shell_backend | an EShellBackend |

#### Returns

whether `shell_backend` is started

### e_shell_backend_migrate ()

    gboolean
    e_shell_backend_migrate (EShellBackend *shell_backend,
                             gint major,
                             gint minor,
                             gint micro,
                             GError **error);

`e_shell_backend_migrate` is deprecated and should not be used in newly-written code.

Attempts to migrate data and settings from version `major`.`minor`.`micro`. Returns `TRUE` if the migration was successful or if no action was necessary. Returns `FALSE` and sets `error` if the migration failed.

#### Parameters

shell_backend | an EShellBackend |
major | major part of version to migrate from |
minor | minor part of version to migrate from |
micro | micro part of version to migrate from |
error | return location for a GError, or `NULL` |

#### Returns

`TRUE` if successful, `FALSE` otherwise

## Types and Values

### struct EShellBackend

    struct EShellBackend {
    	EExtension parent;
    	EShellBackendPrivate *priv;
    };

`EShellBackend` is deprecated and should not be used in newly-written code.

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

### struct EShellBackendClass

    struct EShellBackendClass {
    	EExtensionClass parent_class;

    	GType shell_view_type;

    	const gchar *name;
    	const gchar *aliases;
    	const gchar *schemes;
    	gint sort_order;
    	const gchar *preferences_page;

    	/* Methods */
    	void		(*start)		(EShellBackend *shell_backend);
    	gboolean (*migrate)		(EShellBackend *shell_backend,
    						 gint major,
    						 gint minor,
    						 gint micro,
    						 GError **error);
    	const gchar * (*get_config_dir) (EShellBackend *shell_backend);
    	const gchar * (*get_data_dir)		(EShellBackend *shell_backend);
    };

`EShellBackendClass` is deprecated and should not be used in newly-written code.

EShellBackendClass contains a number of important settings for subclasses.

#### Members

GType `shell_view_type`; | GType for the corresponding EShellView subclass. |
const gchar *`name`; | The name of the backend. Also becomes the name of the corresponding EShellView subclass that the backend will register. |
const gchar *`aliases`; | Colon-separated list of aliases that can be used when referring to a backend by name. |
const gchar *`schemes`; | Colon-separated list of URI schemes. The EShell will forward command-line URIs to the appropriate backend based on this list. |
gint `sort_order`; | Used to determine the order of backends listed in the main menu and in the switcher. See `e_shell_backend_compare()`. |
const gchar *`preferences_page`; |  |
`start` () | Method for notifying the backend to begin loading data and running background tasks. This is called just before the first instantiation of the corresponding EShellView subclass. It allows the backend to delay initialization steps that consume significant resources until they are actually needed. |
`migrate` () | Method for notifying the backend to migrate data and settings from the given version. Returns `TRUE` if the migration was successful or if no action was necessary. Returns `FALSE` and sets a GError if the migration failed. |
`get_config_dir` () |  |
`get_data_dir` () |  |