• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List

opensync/opensync_plugin.h

00001 
00005 typedef struct OSyncPluginFunctions {
00007         osync_bool (* get_config) (char *, char **, int *);
00009         osync_bool (* store_config) (char *, const char *, int);
00011         osync_bool (* is_available) (OSyncError **);
00013         void * (* initialize) (OSyncMember *, OSyncError **);
00015         void (* finalize) (void *);
00017         void (* connect) (OSyncContext *);
00019         void (* sync_done) (OSyncContext *ctx);
00021         void (* disconnect) (OSyncContext *);
00023         void (* get_changeinfo) (OSyncContext *);
00025         void (* get_data) (OSyncContext *, OSyncChange *);
00027 } OSyncPluginFunctions;
00028 
00036 typedef struct OSyncPluginTimeouts {
00038         unsigned int connect_timeout;
00040         unsigned int sync_done_timeout;
00042         unsigned int disconnect_timeout;
00044         unsigned int get_changeinfo_timeout;
00046         unsigned int get_data_timeout;
00048         unsigned int commit_timeout;
00050         unsigned int read_change_timeout;
00051 } OSyncPluginTimeouts;
00052 
00053 typedef osync_bool (* OSyncFormatCommitFn) (OSyncContext *, OSyncChange *);
00054 typedef osync_bool (* OSyncFormatAccessFn) (OSyncContext *, OSyncChange *);
00055 typedef void (* OSyncFormatCommittedAllFn) (OSyncContext *);
00056 typedef void (* OSyncFormatReadFn) (OSyncContext *, OSyncChange *);
00057 typedef void (* OSyncFormatBatchCommitFn) (OSyncContext *, OSyncContext **, OSyncChange **);
00058 
00062 typedef struct OSyncFormatFunctions {
00064         OSyncFormatCommitFn commit_change;
00066         OSyncFormatCommittedAllFn committed_all;
00068         OSyncFormatBatchCommitFn batch_commit;
00070         OSyncFormatAccessFn access;
00072         OSyncFormatReadFn read;
00073 } OSyncFormatFunctions;
00074 
00080 typedef enum {
00082         NO_CONFIGURATION = 0,
00084         OPTIONAL_CONFIGURATION = 1,
00086         NEEDS_CONFIGURATION = 2
00087 } OSyncConfigurationTypes;
00088 
00092 typedef struct OSyncPluginInfo {
00094         int version;
00096         const char *name;
00098         const char *longname;
00100         const char *description;
00102         osync_bool is_threadsafe;
00104         OSyncPluginFunctions functions;
00106         OSyncPluginTimeouts timeouts;
00108         OSyncConfigurationTypes config_type;
00110         OSyncPlugin *plugin;
00116         void *plugin_data;
00117 } OSyncPluginInfo;
00118 
00119 OSyncPlugin *osync_plugin_new(OSyncEnv *env);
00120 OSyncPluginInfo *osync_plugin_new_info(OSyncEnv *env);
00121 void osync_plugin_free(OSyncPlugin *plugin);
00122 
00123 osync_bool osync_module_load(OSyncEnv *env, const char *path, OSyncError **error);
00124 osync_bool osync_module_load_dir(OSyncEnv *env, const char *path, osync_bool must_exist, OSyncError **oserror);
00125 
00126 OSyncPlugin *osync_plugin_from_name(OSyncEnv *osinfo, const char *name);
00127 const char *osync_plugin_get_name(OSyncPlugin *plugin);
00128 const char *osync_plugin_get_longname(OSyncPlugin *plugin);
00129 const char *osync_plugin_get_description(OSyncPlugin *plugin);
00130 OSyncPluginTimeouts osync_plugin_get_timeouts(OSyncPlugin *plugin);
00131 void *osync_plugin_get_plugin_data(OSyncPlugin *plugin);
00132 const char *osync_plugin_get_path(OSyncPlugin *plugin);
00133 
00134 void *osync_plugin_get_function(OSyncPlugin *plugin, const char *name, OSyncError **error);
00135 void osync_plugin_accept_objtype(OSyncPluginInfo *info, const char *objtypestr);
00136 void osync_plugin_accept_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, const char *extension);
00137 void osync_plugin_set_commit_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatCommitFn commit_change);
00138 void osync_plugin_set_access_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatAccessFn access_fn);
00139 void osync_plugin_set_read_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatReadFn read_fn);
00140 void osync_plugin_set_batch_commit_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatBatchCommitFn batch);
00141 void osync_plugin_set_committed_all_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatCommittedAllFn committed_all);

Generated on Mon Jul 26 2010 for OpenSync by  doxygen 1.7.1