00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef OPENSYNC_OBJ_ENGINE_INTERNALS_H_
00022 #define OPENSYNC_OBJ_ENGINE_INTERNALS_H_
00023
00024 struct OSyncObjEngine {
00026 int ref_count;
00027
00029 OSyncEngine *parent;
00030
00032 char *objtype;
00033
00035 osync_bool slowsync;
00036
00038 OSyncArchive *archive;
00039
00041 OSyncMappingTable *mapping_table;
00042
00044 OSyncList *mapping_engines;
00045
00047 OSyncList *sink_engines;
00048
00050 OSyncList *active_sink_engines;
00051
00053 OSyncList *dummy_sink_engines;
00054
00056 OSyncError *error;
00058 OSyncFormatEnv *formatenv;
00059
00061 int sink_errors;
00063 int sink_connects;
00065 int sink_connect_done;
00067 int sink_disconnects;
00069 int sink_get_changes;
00071 int sink_sync_done;
00073 int sink_written;
00074
00076 OSyncObjEngineEventCallback callback;
00078 void *callback_userdata;
00079
00081 OSyncList *conflicts;
00082
00084 osync_bool written;
00085
00087 osync_bool conflicts_solved;
00088 };
00089
00090 OSyncMappingEngine *_osync_obj_engine_create_mapping_engine(OSyncObjEngine *engine, OSyncError **error);
00091
00097 unsigned int osync_obj_engine_num_mapping_engines(OSyncObjEngine *engine);
00098
00108 osync_bool osync_obj_engine_prepare_write(OSyncObjEngine *engine, OSyncError **error);
00109
00119 osync_bool osync_obj_engine_write(OSyncObjEngine *engine, OSyncError **error);
00120
00131 void osync_obj_engine_commit_change_callback(OSyncClientProxy *proxy, void *userdata, const char *uid, OSyncError *error);
00132
00142 void osync_obj_engine_written_callback(OSyncClientProxy *proxy, void *userdata, OSyncError *error);
00143
00150 OSyncSinkEngine *osync_obj_engine_find_proxy_sinkengine(OSyncObjEngine *engine, OSyncClientProxy *proxy);
00151
00152 #endif
00153