OpenSync  0.22
opensync_format_internals.h
1 
10 
15  GList *objtypes;
17  GList *objformats;
19  GList *converters;
23  GList *extensions;
24 };
25 
28 struct OSyncObjType {
29 #ifndef DOXYGEN_SHOULD_SKIP_THIS
30  char *name;
31  GList *formats;
32  GList *converters;
33  OSyncFormatEnv *env;
34  osync_bool needs_slow_sync;
35  OSyncObjFormat *common_format;
36 #endif
37 };
38 
42 #ifndef DOXYGEN_SHOULD_SKIP_THIS
43  char *name;
44  OSyncFormatEnv *env;
45  OSyncObjType *objtype;
46  //GList *extensions;
47  OSyncFormatCompareFunc cmp_func;
48  OSyncFormatMergeFunc merge_func;
49  OSyncFormatDuplicateFunc duplicate_func;
50  OSyncFormatCopyFunc copy_func;
51  OSyncFormatCreateFunc create_func;
52  OSyncFormatDestroyFunc destroy_func;
53  OSyncFormatPrintFunc print_func;
54  OSyncFormatRevisionFunc revision_func;
55  OSyncFormatMarshallFunc marshall_func;
56  OSyncFormatDemarshallFunc demarshall_func;
57 #endif
58 };
59 
63 #ifndef DOXYGEN_SHOULD_SKIP_THIS
64  OSyncObjFormat *source_format;
65  OSyncObjFormat *target_format;
66  OSyncFormatConvertFunc convert_func;
67  OSyncFormatDetectDataFunc detect_func;
68  OSyncFormatConverterInitFunc init_func;
69  OSyncFormatConverterFinalizeFunc fin_func;
70  ConverterType type;
71 #endif
72 };
73 
76 typedef struct OSyncDataDetector {
77 #ifndef DOXYGEN_SHOULD_SKIP_THIS
78  const char *sourceformat;
79  const char *targetformat;
80  OSyncFormatDetectDataFunc detect_func;
81 #endif
83 
86 typedef struct OSyncFormatExtension {
87 #ifndef DOXYGEN_SHOULD_SKIP_THIS
88  OSyncObjFormat *from_format;
89  OSyncObjFormat *to_format;
90  char *name;
91  OSyncFormatConvertFunc conv_func;
92  OSyncFormatExtInitFunc init_func;
93 #endif
95 
96 #ifndef DOXYGEN_SHOULD_SKIP_THIS
97 
98 typedef struct OSyncObjFormatSink {
99  OSyncObjFormat *format;
100  OSyncFormatFunctions functions;
101  char *extension_name;
102  struct OSyncObjTypeSink *objtype_sink;
103  GList *commit_changes;
104  GList *commit_contexts;
105 } OSyncObjFormatSink;
106 
107 typedef struct OSyncObjTypeSink {
108  OSyncMember *member;
109  OSyncObjType *objtype;
110  osync_bool write;
111  osync_bool read;
112  osync_bool enabled;
113  GList *formatsinks;
114  OSyncObjFormatSink *selected_format;
115  GList *properties;
116 } OSyncObjTypeSink;
117 
118 typedef struct OSyncObjTypeTemplate {
119  const char *name;
120  GList *formats;
121 } OSyncObjTypeTemplate;
122 
123 typedef struct OSyncObjFormatTemplate {
124  const char *name;
125  const char *objtype;
126  char *extension_name;
127  OSyncFormatCommitFn commit_change;
128  OSyncFormatAccessFn access;
129  OSyncFormatReadFn read;
130  OSyncFormatCommittedAllFn committed_all;
131  OSyncFormatBatchCommitFn batch_commit;
132  OSyncFormatCompareFunc cmp_func;
133  OSyncFormatMergeFunc merge_func;
134  OSyncFormatDuplicateFunc duplicate_func;
135  OSyncFormatCopyFunc copy_func;
136  OSyncFormatCreateFunc create_func;
137  OSyncFormatDestroyFunc destroy_func;
138  OSyncFormatPrintFunc print_func;
139  OSyncFormatRevisionFunc revision_func;
140  OSyncFormatMarshallFunc marshall_func;
141  OSyncFormatDemarshallFunc demarshall_func;
142 } OSyncObjFormatTemplate;
143 
144 typedef struct OSyncConverterTemplate {
145  const char *source_format;
146  const char *target_format;
147  OSyncFormatConvertFunc convert_func;
148  ConverterType type;
149  OSyncFormatConverterInitFunc init_func;
150  OSyncFormatConverterFinalizeFunc fin_func;
151 } OSyncConverterTemplate;
152 
153 typedef struct OSyncFormatExtensionTemplate {
154  char *from_formatname;
155  char *to_formatname;
156  char *name;
157  OSyncFormatExtInitFunc init_func;
158 } OSyncFormatExtensionTemplate;
159 
161 typedef osync_bool (*OSyncPathTargetFn)(const void *data, OSyncObjFormat *fmt);
162 
163 osync_bool osync_conv_find_path_fmtlist(OSyncFormatEnv *env, OSyncChange *start, GList/*OSyncObjFormat * */ *targets, GList **retlist);
164 
165 osync_bool osync_conv_convert_fn(OSyncFormatEnv *env, OSyncChange *change, OSyncPathTargetFn target_fn, const void *fndata, const char *extension_name, OSyncError **error);
166 osync_bool osync_conv_convert_fmtlist(OSyncFormatEnv *env, OSyncChange *change, GList/*OSyncObjFormat * */ *targets);
167 OSyncDataDetector *osync_env_find_detector(OSyncEnv *env, const char *sourcename, const char *targetname);
168 osync_bool osync_conv_objtype_is_any(const char *objstr);
169 OSyncFormatExtensionTemplate *osync_env_find_extension_template(OSyncEnv *env, const char *formatname);
170 OSyncFormatExtension *osync_conv_find_extension(OSyncFormatEnv *env, OSyncObjFormat *from_format, OSyncObjFormat *to_format, const char *extension_name);
171 OSyncChange *osync_converter_invoke_decap(OSyncFormatConverter *converter, OSyncChange *change, osync_bool *free_output);
172 
173 #endif
174