## EDataFactory EDataFactory — An abstract base class for a backend-based server |

## Functions

EBackendFactory * | e_data_factory_ref_backend_factory ()
ESourceRegistry * | e_data_factory_get_registry ()
gchar * | e_data_factory_construct_path ()

## Types and Values

struct | EDataFactory
struct | EDataFactoryClass

## Includes

    #include <libebackend/libebackend.h>

## Description

## Functions

### e_data_factory_ref_backend_factory ()

    EBackendFactory *
    e_data_factory_ref_backend_factory (EDataFactory *data_factory,
                                        const gchar *backend_name,
                                        const gchar *extension_name);

Returns the EBackendFactory for "`backend_name` :`extension_name` ", or `NULL` if no such factory is registered.

The returned EBackendFactory is referenced for thread-safety. Unreference the EBackendFactory with `g_object_unref()` when finished with it.

#### Parameters

data_factory | an EDataFactory |
backend_name | a backend name |
extension_name | an extension name |

#### Returns

the EBackendFactory for `hash_key` , or `NULL`

Since: 3.6

### e_data_factory_get_registry ()

    ESourceRegistry *
    e_data_factory_get_registry (EDataFactory *data_factory);

Returns the ESourceRegistry owned by `data_factory` .

#### Parameters

data_factory | an EDataFactory |

#### Returns

the ESourceRegistry

Since: 3.16

### e_data_factory_construct_path ()

    gchar *
    e_data_factory_construct_path (EDataFactory *data_factory);

Returns a new and unique object path for a D-Bus interface based in the data object path prefix of the `data_factory`

#### Parameters

data_factory | an EDataFactory |

#### Returns

a newly allocated string, representing the object path for the D-Bus interface.

Since: 3.16

## Types and Values

### struct EDataFactory

    struct EDataFactory {
    	EDBusServer parent;
    	EDataFactoryPrivate *priv;
    };

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

Since: 3.4

### struct EDataFactoryClass

    struct EDataFactoryClass {
    	EDBusServerClass parent_class;

    	GType backend_factory_type;

    	const gchar *factory_object_path;
    	const gchar *data_object_path_prefix;
    	const gchar *subprocess_object_path_prefix;
    	const gchar *subprocess_bus_name_prefix;

    	/* Virtual methods */
    	GDBusInterfaceSkeleton *
    			(*get_dbus_interface_skeleton)
    						(EDBusServer *server);
    	const gchar * (*get_factory_name) (EBackendFactory *backend_factory);
    	void		(*complete_open) (EDataFactory *data_factory,
    						 GDBusMethodInvocation *invocation,
    						 const gchar *object_path,
    						 const gchar *bus_name,
    						 const gchar *extension_name);

    	gpointer reserved[15];
    };