EBackendFactory

EBackendFactory — An abstract base class for backend factories

Synopsis

#include <libebackend/libebackend.h>

struct              EBackendFactory;
const gchar *       e_backend_factory_get_hash_key      (EBackendFactory *factory);
EBackend *          e_backend_factory_new_backend       (EBackendFactory *factory,
                                                         ESource *source);

Object Hierarchy

  GObject
   +----EExtension
         +----EBackendFactory
               +----ECollectionBackendFactory

Description

An EBackendFactory's job is to create an EBackend instance for a given ESource. EBackendFactory and EBackend should be subclassed together, so that each type of EBackendFactory creates a unique type of EBackend.

Each EBackendFactory subclass must define a hash key to uniquely identify itself among other EBackendFactory subclasses. EDataFactory then services incoming connection requests by deriving a hash key from the requested ESource, using the dervied hash key to find an appropriate EBackendFactory, and creating an EBackend instance from that factory to pair with the requested ESource.

Details

struct EBackendFactory

struct EBackendFactory;

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

Since 3.4


e_backend_factory_get_hash_key ()

const gchar *       e_backend_factory_get_hash_key      (EBackendFactory *factory);

Returns a hash key which uniquely identifies factory.

Since only one instance of each EBackendFactory subclass is ever created, the hash key need only be unique among subclasses, not among instances of each subclass.

factory :

an EBackendFactory

Returns :

a hash key which uniquely identifies factory

Since 3.4


e_backend_factory_new_backend ()

EBackend *          e_backend_factory_new_backend       (EBackendFactory *factory,
                                                         ESource *source);

Returns a new EBackend instance for source.

factory :

an EBackendFactory

source :

an ESource

Returns :

a new EBackend instance for source

Since 3.4