### Class

# EBackend BackendFactory

since: 3.4

#### Description [src]

    abstract class EBackend.BackendFactory : EDataServer.Extension
    {
      /* No available fields */
    }

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

Available since: 3.4

#### Hierarchy

#### Ancestors

- EExtension
- GObject

#### Descendants

- ECollectionBackendFactory

#### Instance methods

###### e_backend_factory_get_hash_key

Returns a hash key which uniquely identifies `factory`.

since: 3.4

###### e_backend_factory_get_module_filename

Returns the filename of the shared library for the module used to load the backends provided by `factory`.

since: 3.16

###### e_backend_factory_new_backend

Returns a new `EBackend` instance for `source`.

since: 3.4

###### e_backend_factory_share_subprocess

Returns TRUE if the `factory` wants to share the subprocess for all backends provided by itself. Otherwise, returns FALSE.

since: 3.16

##### Methods inherited from EExtension (1)

###### e_extension_get_extensible

Returns the object that `extension` extends.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

##### Properties inherited from EExtension (1)

###### EDataServer.Extension:extensible

The object being extended.

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct EBackendBackendFactoryClass {
      const gchar* (* get_hash_key) (
        EBackendFactory* factory
      );
      EBackend* (* new_backend) (
        EBackendFactory* factory,
        ESource* source
      );
      _EModule* e_module;
      gboolean share_subprocess;

    }

Base class structure for the `EBackendFactory` class.

###### Class members

`get_hash_key: const gchar* (* get_hash_key) ( EBackendFactory* factory )`

  Get the hash key for this factory.

`new_backend: EBackend* (* new_backend) ( EBackendFactory* factory, ESource* source )`

  Create a new `EBackend` of the appropriate type for the passed `ESource`.

`e_module: _EModule*`

  An `EModule` associated with this backend factory.

`share_subprocess: gboolean`

  Whether subporcesses for this backend factory should share one process.

#### Virtual methods

###### EBackend.BackendFactoryClass.get_hash_key

Returns a hash key which uniquely identifies `factory`.

since: 3.4

###### EBackend.BackendFactoryClass.new_backend

Returns a new `EBackend` instance for `source`.

since: 3.4