![]() |
![]() |
![]() |
Evolution-Data-Server Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <libebackend/libebackend.h> struct EBackendFactory; struct EBackendFactoryClass; const gchar * e_backend_factory_get_hash_key (EBackendFactory *factory
); EBackend * e_backend_factory_new_backend (EBackendFactory *factory
,ESource *source
); const gchar * e_backend_factory_get_module_filename (EBackendFactory *factory
); gboolean e_backend_factory_share_subprocess (EBackendFactory *factory
);
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.
struct EBackendFactory { };
Contains only private data that should be read and manipulated using the functions below.
Since 3.4
struct EBackendFactoryClass { /* Methods */ const gchar * (*get_hash_key) (EBackendFactory *factory); EBackend * (*new_backend) (EBackendFactory *factory, ESource *source); struct _EModule *e_module; gboolean share_subprocess; };
Base class structure for the EBackendFactory class
Get the hash key for this factory | |
Create a new EBackend of the appropriate type for the passed ESource | |
struct _EModule * |
|
gboolean |
Since 3.4
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.
|
an EBackendFactory |
Returns : |
a hash key which uniquely identifies factory
|
Since 3.4
EBackend * e_backend_factory_new_backend (EBackendFactory *factory
,ESource *source
);
Returns a new EBackend instance for source
.
|
an EBackendFactory |
|
an ESource |
Returns : |
a new EBackend instance for source
|
Since 3.4
const gchar * e_backend_factory_get_module_filename
(EBackendFactory *factory
);
Returns the filename of the shared library for the module used
to load the backends provided by factory
.
|
an EBackendFactory |
Returns : |
the filename for the module associated to the factory
|
Since 3.14
gboolean e_backend_factory_share_subprocess (EBackendFactory *factory
);
Returns TRUE if the factory
wants to share the subprocess
for all backends provided by itself. Otherwise, returns FALSE.
|
an EBackendFactory |
Returns : |
TRUE if the factory shares the subprocess for all its
backends. Otherwise, FALSE. |
Since 3.14