00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _OPENSYNC_PLUGIN_H_
00022 #define _OPENSYNC_PLUGIN_H_
00023
00035
00047 typedef void * (* initialize_fn) (OSyncPlugin *plugin, OSyncPluginInfo *info, OSyncError **error);
00048
00056 typedef void (* finalize_fn) (void * plugin_data);
00057
00067 typedef osync_bool (* discover_fn) (OSyncPluginInfo *info, void * plugin_data, OSyncError **error);
00068
00072 typedef enum {
00074 OSYNC_PLUGIN_NO_CONFIGURATION = 0,
00076 OSYNC_PLUGIN_OPTIONAL_CONFIGURATION = 1,
00078 OSYNC_PLUGIN_NEEDS_CONFIGURATION = 2
00079 } OSyncConfigurationType;
00080
00092 OSYNC_EXPORT OSyncPlugin *osync_plugin_new(OSyncError **error);
00093
00099 OSYNC_EXPORT void osync_plugin_unref(OSyncPlugin *plugin);
00100
00106 OSYNC_EXPORT OSyncPlugin *osync_plugin_ref(OSyncPlugin *plugin);
00107
00108
00115 OSYNC_EXPORT const char *osync_plugin_get_name(OSyncPlugin *plugin);
00116
00128 OSYNC_EXPORT void osync_plugin_set_name(OSyncPlugin *plugin, const char *name);
00129
00130
00137 OSYNC_EXPORT const char *osync_plugin_get_longname(OSyncPlugin *plugin);
00138
00150 OSYNC_EXPORT void osync_plugin_set_longname(OSyncPlugin *plugin, const char *longname);
00151
00152
00158 OSYNC_EXPORT OSyncConfigurationType osync_plugin_get_config_type(OSyncPlugin *plugin);
00159
00165 OSYNC_EXPORT void osync_plugin_set_config_type(OSyncPlugin *plugin, OSyncConfigurationType type);
00166
00167
00173 OSYNC_EXPORT OSyncStartType osync_plugin_get_start_type(OSyncPlugin *plugin);
00174
00180 OSYNC_EXPORT void osync_plugin_set_start_type(OSyncPlugin *plugin, OSyncStartType type);
00181
00182
00189 OSYNC_EXPORT const char *osync_plugin_get_description(OSyncPlugin *plugin);
00190
00202 OSYNC_EXPORT void osync_plugin_set_description(OSyncPlugin *plugin, const char *description);
00203
00204
00213 OSYNC_EXPORT void osync_plugin_set_initialize(OSyncPlugin *plugin, initialize_fn init);
00214
00223 OSYNC_EXPORT void osync_plugin_set_finalize(OSyncPlugin *plugin, finalize_fn fin);
00224
00237 OSYNC_EXPORT void osync_plugin_set_discover(OSyncPlugin *plugin, discover_fn discover);
00238
00239
00245 OSYNC_EXPORT void *osync_plugin_get_data(OSyncPlugin *plugin);
00246
00252 OSYNC_EXPORT void osync_plugin_set_data(OSyncPlugin *plugin, void *data);
00253
00260 OSYNC_EXPORT void osync_plugin_set_discover_timeout(OSyncPlugin *plugin, unsigned int timeout);
00261
00268 OSYNC_EXPORT void osync_plugin_set_initialize_timeout(OSyncPlugin *plugin, unsigned int timeout);
00269
00276 OSYNC_EXPORT void osync_plugin_set_finalize_timeout(OSyncPlugin *plugin, unsigned int timeout);
00277
00286 OSYNC_EXPORT osync_bool osync_plugin_initialize(OSyncPlugin *plugin, void **plugin_data, OSyncPluginInfo *info, OSyncError **error);
00287
00293 OSYNC_EXPORT void osync_plugin_finalize(OSyncPlugin *plugin, void *data);
00294
00303 OSYNC_EXPORT osync_bool osync_plugin_discover(OSyncPlugin *plugin, void *data, OSyncPluginInfo *info, OSyncError **error);
00304
00307 #endif
00308