00001 00002 typedef enum { 00004 CONVERTER_CONV = 1, 00006 CONVERTER_ENCAP = 2, 00008 CONVERTER_DECAP = 3, 00010 CONVERTER_DETECTOR = 4 00011 } ConverterType; 00012 00016 typedef enum { 00018 CONV_DATA_UNKNOWN = 0, 00020 CONV_DATA_MISMATCH = 1, 00022 CONV_DATA_SIMILAR = 2, 00024 CONV_DATA_SAME = 3 00025 } OSyncConvCmpResult; 00026 00027 typedef OSyncConvCmpResult (* OSyncFormatCompareFunc) (OSyncChange *leftchange, OSyncChange *rightchange); 00028 typedef osync_bool (* OSyncFormatConvertFunc) (void *init_data, char *input, int inpsize, char **output, int *outpsize, osync_bool *free_input, OSyncError **error); 00029 typedef osync_bool (* OSyncFormatCopyFunc) (const char *input, int inpsize, char **output, int *outpsize); 00030 typedef osync_bool (* OSyncFormatDetectDataFunc) (OSyncFormatEnv *env, const char *data, int size); 00031 typedef void (* OSyncFormatDuplicateFunc) (OSyncChange *change); 00032 typedef void (* OSyncFormatCreateFunc) (OSyncChange *change); 00033 typedef void (* OSyncFormatMergeFunc) (OSyncChange *leftchange, OSyncChange *rightchange, OSyncError **); 00034 typedef void (* OSyncFormatDestroyFunc) (char *data, size_t size); 00035 typedef char *(* OSyncFormatPrintFunc) (OSyncChange *change); 00036 typedef void *(* OSyncFormatConverterInitFunc) (void); 00037 typedef void (* OSyncFormatConverterFinalizeFunc) (void *); 00038 typedef osync_bool (* OSyncFormatExtInitFunc) (void *); 00039 typedef time_t (* OSyncFormatRevisionFunc) (OSyncChange *change, OSyncError **error); 00040 typedef osync_bool (* OSyncFormatMarshallFunc) (const char *nput, int inpsize, char **output, int *outpsize, OSyncError **); 00041 typedef osync_bool (* OSyncFormatDemarshallFunc) (const char *nput, int inpsize, char **output, int *outpsize, OSyncError **); 00042 00043 OSyncFormatEnv *osync_conv_env_new(OSyncEnv *env); 00044 void osync_conv_env_free(OSyncFormatEnv *env); 00045 osync_bool osync_conv_set_common_format(OSyncFormatEnv *env, const char *objtypestr, const char *formatname, OSyncError **error); 00046 00047 OSyncObjType *osync_conv_find_objtype(OSyncFormatEnv *env, const char *name); 00048 OSyncObjFormat *osync_conv_find_objformat(OSyncFormatEnv *env, const char *name); 00049 int osync_conv_num_objtypes(OSyncFormatEnv *env); 00050 OSyncObjType *osync_conv_nth_objtype(OSyncFormatEnv *env, int nth); 00051 int osync_conv_num_objformats(OSyncObjType *type); 00052 OSyncObjFormat *osync_conv_nth_objformat(OSyncObjType *type, int nth); 00053 OSyncFormatConverter *osync_conv_find_converter(OSyncFormatEnv *env, const char *sourcename, const char *targetname); 00054 00055 const char *osync_objtype_get_name(OSyncObjType *type); 00056 const char *osync_objformat_get_name(OSyncObjFormat *format); 00057 OSyncObjType *osync_objformat_get_objtype(OSyncObjFormat *format);