| Top |  |  |  |  | 
| #define | lt_preloaded_symbols | 
| #define | PRELUDE_PLUGIN_API_VERSION | 
| typedef | prelude_plugin_entry_t | 
| typedef | prelude_plugin_instance_t | 
| #define | PRELUDE_PLUGIN_GENERIC | 
| prelude_plugin_generic_t | 
#define PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB(prefix, type, name)
#define prelude_plugin_set_destroy_func(p, func) (p)->destroy = func
void prelude_plugin_entry_set_plugin (prelude_plugin_entry_t *pe,prelude_plugin_generic_t *pl);
int prelude_plugin_set_activation_option (prelude_plugin_entry_t *pe,prelude_option_t *opt,int (*commit) (prelude_plugin_instance_t *pi, prelude_string_t *err));
int
prelude_plugin_instance_subscribe (prelude_plugin_instance_t *pi);
int
prelude_plugin_instance_unsubscribe (prelude_plugin_instance_t *pi);
Set pi
 to be inactive.
The unsubscribe function specified in plugin_load_from_dir()
is called for plugin un-registration and the instance for this
plugin is freed.
int prelude_plugin_new_instance (prelude_plugin_instance_t **pi,prelude_plugin_generic_t *plugin,const char *name,void *data);
prelude_plugin_generic_t * prelude_plugin_search_by_name (prelude_list_t *head,const char *name);
Search head
 list of plugin for a plugin with name name
.
prelude_plugin_instance_t * prelude_plugin_search_instance_by_name (prelude_list_t *head,const char *pname,const char *iname);
void prelude_plugin_instance_set_data (prelude_plugin_instance_t *pi,void *data);
void *
prelude_plugin_instance_get_data (prelude_plugin_instance_t *pi);
void prelude_plugin_instance_set_plugin_data (prelude_plugin_instance_t *pi,void *data);
void *
prelude_plugin_instance_get_plugin_data
                               (prelude_plugin_instance_t *pi);
const char *
prelude_plugin_instance_get_name (prelude_plugin_instance_t *pi);
prelude_plugin_generic_t *
prelude_plugin_instance_get_plugin (prelude_plugin_instance_t *pi);
int prelude_plugin_load_from_dir (prelude_list_t *head,const char *dirname,const char *symbol,void *ptr,int (*subscribe) (prelude_plugin_instance_t *p),void (*unsubscribe) (prelude_plugin_instance_t *pi));
Load all plugins in directory 'dirname', using symbol
 entry point.
Each plugin have a subscribe
 and unsubscribe
 callback associated with it.
The plugins are loaded, but not active, until someone call prelude_plugin_subscribe()
on one of the plugin. Which'll call subscribe
 in order to register it.
ptr
 is an extra argument provided to the plugin at initialization time.
| head | List where the loaded plugin should be added. | |
| dirname | The directory to load the plugin from. | |
| symbol | Symbol to lookup within loaded plugin. | |
| ptr | Extra pointer to provide to the plugin initialization function. | |
| subscribe | Pointer to a callback function for plugin subscribtion. | |
| unsubscribe | Pointer to a callback function for plugin un-subscribtion. | 
int prelude_plugin_instance_add (prelude_plugin_instance_t *pi,prelude_list_t *h);
This function add the plugin instance associated with pi
 to the linked list
specified by h
. If this instance is already used somewhere else, a copy is
made, since instance does not share information).
void
prelude_plugin_instance_del (prelude_plugin_instance_t *pi);
Delete pi
 from the list specified at prelude_plugin_instance_add() time.
void prelude_plugin_instance_compute_time (prelude_plugin_instance_t *pi,struct timeval *start,struct timeval *end);
int prelude_plugin_instance_call_commit_func (prelude_plugin_instance_t *pi,prelude_string_t *err);
prelude_bool_t
prelude_plugin_instance_has_commit_func
                               (prelude_plugin_instance_t *pi);
prelude_plugin_generic_t * prelude_plugin_get_next (prelude_list_t *head,prelude_list_t **iter);