From: <dg...@su...> - 2009-01-05 09:46:39
|
Author: bricks Date: Mon Jan 5 10:46:15 2009 New Revision: 5012 URL: http://www.opensync.org/changeset/5012 Log: Changed all format specific function signatures to pass a void *user_data pointer Now it is possible to create format specific data in initialize which gets passed to all other format functions Modified: trunk/formats/file.c trunk/formats/plain.c trunk/formats/xmlformat-doc.c trunk/opensync/format/opensync_objformat.c trunk/opensync/format/opensync_objformat.h trunk/tests/format-tests/check_conv.c trunk/tests/format-tests/check_converter.c trunk/tests/format-tests/check_objformat.c trunk/tests/mock-plugin/mock_format.c Modified: trunk/formats/file.c ============================================================================== --- trunk/formats/file.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/formats/file.c Mon Jan 5 10:46:15 2009 (r5012) @@ -29,7 +29,7 @@ #include "file.h" -static OSyncConvCmpResult compare_file(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize) +static OSyncConvCmpResult compare_file(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize, void *user_data) { OSyncFileFormat *leftfile = (OSyncFileFormat *)leftdata; OSyncFileFormat *rightfile = (OSyncFileFormat *)rightdata; @@ -60,7 +60,7 @@ return OSYNC_CONV_DATA_MISMATCH; } -static osync_bool conv_file_to_plain(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, void *userdata, OSyncError **error) +static osync_bool conv_file_to_plain(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, void *user_data, OSyncError **error) { OSyncFileFormat *file = (OSyncFileFormat *)input; char *plaindata = NULL; @@ -97,7 +97,7 @@ return TRUE; } -static void destroy_file(char *input, unsigned int inpsize) +static void destroy_file(char *input, unsigned int inpsize, void *user_data) { OSyncFileFormat *file = (OSyncFileFormat *)input; @@ -110,7 +110,7 @@ g_free(file); } -static osync_bool duplicate_file(const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, OSyncError **error) +static osync_bool duplicate_file(const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, void *user_data, OSyncError **error) { OSyncFileFormat *file = (OSyncFileFormat *)input; @@ -122,7 +122,7 @@ return TRUE; } -static osync_bool copy_file(const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, OSyncError **error) +static osync_bool copy_file(const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, void *user_data, OSyncError **error) { OSyncFileFormat *inpfile = (OSyncFileFormat *)input; @@ -143,7 +143,7 @@ return TRUE; } -static time_t revision_file(const char *input, unsigned int inpsize, OSyncError **error) +static time_t revision_file(const char *input, unsigned int inpsize, void *user_data, OSyncError **error) { OSyncFileFormat *file = (OSyncFileFormat *)input; time_t lastmod; @@ -156,7 +156,7 @@ return lastmod; } -static char *print_file(const char *data, unsigned int size) +static char *print_file(const char *data, unsigned int size, void *user_data) { OSyncFileFormat *file = (OSyncFileFormat *)data; @@ -164,7 +164,7 @@ return printable; } -static osync_bool marshal_file(const char *input, unsigned int inpsize, OSyncMarshal *marshal, OSyncError **error) +static osync_bool marshal_file(const char *input, unsigned int inpsize, OSyncMarshal *marshal, void *user_data, OSyncError **error) { OSyncFileFormat *file = (OSyncFileFormat *)input; osync_trace(TRACE_ENTRY, "%s(%p, %i, %p, %p)", __func__, input, inpsize, marshal, error); @@ -176,7 +176,7 @@ return TRUE; } -static osync_bool demarshal_file(OSyncMarshal *marshal, char **output, unsigned int *outpsize, OSyncError **error) +static osync_bool demarshal_file(OSyncMarshal *marshal, char **output, unsigned int *outpsize, void *user_data, OSyncError **error) { OSyncFileFormat *file = NULL; osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p)", __func__, marshal, output, outpsize, error); Modified: trunk/formats/plain.c ============================================================================== --- trunk/formats/plain.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/formats/plain.c Mon Jan 5 10:46:15 2009 (r5012) @@ -26,7 +26,7 @@ #include <opensync/opensync-format.h> #include <opensync/opensync-xmlformat.h> -static OSyncConvCmpResult compare_plain(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize) +static OSyncConvCmpResult compare_plain(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize, void *user_data) { /* Consider empty block equal NULL pointers */ if (!leftsize) leftdata = NULL; @@ -45,7 +45,7 @@ return OSYNC_CONV_DATA_MISMATCH; } -static osync_bool copy_plain(const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, OSyncError **error) +static osync_bool copy_plain(const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, void *user_data, OSyncError **error) { char *r = g_malloc0(inpsize); @@ -115,7 +115,7 @@ return TRUE; } -static void destroy_plain(char *input, unsigned int inpsize) +static void destroy_plain(char *input, unsigned int inpsize, void *user_data) { g_free(input); } Modified: trunk/formats/xmlformat-doc.c ============================================================================== --- trunk/formats/xmlformat-doc.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/formats/xmlformat-doc.c Mon Jan 5 10:46:15 2009 (r5012) @@ -98,7 +98,7 @@ return TRUE; } -static void destroy(char *input, unsigned int inpsize) +static void destroy(char *input, unsigned int inpsize, void *user_data) { free(input); } Modified: trunk/opensync/format/opensync_objformat.c ============================================================================== --- trunk/opensync/format/opensync_objformat.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/opensync/format/opensync_objformat.c Mon Jan 5 10:46:15 2009 (r5012) @@ -131,7 +131,7 @@ { osync_return_val_if_fail(format, OSYNC_CONV_DATA_UNKNOWN); osync_return_val_if_fail(format->cmp_func, OSYNC_CONV_DATA_UNKNOWN); - return format->cmp_func(leftdata, leftsize, rightdata, rightsize); + return format->cmp_func(leftdata, leftsize, rightdata, rightsize, format->user_data); } void osync_objformat_set_destroy_func(OSyncObjFormat *format, OSyncFormatDestroyFunc destroy_func) @@ -149,7 +149,7 @@ return; } - format->destroy_func(data, size); + format->destroy_func(data, size, format->user_data); } void osync_objformat_set_copy_func(OSyncObjFormat *format, OSyncFormatCopyFunc copy_func) @@ -173,7 +173,7 @@ memcpy(*outdata, indata, insize); *outsize = insize; } else { - if (!format->copy_func(indata, insize, outdata, outsize, error)) { + if (!format->copy_func(indata, insize, outdata, outsize, format->user_data, error)) { osync_error_set(error, OSYNC_ERROR_GENERIC, "Something went wrong during copying"); return FALSE; } @@ -196,7 +196,7 @@ return FALSE; } - return format->duplicate_func(uid, input, insize, newuid, output, outsize, dirty, error); + return format->duplicate_func(uid, input, insize, newuid, output, outsize, dirty, format->user_data, error); } void osync_objformat_set_create_func(OSyncObjFormat *format, OSyncFormatCreateFunc create_func) @@ -210,7 +210,7 @@ osync_return_if_fail(format); osync_return_if_fail(format->create_func); - format->create_func(data, size); + format->create_func(data, size, format->user_data); } void osync_objformat_set_print_func(OSyncObjFormat *format, OSyncFormatPrintFunc print_func) @@ -226,7 +226,7 @@ if (!format->print_func) return g_strndup(data, size); - return format->print_func(data, size); + return format->print_func(data, size, format->user_data); } void osync_objformat_set_revision_func(OSyncObjFormat *format, OSyncFormatRevisionFunc revision_func) @@ -245,7 +245,7 @@ return -1; } - return format->revision_func(data, size, error); + return format->revision_func(data, size, format->user_data, error); } void osync_objformat_set_marshal_func(OSyncObjFormat *format, OSyncFormatMarshalFunc marshal_func) @@ -264,7 +264,7 @@ { osync_assert(format); osync_return_val_if_fail(format->marshal_func, TRUE); - return format->marshal_func(input, inpsize, marshal, error); + return format->marshal_func(input, inpsize, marshal, format->user_data, error); } void osync_objformat_set_demarshal_func(OSyncObjFormat *format, OSyncFormatDemarshalFunc demarshal_func) @@ -277,7 +277,7 @@ { osync_assert(format); osync_return_val_if_fail(format->demarshal_func, TRUE); - return format->demarshal_func(marshal, output, outpsize, error); + return format->demarshal_func(marshal, output, outpsize, format->user_data, error); } void osync_objformat_set_validate_func(OSyncObjFormat *format, OSyncFormatValidateFunc validate_func) @@ -313,7 +313,7 @@ { osync_assert(format); osync_return_val_if_fail(format->merge_func, TRUE); - return format->merge_func(input, inpsize, output, outpsize, entire, entsize, caps, error); + return format->merge_func(input, inpsize, output, outpsize, entire, entsize, caps, format->user_data, error); } void osync_objformat_set_demerge_func(OSyncObjFormat *format, OSyncFormatDemergeFunc demerge_func) @@ -329,7 +329,7 @@ { osync_assert(format); osync_return_val_if_fail(format->demerge_func, TRUE); - return format->demerge_func(input, inpsize, output, outpsize, caps, error); + return format->demerge_func(input, inpsize, output, outpsize, caps, format->user_data, error); } Modified: trunk/opensync/format/opensync_objformat.h ============================================================================== --- trunk/opensync/format/opensync_objformat.h Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/opensync/format/opensync_objformat.h Mon Jan 5 10:46:15 2009 (r5012) @@ -31,21 +31,21 @@ /*@{*/ typedef void * (* OSyncFormatInitializeFunc) (OSyncError **error); -typedef void (* OSyncFormatFinalizeFunc) (void *userdata); +typedef void (* OSyncFormatFinalizeFunc) (void *user_data); -typedef OSyncConvCmpResult (* OSyncFormatCompareFunc) (const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize); -typedef osync_bool (* OSyncFormatCopyFunc) (const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, OSyncError **error); -typedef osync_bool (* OSyncFormatDuplicateFunc) (const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, OSyncError **error); -typedef void (* OSyncFormatCreateFunc) (char **data, unsigned int *size); -typedef void (* OSyncFormatDestroyFunc) (char *data, unsigned int size); -typedef char *(* OSyncFormatPrintFunc) (const char *data, unsigned int size); -typedef time_t (* OSyncFormatRevisionFunc) (const char *data, unsigned int size, OSyncError **error); -typedef osync_bool (* OSyncFormatMarshalFunc) (const char *input, unsigned int inpsize, OSyncMarshal *marshal, OSyncError **error); -typedef osync_bool (* OSyncFormatDemarshalFunc) (OSyncMarshal *marshal, char **output, unsigned int *outpsize, OSyncError **error); +typedef OSyncConvCmpResult (* OSyncFormatCompareFunc) (const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize, void *user_data); +typedef osync_bool (* OSyncFormatCopyFunc) (const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, void *user_data, OSyncError **error); +typedef osync_bool (* OSyncFormatDuplicateFunc) (const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, void *user_data, OSyncError **error); +typedef void (* OSyncFormatCreateFunc) (char **data, unsigned int *size, void *user_data); +typedef void (* OSyncFormatDestroyFunc) (char *data, unsigned int size, void *user_data); +typedef char *(* OSyncFormatPrintFunc) (const char *data, unsigned int size, void *user_data); +typedef time_t (* OSyncFormatRevisionFunc) (const char *data, unsigned int size, void *user_data, OSyncError **error); +typedef osync_bool (* OSyncFormatMarshalFunc) (const char *input, unsigned int inpsize, OSyncMarshal *marshal, void *user_data, OSyncError **error); +typedef osync_bool (* OSyncFormatDemarshalFunc) (OSyncMarshal *marshal, char **output, unsigned int *outpsize, void *user_data, OSyncError **error); typedef osync_bool (* OSyncFormatValidateFunc) (const char *data, unsigned int size, void *user_data, OSyncError **error); -typedef osync_bool (* OSyncFormatMergeFunc) (const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, const char *entire, unsigned int entsize, OSyncCapabilities *caps, OSyncError **error); -typedef osync_bool (* OSyncFormatDemergeFunc) (const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, OSyncCapabilities *caps, OSyncError **error); +typedef osync_bool (* OSyncFormatMergeFunc) (const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, const char *entire, unsigned int entsize, OSyncCapabilities *caps,void *user_data, OSyncError **error); +typedef osync_bool (* OSyncFormatDemergeFunc) (const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, OSyncCapabilities *caps, void *user_data, OSyncError **error); /** * @brief Creates a new object format Modified: trunk/tests/format-tests/check_conv.c ============================================================================== --- trunk/tests/format-tests/check_conv.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/tests/format-tests/check_conv.c Mon Jan 5 10:46:15 2009 (r5012) @@ -117,7 +117,7 @@ } END_TEST -osync_bool convert_func(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, void* userdata, OSyncError **error) +osync_bool convert_func(char *input, unsigned int inpsize, char **output, unsigned int *outpsize, osync_bool *free_input, const char *config, void* user_data, OSyncError **error) { *free_input = TRUE; *output = g_strdup("test"); @@ -360,7 +360,7 @@ } #endif -static void format_simple_destroy(char *data, unsigned int size) +static void format_simple_destroy(char *data, unsigned int size, void *user_data) { osync_assert(data); if (size) Modified: trunk/tests/format-tests/check_converter.c ============================================================================== --- trunk/tests/format-tests/check_converter.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/tests/format-tests/check_converter.c Mon Jan 5 10:46:15 2009 (r5012) @@ -8,7 +8,7 @@ return TRUE; } -void destroy_format(char *data, unsigned int size) +void destroy_format(char *data, unsigned int size, void *user_data) { g_free(data); } @@ -17,7 +17,7 @@ char *string1; } testdata; -void destroy_testdata(char *input, unsigned int size) +void destroy_testdata(char *input, unsigned int size, void *user_data) { testdata *data = (testdata *)input; if (data->string1) Modified: trunk/tests/format-tests/check_objformat.c ============================================================================== --- trunk/tests/format-tests/check_objformat.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/tests/format-tests/check_objformat.c Mon Jan 5 10:46:15 2009 (r5012) @@ -4,7 +4,7 @@ #include <opensync/opensync-serializer.h> #include "opensync/format/opensync_objformat_internals.h" -static OSyncConvCmpResult compare_format(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize) +static OSyncConvCmpResult compare_format(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize, void *user_data) { if (rightsize == leftsize && !strcmp(leftdata, rightdata)) return OSYNC_CONV_DATA_SAME; @@ -12,48 +12,48 @@ return OSYNC_CONV_DATA_MISMATCH; } -void destroy_format(char *data, unsigned int size) +void destroy_format(char *data, unsigned int size, void *user_data) { g_free(data); } -osync_bool copy_format(const char *indata, unsigned int insize, char **outdata, unsigned int *outsize, OSyncError **error) +osync_bool copy_format(const char *indata, unsigned int insize, char **outdata, unsigned int *outsize, void *user_data, OSyncError **error) { *outdata = strdup(indata); *outsize = insize; return TRUE; } -static osync_bool duplicate_format(const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, OSyncError **error) +static osync_bool duplicate_format(const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, void *user_data, OSyncError **error) { fail_unless(!strcmp(uid, "uid"), NULL); *newuid = strdup("newuid"); return TRUE; } -void create_format(char **data, unsigned int *size) +void create_format(char **data, unsigned int *size, void *user_data) { *data = strdup("data"); *size = 5; } -char *print_format(const char *data, unsigned int size) +char *print_format(const char *data, unsigned int size, void *user_data) { return strdup(data); } -time_t revision_format(const char *data, unsigned int size, OSyncError **error) +time_t revision_format(const char *data, unsigned int size, void *user_data, OSyncError **error) { return atoi(data); } -osync_bool marshal_format(const char *input, unsigned int inpsize, OSyncMarshal *marshal, OSyncError **error) +osync_bool marshal_format(const char *input, unsigned int inpsize, OSyncMarshal *marshal, void *user_data, OSyncError **error) { osync_marshal_write_buffer(marshal, input, inpsize); return TRUE; } -osync_bool demarshal_format(OSyncMarshal *marshal, char **output, unsigned int *outsize, OSyncError **error) +osync_bool demarshal_format(OSyncMarshal *marshal, char **output, unsigned int *outsize, void *user_data, OSyncError **error) { osync_marshal_read_buffer(marshal, (void *)output, (int *)outsize); return TRUE; Modified: trunk/tests/mock-plugin/mock_format.c ============================================================================== --- trunk/tests/mock-plugin/mock_format.c Mon Jan 5 04:38:59 2009 (r5011) +++ trunk/tests/mock-plugin/mock_format.c Mon Jan 5 10:46:15 2009 (r5012) @@ -29,24 +29,24 @@ static osync_bool mock_format_get_error(const char *domain) { - const char *env = g_getenv(domain); + const char *env = g_getenv(domain); - if (!env) - return FALSE; + if (!env) + return FALSE; - char *chancestr = g_strdup_printf("%s_PROB", domain); - const char *chance = g_getenv(chancestr); - g_free(chancestr); - if (!chance) - return TRUE; - int prob = atoi(chance); - if (prob >= g_random_int_range(0, 100)) - return TRUE; + char *chancestr = g_strdup_printf("%s_PROB", domain); + const char *chance = g_getenv(chancestr); + g_free(chancestr); + if (!chance) + return TRUE; + int prob = atoi(chance); + if (prob >= g_random_int_range(0, 100)) + return TRUE; - return FALSE; + return FALSE; } -static OSyncConvCmpResult compare_file(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize) +static OSyncConvCmpResult compare_file(const char *leftdata, unsigned int leftsize, const char *rightdata, unsigned int rightsize, void *user_data) { osync_trace(TRACE_ENTRY, "%s(%p, %i, %p, %i)", __func__, leftdata, leftsize, rightdata, rightsize); osync_assert(leftdata); @@ -112,7 +112,7 @@ return TRUE; } -static void destroy_file(char *input, unsigned int inpsize) +static void destroy_file(char *input, unsigned int inpsize, void *user_data) { OSyncFileFormat *file = (OSyncFileFormat *)input; osync_assert(sizeof(OSyncFileFormat) == inpsize); @@ -126,7 +126,7 @@ g_free(file); } -static void destroy_mockformat2(char *input, unsigned int inpsize) +static void destroy_mockformat2(char *input, unsigned int inpsize, void *user_data) { if (!input || inpsize == 0) return; @@ -134,7 +134,7 @@ osync_free(input); } -static osync_bool duplicate_file(const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, OSyncError **error) +static osync_bool duplicate_file(const char *uid, const char *input, unsigned int insize, char **newuid, char **output, unsigned int *outsize, osync_bool *dirty, void *user_data, OSyncError **error) { OSyncFileFormat *file = (OSyncFileFormat *)input; @@ -146,7 +146,7 @@ return TRUE; } -static osync_bool copy_file(const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, OSyncError **error) +static osync_bool copy_file(const char *input, unsigned int inpsize, char **output, unsigned int *outpsize, void *user_data, OSyncError **error) { OSyncFileFormat *inpfile = (OSyncFileFormat *)input; @@ -166,7 +166,7 @@ return TRUE; } -static void create_file(char **buffer, unsigned int *size) +static void create_file(char **buffer, unsigned int *size, void *user_data) { OSyncFileFormat *outfile = osync_try_malloc0(sizeof(OSyncFileFormat), NULL); @@ -179,7 +179,7 @@ *size = sizeof(OSyncFileFormat); } -static time_t revision_file(const char *input, unsigned int inpsize, OSyncError **error) +static time_t revision_file(const char *input, unsigned int inpsize, void *user_data, OSyncError **error) { osync_trace(TRACE_ENTRY, "%s(%p, %i, %p)", __func__, input, inpsize, error); @@ -190,7 +190,7 @@ return lastmod; } -static char *print_file(const char *data, unsigned int size) +static char *print_file(const char *data, unsigned int size, void *user_data) { OSyncFileFormat *file = (OSyncFileFormat *)data; @@ -198,7 +198,7 @@ return printable; } -static osync_bool marshal_file(const char *input, unsigned int inpsize, OSyncMarshal *marshal, OSyncError **error) +static osync_bool marshal_file(const char *input, unsigned int inpsize, OSyncMarshal *marshal, void *user_data, OSyncError **error) { osync_trace(TRACE_ENTRY, "%s(%p, %i, %p, %p)", __func__, input, inpsize, marshal, error); @@ -211,7 +211,7 @@ return TRUE; } -static osync_bool demarshal_file(OSyncMarshal *marshal, char **output, unsigned int *outpsize, OSyncError **error) +static osync_bool demarshal_file(OSyncMarshal *marshal, char **output, unsigned int *outpsize, void *user_data, OSyncError **error) { osync_trace(TRACE_ENTRY, "%s(%p, %p, %p, %p)", __func__, marshal, output, outpsize, error); |