EModule

EModule — A module loader

Synopsis

#include <libebackend/libebackend.h>

struct              EModule;
EModule *           e_module_new                        (const gchar *filename);
const gchar *       e_module_get_filename               (EModule *module);
GList *             e_module_load_all_in_directory      (const gchar *dirname);
void                (*ETypeFunc)                        (GType type,
                                                         gpointer user_data);
void                e_type_traverse                     (GType parent_type,
                                                         ETypeFunc func,
                                                         gpointer user_data);

Object Hierarchy

  GObject
   +----GTypeModule
         +----EModule

Implemented Interfaces

EModule implements GTypePlugin.

Properties

  "filename"                 gchar*                : Read / Write / Construct Only

Description

Details

struct EModule

struct EModule;

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

Since 3.4


e_module_new ()

EModule *           e_module_new                        (const gchar *filename);

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

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.

module :

an EModule

Returns :

the filename for module

Since 3.4


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().

dirname :

pathname for a directory containing modules to load

Returns :

a list of EModules loaded from dirname

Since 3.4


ETypeFunc ()

void                (*ETypeFunc)                        (GType type,
                                                         gpointer user_data);

Specifies the type of functions passed to e_type_traverse().

type :

a GType

user_data :

user data passed to e_type_traverse()

Since 3.4


e_type_traverse ()

void                e_type_traverse                     (GType parent_type,
                                                         ETypeFunc func,
                                                         gpointer user_data);

Calls func for all instantiable subtypes of parent_type.

This is often useful for extending functionality by way of EModule. A module may register a subtype of parent_type in its e_module_load() function. Then later on the application will call e_type_traverse() to instantiate all registered subtypes of parent_type.

parent_type :

the root GType to traverse from

func :

the function to call for each visited GType

user_data :

user data to pass to the function

Since 3.4

Property Details

The "filename" property

  "filename"                 gchar*                : Read / Write / Construct Only

The filename of the module.

Default value: NULL