00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _OPENSYNC_UPDATER_PRIVATE_H
00022 #define _OPENSYNC_UPDATER_PRIVATE_H
00023
00031
00032 #define OSYNC_UPDATER_SUFFIX ".xsl"
00033
00035 typedef enum {
00036 OSYNC_UPDATER_UNKOWN,
00037 OSYNC_UPDATER_PROCESSING_MEMBER_CONFIG,
00038 OSYNC_UPDATER_PROCESSING_MEMBER_DATABASE,
00039 OSYNC_UPDATER_PROCESSING_GROUP_CONFIG,
00040 OSYNC_UPDATER_PROCESSING_GROUP_DATABASE,
00041 OSYNC_UPDATER_NUM
00042 } OSyncUpdaterEvent;
00043
00045 struct OSyncUpdater {
00046
00047 int ref_count;
00048
00049
00050 OSyncError *error;
00051
00052
00053 OSyncGroup *group;
00054
00055
00056 char *updatesdir;
00057
00058
00059 osync_updater_cb status_callback;
00060
00061 GCond *updating;
00062 GMutex *updating_mutex;
00063
00064 OSyncThread *thread;
00065 GMainContext *context;
00066
00067 int member_version;
00068 int group_version;
00069 int plugin_version;
00070
00071 };
00072
00074 struct OSyncUpdaterStatus {
00076 OSyncUpdaterEvent type;
00078 OSyncMember *member;
00080 OSyncError *error;
00081 };
00082
00089 static void osync_updater_set_error(OSyncUpdater *updater, OSyncError *error);
00090
00099 static osync_bool osync_updater_stylesheet_process(OSyncUpdater *updater, const char *config, const char *stylesheet, OSyncError **error);
00100
00108 static osync_bool osync_updater_process_plugin_config(OSyncUpdater *updater, OSyncMember *member, OSyncError **error);
00109
00117 static osync_bool osync_updater_process_member_config(OSyncUpdater *updater, OSyncMember *member, OSyncError **error);
00118
00126 static osync_bool osync_updater_process_member(OSyncUpdater *updater, int nthmember, OSyncError **error);
00127
00134 static osync_bool osync_updater_process_group(OSyncUpdater *updater, OSyncError **error);
00135
00145 static char *osync_updater_create_backup(OSyncUpdater *updater, OSyncError **error);
00146
00158 static osync_bool osync_updater_restore_backup(OSyncUpdater *updater, const char *backup_path);
00159
00174 static void *osync_updater_run(void *userdata);
00175
00178 #endif
00179