OpenSync  0.22
opensync_plugin.h
1 
5 typedef struct OSyncPluginFunctions {
7  osync_bool (* get_config) (char *, char **, int *);
9  osync_bool (* store_config) (char *, const char *, int);
11  osync_bool (* is_available) (OSyncError **);
13  void * (* initialize) (OSyncMember *, OSyncError **);
15  void (* finalize) (void *);
17  void (* connect) (OSyncContext *);
19  void (* sync_done) (OSyncContext *ctx);
21  void (* disconnect) (OSyncContext *);
23  void (* get_changeinfo) (OSyncContext *);
25  void (* get_data) (OSyncContext *, OSyncChange *);
28 
36 typedef struct OSyncPluginTimeouts {
38  unsigned int connect_timeout;
40  unsigned int sync_done_timeout;
42  unsigned int disconnect_timeout;
44  unsigned int get_changeinfo_timeout;
46  unsigned int get_data_timeout;
48  unsigned int commit_timeout;
50  unsigned int read_change_timeout;
52 
53 typedef osync_bool (* OSyncFormatCommitFn) (OSyncContext *, OSyncChange *);
54 typedef osync_bool (* OSyncFormatAccessFn) (OSyncContext *, OSyncChange *);
55 typedef void (* OSyncFormatCommittedAllFn) (OSyncContext *);
56 typedef void (* OSyncFormatReadFn) (OSyncContext *, OSyncChange *);
57 typedef void (* OSyncFormatBatchCommitFn) (OSyncContext *, OSyncContext **, OSyncChange **);
58 
62 typedef struct OSyncFormatFunctions {
64  OSyncFormatCommitFn commit_change;
66  OSyncFormatCommittedAllFn committed_all;
68  OSyncFormatBatchCommitFn batch_commit;
70  OSyncFormatAccessFn access;
72  OSyncFormatReadFn read;
74 
80 typedef enum {
88 
92 typedef struct OSyncPluginInfo {
94  int version;
96  const char *name;
98  const char *longname;
100  const char *description;
102  osync_bool is_threadsafe;
116  void *plugin_data;
118 
119 OSyncPlugin *osync_plugin_new(OSyncEnv *env);
120 OSyncPluginInfo *osync_plugin_new_info(OSyncEnv *env);
121 void osync_plugin_free(OSyncPlugin *plugin);
122 
123 osync_bool osync_module_load(OSyncEnv *env, const char *path, OSyncError **error);
124 osync_bool osync_module_load_dir(OSyncEnv *env, const char *path, osync_bool must_exist, OSyncError **oserror);
125 
126 OSyncPlugin *osync_plugin_from_name(OSyncEnv *osinfo, const char *name);
127 const char *osync_plugin_get_name(OSyncPlugin *plugin);
128 const char *osync_plugin_get_longname(OSyncPlugin *plugin);
129 const char *osync_plugin_get_description(OSyncPlugin *plugin);
132 const char *osync_plugin_get_path(OSyncPlugin *plugin);
133 
134 void *osync_plugin_get_function(OSyncPlugin *plugin, const char *name, OSyncError **error);
135 void osync_plugin_accept_objtype(OSyncPluginInfo *info, const char *objtypestr);
136 void osync_plugin_accept_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, const char *extension);
137 void osync_plugin_set_commit_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatCommitFn commit_change);
138 void osync_plugin_set_access_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatAccessFn access_fn);
139 void osync_plugin_set_read_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatReadFn read_fn);
140 void osync_plugin_set_batch_commit_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatBatchCommitFn batch);
141 void osync_plugin_set_committed_all_objformat(OSyncPluginInfo *info, const char *objtypestr, const char *formatstr, OSyncFormatCommittedAllFn committed_all);