• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List

opensync/opensync_format_internals.h

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 

Generated on Sat Aug 13 2011 for OpenSync by  doxygen 1.7.1