OpenSync
0.22
|
00001 00010 00013 struct OSyncFormatEnv { 00015 GList *objtypes; 00017 GList *objformats; 00019 GList *converters; 00021 GList *filter_functions; 00023 GList *extensions; 00024 }; 00025 00028 struct OSyncObjType { 00029 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00030 char *name; 00031 GList *formats; 00032 GList *converters; 00033 OSyncFormatEnv *env; 00034 osync_bool needs_slow_sync; 00035 OSyncObjFormat *common_format; 00036 #endif 00037 }; 00038 00041 struct OSyncObjFormat { 00042 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00043 char *name; 00044 OSyncFormatEnv *env; 00045 OSyncObjType *objtype; 00046 //GList *extensions; 00047 OSyncFormatCompareFunc cmp_func; 00048 OSyncFormatMergeFunc merge_func; 00049 OSyncFormatDuplicateFunc duplicate_func; 00050 OSyncFormatCopyFunc copy_func; 00051 OSyncFormatCreateFunc create_func; 00052 OSyncFormatDestroyFunc destroy_func; 00053 OSyncFormatPrintFunc print_func; 00054 OSyncFormatRevisionFunc revision_func; 00055 OSyncFormatMarshallFunc marshall_func; 00056 OSyncFormatDemarshallFunc demarshall_func; 00057 #endif 00058 }; 00059 00062 struct OSyncFormatConverter { 00063 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00064 OSyncObjFormat *source_format; 00065 OSyncObjFormat *target_format; 00066 OSyncFormatConvertFunc convert_func; 00067 OSyncFormatDetectDataFunc detect_func; 00068 OSyncFormatConverterInitFunc init_func; 00069 OSyncFormatConverterFinalizeFunc fin_func; 00070 ConverterType type; 00071 #endif 00072 }; 00073 00076 typedef struct OSyncDataDetector { 00077 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00078 const char *sourceformat; 00079 const char *targetformat; 00080 OSyncFormatDetectDataFunc detect_func; 00081 #endif 00082 } OSyncDataDetector; 00083 00086 typedef struct OSyncFormatExtension { 00087 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00088 OSyncObjFormat *from_format; 00089 OSyncObjFormat *to_format; 00090 char *name; 00091 OSyncFormatConvertFunc conv_func; 00092 OSyncFormatExtInitFunc init_func; 00093 #endif 00094 } OSyncFormatExtension; 00095 00096 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00097 00098 typedef struct OSyncObjFormatSink { 00099 OSyncObjFormat *format; 00100 OSyncFormatFunctions functions; 00101 char *extension_name; 00102 struct OSyncObjTypeSink *objtype_sink; 00103 GList *commit_changes; 00104 GList *commit_contexts; 00105 } OSyncObjFormatSink; 00106 00107 typedef struct OSyncObjTypeSink { 00108 OSyncMember *member; 00109 OSyncObjType *objtype; 00110 osync_bool write; 00111 osync_bool read; 00112 osync_bool enabled; 00113 GList *formatsinks; 00114 OSyncObjFormatSink *selected_format; 00115 GList *properties; 00116 } OSyncObjTypeSink; 00117 00118 typedef struct OSyncObjTypeTemplate { 00119 const char *name; 00120 GList *formats; 00121 } OSyncObjTypeTemplate; 00122 00123 typedef struct OSyncObjFormatTemplate { 00124 const char *name; 00125 const char *objtype; 00126 char *extension_name; 00127 OSyncFormatCommitFn commit_change; 00128 OSyncFormatAccessFn access; 00129 OSyncFormatReadFn read; 00130 OSyncFormatCommittedAllFn committed_all; 00131 OSyncFormatBatchCommitFn batch_commit; 00132 OSyncFormatCompareFunc cmp_func; 00133 OSyncFormatMergeFunc merge_func; 00134 OSyncFormatDuplicateFunc duplicate_func; 00135 OSyncFormatCopyFunc copy_func; 00136 OSyncFormatCreateFunc create_func; 00137 OSyncFormatDestroyFunc destroy_func; 00138 OSyncFormatPrintFunc print_func; 00139 OSyncFormatRevisionFunc revision_func; 00140 OSyncFormatMarshallFunc marshall_func; 00141 OSyncFormatDemarshallFunc demarshall_func; 00142 } OSyncObjFormatTemplate; 00143 00144 typedef struct OSyncConverterTemplate { 00145 const char *source_format; 00146 const char *target_format; 00147 OSyncFormatConvertFunc convert_func; 00148 ConverterType type; 00149 OSyncFormatConverterInitFunc init_func; 00150 OSyncFormatConverterFinalizeFunc fin_func; 00151 } OSyncConverterTemplate; 00152 00153 typedef struct OSyncFormatExtensionTemplate { 00154 char *from_formatname; 00155 char *to_formatname; 00156 char *name; 00157 OSyncFormatExtInitFunc init_func; 00158 } OSyncFormatExtensionTemplate; 00159 00161 typedef osync_bool (*OSyncPathTargetFn)(const void *data, OSyncObjFormat *fmt); 00162 00163 osync_bool osync_conv_find_path_fmtlist(OSyncFormatEnv *env, OSyncChange *start, GList/*OSyncObjFormat * */ *targets, GList **retlist); 00164 00165 osync_bool osync_conv_convert_fn(OSyncFormatEnv *env, OSyncChange *change, OSyncPathTargetFn target_fn, const void *fndata, const char *extension_name, OSyncError **error); 00166 osync_bool osync_conv_convert_fmtlist(OSyncFormatEnv *env, OSyncChange *change, GList/*OSyncObjFormat * */ *targets); 00167 OSyncDataDetector *osync_env_find_detector(OSyncEnv *env, const char *sourcename, const char *targetname); 00168 osync_bool osync_conv_objtype_is_any(const char *objstr); 00169 OSyncFormatExtensionTemplate *osync_env_find_extension_template(OSyncEnv *env, const char *formatname); 00170 OSyncFormatExtension *osync_conv_find_extension(OSyncFormatEnv *env, OSyncObjFormat *from_format, OSyncObjFormat *to_format, const char *extension_name); 00171 OSyncChange *osync_converter_invoke_decap(OSyncFormatConverter *converter, OSyncChange *change, osync_bool *free_output); 00172 00173 #endif 00174