## EModule

EModule — A module loader

## Functions

EModule * | e_module_new ()
const gchar * | e_module_get_filename ()
EModule * | e_module_load_file ()
GList * | e_module_load_all_in_directory ()
GList * | e_module_load_all_in_directory_and_prefixes ()

## Types and Values

struct | EModule

## Object Hierarchy

        GObject
        ╰── GTypeModule
            ╰── EModule

## Implemented Interfaces

EModule implements GTypePlugin.

## Includes

    #include <libedataserver/libedataserver.h>

## Description

## Functions

### e_module_new ()

    EModule *
    e_module_new (const gchar *filename);

Creates a new EModule that will load the specific shared library when in use.

#### Parameters

filename | filename of the shared library module |

#### Returns

a new EModule for `filename`

Since: 3.4

### e_module_get_filename ()

    const gchar *
    e_module_get_filename (EModule *module);

Returns the filename of the shared library for `module` . The string is owned by `module` and should not be modified or freed.

#### Parameters

module | an EModule |

#### Returns

the filename for `module` .

[transfer none]

Since: 3.4

### e_module_load_file ()

    EModule *
    e_module_load_file (const gchar *filename);

Load the module from the specified filename into memory. If you want to unload it (enabling on-demand loading) you must call `g_type_module_unuse()` on the module.

#### Parameters

filename | filename of the module to load |

#### Returns

an EModule loaded from `filename` .

[transfer full]

Since: 3.16

### e_module_load_all_in_directory ()

    GList *
    e_module_load_all_in_directory (const gchar *dirname);

Loads all the modules in the specified directory into memory. If you want to unload them (enabling on-demand loading) you must call `g_type_module_unuse()` on all the modules. Free the returned list with `g_list_free()`.

#### Parameters

dirname | pathname for a directory containing modules to load |

#### Returns

a list of EModules loaded from `dirname` .

[element-type EModule][transfer container]

Since: 3.4

### e_module_load_all_in_directory_and_prefixes ()

    GList *
    e_module_load_all_in_directory_and_prefixes
                                   (const gchar *dirname,
                                    const gchar *dirprefix);

Loads all the modules in the specified directory into memory and the other custom prefixes returned by `e_util_get_directory_variants()`. If you want to unload them (enabling on-demand loading) you must call `g_type_module_unuse()` on all the modules. Free the returned list with `g_list_free()`.

When `dirprefix` is `NULL`, or not a prefix of `dirname` , behaves the same as `e_module_load_all_in_directory()`.

#### Parameters

dirname | pathname for a directory containing modules to load |
dirprefix | prefix of `dirname` , which can be replaced by custom prefixes, or `NULL`. | [nullable]

#### Returns

a list of EModules loaded from `dirname` and any extra prefix directory.

[element-type EModule][transfer container]

Since: 3.40

## Types and Values

### struct EModule

    struct EModule;

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

Since: 3.4