![]() |
![]() |
![]() |
Prelude library Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#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_SET_PRELOADED_SYMBOLS #define PRELUDE_PLUGIN_OPTION_DECLARE_STRING_CB(prefix, type, name) #define prelude_plugin_get_name (p) #define prelude_plugin_set_name (p, str) #define prelude_plugin_set_destroy_func (p, 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
); 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
); 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)
); int prelude_plugin_instance_add (prelude_plugin_instance_t *pi
,prelude_list_t *h
); void prelude_plugin_instance_del (prelude_plugin_instance_t *pi
); 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
); void prelude_plugin_set_preloaded_symbols (void *symlist
); prelude_plugin_generic_t * prelude_plugin_get_next (prelude_list_t *head
,prelude_list_t **iter
); void prelude_plugin_unload (prelude_plugin_generic_t *plugin
); #define prelude_plugin_compute_stats (pi, func) #define prelude_plugin_run (pi, type, member, ...)
#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.
|
Pointer to a plugin instance. |
Returns : |
0 on success, -1 if an error occured. |
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
.
|
List where to search the plugin from. |
|
Name of the plugin to search. |
Returns : |
the a prelude_plugin_t on success, or NULL if the plugin does not exist. |
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.
|
List where the loaded plugin should be added. |
|
The directory to load the plugin from. |
|
Symbol to lookup within loaded plugin. |
|
Extra pointer to provide to the plugin initialization function. |
|
Pointer to a callback function for plugin subscribtion. |
|
Pointer to a callback function for plugin un-subscribtion. |
Returns : |
The number of loaded plugins on success, -1 on error. |
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).
|
Pointer to a plugin instance |
|
Pointer to a linked list |
Returns : |
0 on success or -1 if an error occured. |
void prelude_plugin_instance_del (prelude_plugin_instance_t *pi
);
Delete pi
from the list specified at prelude_plugin_instance_add()
time.
|
Pointer to a plugin instance. |
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
);