00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _OPENSYNC_GROUP_H_
00022 #define _OPENSYNC_GROUP_H_
00023
00033
00036 typedef enum {
00037 OSYNC_LOCK_OK,
00038 OSYNC_LOCKED,
00039 OSYNC_LOCK_STALE
00040 } OSyncLockState;
00041
00042 typedef enum {
00043 OSYNC_CONFLICT_RESOLUTION_UNKNOWN,
00044 OSYNC_CONFLICT_RESOLUTION_DUPLICATE,
00045 OSYNC_CONFLICT_RESOLUTION_IGNORE,
00046 OSYNC_CONFLICT_RESOLUTION_NEWER,
00047 OSYNC_CONFLICT_RESOLUTION_SELECT
00048 } OSyncConflictResolution;
00049
00050
00059 OSYNC_EXPORT OSyncGroup *osync_group_new(OSyncError **error);
00060
00067 OSYNC_EXPORT OSyncGroup *osync_group_ref(OSyncGroup *group);
00068
00074 OSYNC_EXPORT void osync_group_unref(OSyncGroup *group);
00075
00076
00095 OSYNC_EXPORT OSyncLockState osync_group_lock(OSyncGroup *group);
00096
00102 OSYNC_EXPORT void osync_group_unlock(OSyncGroup *group);
00103
00104
00113 OSYNC_EXPORT void osync_group_set_name(OSyncGroup *group, const char *name);
00114
00123 OSYNC_EXPORT const char *osync_group_get_name(OSyncGroup *group);
00124
00125
00135 OSYNC_EXPORT osync_bool osync_group_save(OSyncGroup *group, OSyncError **error);
00136
00146 OSYNC_EXPORT osync_bool osync_group_delete(OSyncGroup *group, OSyncError **error);
00147
00155 OSYNC_EXPORT osync_bool osync_group_reset(OSyncGroup *group, OSyncError **error);
00156
00167 OSYNC_EXPORT osync_bool osync_group_load(OSyncGroup *group, const char *path, OSyncError **error);
00168
00169
00178 OSYNC_EXPORT void osync_group_add_member(OSyncGroup *group, OSyncMember *member);
00179
00186 OSYNC_EXPORT void osync_group_remove_member(OSyncGroup *group, OSyncMember *member);
00187
00195 OSYNC_EXPORT OSyncMember *osync_group_find_member(OSyncGroup *group, int id);
00196
00206 OSYNC_EXPORT OSyncMember *osync_group_nth_member(OSyncGroup *group, int nth);
00207
00216 OSYNC_EXPORT int osync_group_num_members(OSyncGroup *group);
00217
00218
00227 OSYNC_EXPORT const char *osync_group_get_configdir(OSyncGroup *group);
00228
00236 OSYNC_EXPORT void osync_group_set_configdir(OSyncGroup *group, const char *directory);
00237
00238
00245 OSYNC_EXPORT int osync_group_num_objtypes(OSyncGroup *group);
00246
00254 OSYNC_EXPORT const char *osync_group_nth_objtype(OSyncGroup *group, int nth);
00255
00263 OSYNC_EXPORT void osync_group_set_objtype_enabled(OSyncGroup *group, const char *objtype, osync_bool enabled);
00264
00272 OSYNC_EXPORT int osync_group_objtype_enabled(OSyncGroup *group, const char *objtype);
00273
00274
00282 OSYNC_EXPORT time_t osync_group_get_last_synchronization(OSyncGroup *group);
00283
00291 OSYNC_EXPORT void osync_group_set_conflict_resolution(OSyncGroup *group, OSyncConflictResolution res, int num);
00292
00300 OSYNC_EXPORT void osync_group_get_conflict_resolution(OSyncGroup *group, OSyncConflictResolution *res, int *num);
00301
00307 OSYNC_EXPORT osync_bool osync_group_get_merger_enabled(OSyncGroup *group);
00308
00314 OSYNC_EXPORT void osync_group_set_merger_enabled(OSyncGroup *group, osync_bool merger_enabled);
00315
00316
00322 OSYNC_EXPORT osync_bool osync_group_get_converter_enabled(OSyncGroup *group);
00323
00329 OSYNC_EXPORT void osync_group_set_converter_enabled(OSyncGroup *group, osync_bool converter_enabled);
00330
00331
00337 OSYNC_EXPORT osync_bool osync_group_is_uptodate(OSyncGroup *group);
00338
00341 #endif