00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _OPENSYNC_FORMAT_ENV_INTERNALS_H_
00022 #define _OPENSYNC_FORMAT_ENV_INTERNALS_H_
00023
00031
00033 typedef osync_bool (*OSyncPathTargetFn)(const void *data, OSyncObjFormat *fmt);
00034
00035 osync_bool osync_conv_find_path_fmtlist(OSyncFormatEnv *env, OSyncChange *start, GList *targets, GList **retlist);
00036
00037 osync_bool osync_conv_convert_fn(OSyncFormatEnv *env, OSyncChange *change, OSyncPathTargetFn target_fn, const void *fndata, const char *extension_name, OSyncError **error);
00038 osync_bool osync_conv_convert_fmtlist(OSyncFormatEnv *env, OSyncChange *change, GList *targets);
00039
00042 struct OSyncFormatEnv {
00044 OSyncList *objformats;
00046 OSyncList *converters;
00048 OSyncList *custom_filters;
00049
00050 OSyncList *modules;
00051 GModule *current_module;
00052
00053 int ref_count;
00054 };
00055
00058 typedef struct OSyncFormatConverterTree {
00059
00060 OSyncList *unused;
00061
00062 OSyncList *search;
00063 } OSyncFormatConverterTree;
00064
00065 typedef struct OSyncFormatConverterPathVertice {
00067 OSyncObjFormat *format;
00068 OSyncData *data;
00069
00072 OSyncList *path;
00073
00074 unsigned losses;
00075 unsigned objtype_changes;
00076 unsigned conversions;
00077 guint id;
00078 guint neighbour_id;
00079 osync_bool preferred;
00080
00081 int ref_count;
00082
00083 } OSyncFormatConverterPathVertice;
00084
00085 typedef osync_bool (*OSyncTargetLastConverterFn)(const void *data, OSyncFormatConverterTree *tree);
00086
00093 OSYNC_TEST_EXPORT void osync_format_env_register_filter(OSyncFormatEnv *env, OSyncCustomFilter *filter);
00094
00101 OSYNC_TEST_EXPORT int osync_format_env_num_filters(OSyncFormatEnv *env);
00102
00110 OSYNC_TEST_EXPORT OSyncCustomFilter *osync_format_env_nth_filter(OSyncFormatEnv *env, int nth);
00111
00112
00119 OSYNC_TEST_EXPORT void osync_format_env_objformat_initialize(OSyncFormatEnv *env, OSyncError **error);
00120
00126 OSYNC_TEST_EXPORT void osync_format_env_objformat_finalize(OSyncFormatEnv *env);
00127
00130 #endif
00131