1 /* -*-Mode: C;-*-
2 * Copyright (C) 1997, 1998, 1999 Josh MacDonald
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17 *
18 * Author: Josh MacDonald <jmacd@CS.Berkeley.EDU>
19 *
20 * This file was AUTOMATICALLY GENERATED using:
21 *
22 * $Id: edsio.el 1.2 Sun, 28 Jan 2007 12:21:11 -0800 jmacd $
23 */
24
25 #include "xdelta.h"
26
27 #include <errno.h>
28
29 /* Declarations. */
30
31 static const char* Xd_String_event_field_to_string (GenericEvent* ev, gint field);
32 static const char* Xd_HandleIntInt_event_field_to_string (GenericEvent* ev, gint field);
33 static const char* Xd_HandleStringString_event_field_to_string (GenericEvent* ev, gint field);
34 static const char* Xd_Int_event_field_to_string (GenericEvent* ev, gint field);
print_spaces(guint n)35 static void print_spaces (guint n) { int i; for (i = 0; i < n; i += 1) g_print (" "); }
36
37
38 /* initialize this library. */
39
40 gboolean
xd_edsio_init(void)41 xd_edsio_init (void)
42 {
43 static gboolean once = FALSE;
44 static gboolean result = FALSE;
45 if (once) return result;
46 once = TRUE;
47 eventdelivery_initialize_event_def (EC_XdBackwardCompatibilityModeValue, EL_Information, EF_None, "BackwardCompatibilityMode", "Reading a version ${0} delta control", & Xd_String_event_field_to_string);
48 eventdelivery_initialize_event_def (EC_XdStreamLengthFailedValue, EL_Error, EF_None, "StreamLengthFailed", "${0}: Length validation failed, expected: ${1}, received: ${2}", & Xd_HandleIntInt_event_field_to_string);
49 eventdelivery_initialize_event_def (EC_XdStreamChecksumFailedValue, EL_Error, EF_None, "StreamChecksumFailed", "${0}: Checksum validation failed, expected: ${1}, received: ${2}", & Xd_HandleStringString_event_field_to_string);
50 eventdelivery_initialize_event_def (EC_XdIncompatibleDeltaValue, EL_Error, EF_None, "IncompatibleDelta", "The delta was not produced according by the `xdelta delta' command", NULL);
51 eventdelivery_initialize_event_def (EC_XdInvalidRsyncCacheValue, EL_Error, EF_None, "InvalidRsyncCache", "The rsync checksum cache is corrupt", NULL);
52 eventdelivery_initialize_event_def (EC_XdInvalidControlValue, EL_Error, EF_None, "InvalidControl", "Delta control is corrupt", NULL);
53 eventdelivery_initialize_event_def (EC_XdOutOfRangeSourceIndexValue, EL_Error, EF_None, "OutOfRangeSourceIndex", "Instruction references out-of-range source index: ${0}", & Xd_Int_event_field_to_string);
54 eventdelivery_initialize_event_def (EC_XdTooManySourcesValue, EL_Error, EF_None, "TooManySources", "Too many input sources", NULL);
55 eventdelivery_initialize_event_def (EC_XdTooFewSourcesValue, EL_Error, EF_None, "TooFewSources", "Too few input sources", NULL);
56 serializeio_initialize_type ("ST_Version0Instruction", ST_Version0Instruction, &unserialize_version0instruction_internal, &serialize_version0instruction_obj_internal, &serializeio_count_version0instruction_obj, &serializeio_print_version0instruction_obj);
57 serializeio_initialize_type ("ST_Version0Control", ST_Version0Control, &unserialize_version0control_internal, &serialize_version0control_obj_internal, &serializeio_count_version0control_obj, &serializeio_print_version0control_obj);
58 serializeio_initialize_type ("ST_Version0SourceInfo", ST_Version0SourceInfo, &unserialize_version0sourceinfo_internal, &serialize_version0sourceinfo_obj_internal, &serializeio_count_version0sourceinfo_obj, &serializeio_print_version0sourceinfo_obj);
59 serializeio_initialize_type ("ST_RsyncIndex", ST_RsyncIndex, &unserialize_rsyncindex_internal, &serialize_rsyncindex_obj_internal, &serializeio_count_rsyncindex_obj, &serializeio_print_rsyncindex_obj);
60 serializeio_initialize_type ("ST_RsyncIndexElt", ST_RsyncIndexElt, &unserialize_rsyncindexelt_internal, &serialize_rsyncindexelt_obj_internal, &serializeio_count_rsyncindexelt_obj, &serializeio_print_rsyncindexelt_obj);
61 serializeio_initialize_type ("ST_XdeltaInstruction", ST_XdeltaInstruction, &unserialize_xdeltainstruction_internal, &serialize_xdeltainstruction_obj_internal, &serializeio_count_xdeltainstruction_obj, &serializeio_print_xdeltainstruction_obj);
62 serializeio_initialize_type ("ST_XdeltaControl", ST_XdeltaControl, &unserialize_xdeltacontrol_internal, &serialize_xdeltacontrol_obj_internal, &serializeio_count_xdeltacontrol_obj, &serializeio_print_xdeltacontrol_obj);
63 serializeio_initialize_type ("ST_XdeltaSourceInfo", ST_XdeltaSourceInfo, &unserialize_xdeltasourceinfo_internal, &serialize_xdeltasourceinfo_obj_internal, &serializeio_count_xdeltasourceinfo_obj, &serializeio_print_xdeltasourceinfo_obj);
64 serializeio_initialize_type ("ST_XdeltaIndex", ST_XdeltaIndex, &unserialize_xdeltaindex_internal, &serialize_xdeltaindex_obj_internal, &serializeio_count_xdeltaindex_obj, &serializeio_print_xdeltaindex_obj);
65 serializeio_initialize_type ("ST_XdeltaChecksum", ST_XdeltaChecksum, &unserialize_xdeltachecksum_internal, &serialize_xdeltachecksum_obj_internal, &serializeio_count_xdeltachecksum_obj, &serializeio_print_xdeltachecksum_obj);
66 edsio_library_register (3, "xd");
67 result = TRUE;
68 return TRUE;
69 };
70
71 /* XdeltaChecksum Count
72 */
73
74 guint
serializeio_count_xdeltachecksum(guint16 high,guint16 low)75 serializeio_count_xdeltachecksum (guint16 high, guint16 low) {
76 guint size = sizeof (SerialXdeltaChecksum);
77 ALIGN_8 (size);
78 ALIGN_8 (size);
79 ALIGN_8 (size);
80 return size;
81 }
82
83 guint
serializeio_count_xdeltachecksum_obj(SerialXdeltaChecksum const * obj)84 serializeio_count_xdeltachecksum_obj (SerialXdeltaChecksum const* obj) {
85 return serializeio_count_xdeltachecksum (obj->high, obj->low);
86 }
87
88 /* XdeltaChecksum Print
89 */
90
91 void
serializeio_print_xdeltachecksum_obj(SerialXdeltaChecksum * obj,guint indent_spaces)92 serializeio_print_xdeltachecksum_obj (SerialXdeltaChecksum* obj, guint indent_spaces) {
93 print_spaces (indent_spaces);
94 g_print ("[ST_XdeltaChecksum]\n");
95 print_spaces (indent_spaces);
96 g_print ("high = ");
97 g_print ("%d\n", obj->high);
98 print_spaces (indent_spaces);
99 g_print ("low = ");
100 g_print ("%d\n", obj->low);
101 }
102
103 /* XdeltaChecksum Serialize
104 */
105
106 gboolean
serialize_xdeltachecksum_internal(SerialSink * sink,guint16 high,guint16 low)107 serialize_xdeltachecksum_internal (SerialSink *sink, guint16 high, guint16 low)
108 {
109 if (! (* sink->next_uint16) (sink, high)) goto bail;
110 if (! (* sink->next_uint16) (sink, low)) goto bail;
111 return TRUE;
112 bail:
113 return FALSE;
114 }
115
116 gboolean
serialize_xdeltachecksum_obj_internal(SerialSink * sink,SerialXdeltaChecksum * obj)117 serialize_xdeltachecksum_obj_internal (SerialSink *sink, SerialXdeltaChecksum* obj)
118 {
119 return serialize_xdeltachecksum_internal (sink, obj->high, obj->low);
120 }
121
122 gboolean
serialize_xdeltachecksum(SerialSink * sink,guint16 high,guint16 low)123 serialize_xdeltachecksum (SerialSink *sink, guint16 high, guint16 low)
124 {
125 if (! (* sink->sink_type) (sink, ST_XdeltaChecksum, serializeio_count_xdeltachecksum (high, low), TRUE)) goto bail;
126 if (! serialize_xdeltachecksum_internal (sink, high, low)) goto bail;
127 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
128 return TRUE;
129 bail:
130 return FALSE;
131 }
132
133 gboolean
serialize_xdeltachecksum_obj(SerialSink * sink,const SerialXdeltaChecksum * obj)134 serialize_xdeltachecksum_obj (SerialSink *sink, const SerialXdeltaChecksum* obj) {
135
136 return serialize_xdeltachecksum (sink, obj->high, obj->low);
137 }
138
139 /* XdeltaChecksum Unserialize
140 */
141
142 gboolean
unserialize_xdeltachecksum_internal_noalloc(SerialSource * source,SerialXdeltaChecksum * result)143 unserialize_xdeltachecksum_internal_noalloc (SerialSource *source, SerialXdeltaChecksum* result)
144 {
145 if (! (* source->next_uint16) (source, &result->high)) goto bail;
146 if (! (* source->next_uint16) (source, &result->low)) goto bail;
147 return TRUE;
148 bail:
149 return FALSE;
150 }
151
152 gboolean
unserialize_xdeltachecksum_internal(SerialSource * source,SerialXdeltaChecksum ** result)153 unserialize_xdeltachecksum_internal (SerialSource *source, SerialXdeltaChecksum** result)
154 {
155 SerialXdeltaChecksum* unser;
156 (*result) = NULL;
157 unser = serializeio_source_alloc (source, sizeof (SerialXdeltaChecksum));
158 if (! unser) goto bail;
159 if (! unserialize_xdeltachecksum_internal_noalloc (source, unser)) goto bail;
160 (*result) = unser;
161 return TRUE;
162 bail:
163 return FALSE;
164 }
165
166 gboolean
unserialize_xdeltachecksum(SerialSource * source,SerialXdeltaChecksum ** result)167 unserialize_xdeltachecksum (SerialSource *source, SerialXdeltaChecksum** result)
168 {
169 if ( (* source->source_type) (source, TRUE) != ST_XdeltaChecksum) goto bail;
170 if (! unserialize_xdeltachecksum_internal (source, result)) goto bail;
171 return TRUE;
172 bail:
173 return FALSE;
174 }
175
176 /* XdeltaIndex Count
177 */
178
179 guint
serializeio_count_xdeltaindex(guint32 file_len,const guint8 file_md5[16],guint32 index_len,SerialXdeltaChecksum const * index)180 serializeio_count_xdeltaindex (guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialXdeltaChecksum const* index) {
181 guint size = sizeof (SerialXdeltaIndex);
182 ALIGN_8 (size);
183 ALIGN_8 (size);
184 ALIGN_8 (size);
185 {
186 gint i;
187 for (i = 0; i < index_len; i += 1)
188 {
189 size += serializeio_count_xdeltachecksum_obj (& (index[i]));
190 }
191 }
192 ALIGN_8 (size);
193 return size;
194 }
195
196 guint
serializeio_count_xdeltaindex_obj(SerialXdeltaIndex const * obj)197 serializeio_count_xdeltaindex_obj (SerialXdeltaIndex const* obj) {
198 return serializeio_count_xdeltaindex (obj->file_len, obj->file_md5, obj->index_len, obj->index);
199 }
200
201 /* XdeltaIndex Print
202 */
203
204 void
serializeio_print_xdeltaindex_obj(SerialXdeltaIndex * obj,guint indent_spaces)205 serializeio_print_xdeltaindex_obj (SerialXdeltaIndex* obj, guint indent_spaces) {
206 print_spaces (indent_spaces);
207 g_print ("[ST_XdeltaIndex]\n");
208 print_spaces (indent_spaces);
209 g_print ("file_len = ");
210 g_print ("%d\n", obj->file_len);
211 print_spaces (indent_spaces);
212 g_print ("file_md5 = ");
213 serializeio_print_bytes (obj->file_md5, 16);
214 print_spaces (indent_spaces);
215 g_print ("index = ");
216 g_print ("{\n");
217 {
218 gint i;
219 for (i = 0; i < obj->index_len; i += 1)
220 {
221 print_spaces (indent_spaces);
222 g_print ("%d:\n", i);
223 print_spaces (indent_spaces);
224 serializeio_print_xdeltachecksum_obj (& (obj->index[i]), indent_spaces + 2);
225 print_spaces (indent_spaces);
226 ;
227 }
228 }
229 g_print ("}\n");
230 }
231
232 /* XdeltaIndex Serialize
233 */
234
235 gboolean
serialize_xdeltaindex_internal(SerialSink * sink,guint32 file_len,const guint8 file_md5[16],guint32 index_len,SerialXdeltaChecksum const * index)236 serialize_xdeltaindex_internal (SerialSink *sink, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialXdeltaChecksum const* index)
237 {
238 if (! (* sink->next_uint) (sink, file_len)) goto bail;
239 if (! (* sink->next_bytes_known) (sink, file_md5, 16)) goto bail;
240 {
241 gint i;
242 if (! (* sink->next_uint) (sink, index_len)) goto bail;
243 for (i = 0; i < index_len; i += 1)
244 {
245 if (! serialize_xdeltachecksum_internal (sink, (index[i]).high, (index[i]).low)) goto bail;
246 }
247 }
248 return TRUE;
249 bail:
250 return FALSE;
251 }
252
253 gboolean
serialize_xdeltaindex_obj_internal(SerialSink * sink,SerialXdeltaIndex * obj)254 serialize_xdeltaindex_obj_internal (SerialSink *sink, SerialXdeltaIndex* obj)
255 {
256 return serialize_xdeltaindex_internal (sink, obj->file_len, obj->file_md5, obj->index_len, obj->index);
257 }
258
259 gboolean
serialize_xdeltaindex(SerialSink * sink,guint32 file_len,const guint8 file_md5[16],guint32 index_len,SerialXdeltaChecksum const * index)260 serialize_xdeltaindex (SerialSink *sink, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialXdeltaChecksum const* index)
261 {
262 if (! (* sink->sink_type) (sink, ST_XdeltaIndex, serializeio_count_xdeltaindex (file_len, file_md5, index_len, index), TRUE)) goto bail;
263 if (! serialize_xdeltaindex_internal (sink, file_len, file_md5, index_len, index)) goto bail;
264 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
265 return TRUE;
266 bail:
267 return FALSE;
268 }
269
270 gboolean
serialize_xdeltaindex_obj(SerialSink * sink,const SerialXdeltaIndex * obj)271 serialize_xdeltaindex_obj (SerialSink *sink, const SerialXdeltaIndex* obj) {
272
273 return serialize_xdeltaindex (sink, obj->file_len, obj->file_md5, obj->index_len, obj->index);
274 }
275
276 /* XdeltaIndex Unserialize
277 */
278
279 gboolean
unserialize_xdeltaindex_internal_noalloc(SerialSource * source,SerialXdeltaIndex * result)280 unserialize_xdeltaindex_internal_noalloc (SerialSource *source, SerialXdeltaIndex* result)
281 {
282 if (! (* source->next_uint) (source, &result->file_len)) goto bail;
283 if (! (* source->next_bytes_known) (source, result->file_md5, 16)) goto bail;
284 {
285 gint i;
286 if (! (* source->next_uint) (source, &result->index_len)) goto bail;
287 if (! (result->index = serializeio_source_alloc (source, sizeof (SerialXdeltaChecksum) * result->index_len))) goto bail;
288 for (i = 0; i < result->index_len; i += 1)
289 {
290 if (! unserialize_xdeltachecksum_internal_noalloc (source, &(result->index[i]))) goto bail;
291 }
292 }
293 return TRUE;
294 bail:
295 return FALSE;
296 }
297
298 gboolean
unserialize_xdeltaindex_internal(SerialSource * source,SerialXdeltaIndex ** result)299 unserialize_xdeltaindex_internal (SerialSource *source, SerialXdeltaIndex** result)
300 {
301 SerialXdeltaIndex* unser;
302 (*result) = NULL;
303 unser = serializeio_source_alloc (source, sizeof (SerialXdeltaIndex));
304 if (! unser) goto bail;
305 if (! unserialize_xdeltaindex_internal_noalloc (source, unser)) goto bail;
306 (*result) = unser;
307 return TRUE;
308 bail:
309 return FALSE;
310 }
311
312 gboolean
unserialize_xdeltaindex(SerialSource * source,SerialXdeltaIndex ** result)313 unserialize_xdeltaindex (SerialSource *source, SerialXdeltaIndex** result)
314 {
315 if ( (* source->source_type) (source, TRUE) != ST_XdeltaIndex) goto bail;
316 if (! unserialize_xdeltaindex_internal (source, result)) goto bail;
317 return TRUE;
318 bail:
319 return FALSE;
320 }
321
322 /* XdeltaSourceInfo Count
323 */
324
325 guint
serializeio_count_xdeltasourceinfo(const gchar * name,const guint8 md5[16],guint32 len,gboolean isdata,gboolean sequential)326 serializeio_count_xdeltasourceinfo (const gchar* name, const guint8 md5[16], guint32 len, gboolean isdata, gboolean sequential) {
327 guint size = sizeof (SerialXdeltaSourceInfo);
328 ALIGN_8 (size);
329 size += strlen (name) + 1;
330 ALIGN_8 (size);
331 ALIGN_8 (size);
332 ALIGN_8 (size);
333 ALIGN_8 (size);
334 ALIGN_8 (size);
335 return size;
336 }
337
338 guint
serializeio_count_xdeltasourceinfo_obj(SerialXdeltaSourceInfo const * obj)339 serializeio_count_xdeltasourceinfo_obj (SerialXdeltaSourceInfo const* obj) {
340 return serializeio_count_xdeltasourceinfo (obj->name, obj->md5, obj->len, obj->isdata, obj->sequential);
341 }
342
343 /* XdeltaSourceInfo Print
344 */
345
346 void
serializeio_print_xdeltasourceinfo_obj(SerialXdeltaSourceInfo * obj,guint indent_spaces)347 serializeio_print_xdeltasourceinfo_obj (SerialXdeltaSourceInfo* obj, guint indent_spaces) {
348 print_spaces (indent_spaces);
349 g_print ("[ST_XdeltaSourceInfo]\n");
350 print_spaces (indent_spaces);
351 g_print ("name = ");
352 g_print ("%s\n", obj->name);
353 print_spaces (indent_spaces);
354 g_print ("md5 = ");
355 serializeio_print_bytes (obj->md5, 16);
356 print_spaces (indent_spaces);
357 g_print ("len = ");
358 g_print ("%d\n", obj->len);
359 print_spaces (indent_spaces);
360 g_print ("isdata = ");
361 g_print ("%s\n", obj->isdata ? "true" : "false");
362 print_spaces (indent_spaces);
363 g_print ("sequential = ");
364 g_print ("%s\n", obj->sequential ? "true" : "false");
365 }
366
367 /* XdeltaSourceInfo Serialize
368 */
369
370 gboolean
serialize_xdeltasourceinfo_internal(SerialSink * sink,const gchar * name,const guint8 md5[16],guint32 len,gboolean isdata,gboolean sequential)371 serialize_xdeltasourceinfo_internal (SerialSink *sink, const gchar* name, const guint8 md5[16], guint32 len, gboolean isdata, gboolean sequential)
372 {
373 if (! (* sink->next_string) (sink, name)) goto bail;
374 if (! (* sink->next_bytes_known) (sink, md5, 16)) goto bail;
375 if (! (* sink->next_uint) (sink, len)) goto bail;
376 if (! (* sink->next_bool) (sink, isdata)) goto bail;
377 if (! (* sink->next_bool) (sink, sequential)) goto bail;
378 return TRUE;
379 bail:
380 return FALSE;
381 }
382
383 gboolean
serialize_xdeltasourceinfo_obj_internal(SerialSink * sink,SerialXdeltaSourceInfo * obj)384 serialize_xdeltasourceinfo_obj_internal (SerialSink *sink, SerialXdeltaSourceInfo* obj)
385 {
386 return serialize_xdeltasourceinfo_internal (sink, obj->name, obj->md5, obj->len, obj->isdata, obj->sequential);
387 }
388
389 gboolean
serialize_xdeltasourceinfo(SerialSink * sink,const gchar * name,const guint8 md5[16],guint32 len,gboolean isdata,gboolean sequential)390 serialize_xdeltasourceinfo (SerialSink *sink, const gchar* name, const guint8 md5[16], guint32 len, gboolean isdata, gboolean sequential)
391 {
392 if (! (* sink->sink_type) (sink, ST_XdeltaSourceInfo, serializeio_count_xdeltasourceinfo (name, md5, len, isdata, sequential), TRUE)) goto bail;
393 if (! serialize_xdeltasourceinfo_internal (sink, name, md5, len, isdata, sequential)) goto bail;
394 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
395 return TRUE;
396 bail:
397 return FALSE;
398 }
399
400 gboolean
serialize_xdeltasourceinfo_obj(SerialSink * sink,const SerialXdeltaSourceInfo * obj)401 serialize_xdeltasourceinfo_obj (SerialSink *sink, const SerialXdeltaSourceInfo* obj) {
402
403 return serialize_xdeltasourceinfo (sink, obj->name, obj->md5, obj->len, obj->isdata, obj->sequential);
404 }
405
406 /* XdeltaSourceInfo Unserialize
407 */
408
409 gboolean
unserialize_xdeltasourceinfo_internal_noalloc(SerialSource * source,SerialXdeltaSourceInfo * result)410 unserialize_xdeltasourceinfo_internal_noalloc (SerialSource *source, SerialXdeltaSourceInfo* result)
411 {
412 if (! (* source->next_string) (source, &result->name)) goto bail;
413 if (! (* source->next_bytes_known) (source, result->md5, 16)) goto bail;
414 if (! (* source->next_uint) (source, &result->len)) goto bail;
415 if (! (* source->next_bool) (source, &result->isdata)) goto bail;
416 if (! (* source->next_bool) (source, &result->sequential)) goto bail;
417 return TRUE;
418 bail:
419 return FALSE;
420 }
421
422 gboolean
unserialize_xdeltasourceinfo_internal(SerialSource * source,SerialXdeltaSourceInfo ** result)423 unserialize_xdeltasourceinfo_internal (SerialSource *source, SerialXdeltaSourceInfo** result)
424 {
425 SerialXdeltaSourceInfo* unser;
426 (*result) = NULL;
427 unser = serializeio_source_alloc (source, sizeof (SerialXdeltaSourceInfo));
428 if (! unser) goto bail;
429 if (! unserialize_xdeltasourceinfo_internal_noalloc (source, unser)) goto bail;
430 (*result) = unser;
431 return TRUE;
432 bail:
433 return FALSE;
434 }
435
436 gboolean
unserialize_xdeltasourceinfo(SerialSource * source,SerialXdeltaSourceInfo ** result)437 unserialize_xdeltasourceinfo (SerialSource *source, SerialXdeltaSourceInfo** result)
438 {
439 if ( (* source->source_type) (source, TRUE) != ST_XdeltaSourceInfo) goto bail;
440 if (! unserialize_xdeltasourceinfo_internal (source, result)) goto bail;
441 return TRUE;
442 bail:
443 return FALSE;
444 }
445
446 /* XdeltaControl Count
447 */
448
449 guint
serializeio_count_xdeltacontrol(const guint8 to_md5[16],guint32 to_len,gboolean has_data,guint32 source_info_len,SerialXdeltaSourceInfo * const * source_info,guint32 inst_len,SerialXdeltaInstruction const * inst)450 serializeio_count_xdeltacontrol (const guint8 to_md5[16], guint32 to_len, gboolean has_data, guint32 source_info_len, SerialXdeltaSourceInfo* const* source_info, guint32 inst_len, SerialXdeltaInstruction const* inst) {
451 guint size = sizeof (SerialXdeltaControl);
452 ALIGN_8 (size);
453 ALIGN_8 (size);
454 ALIGN_8 (size);
455 ALIGN_8 (size);
456 {
457 gint i;
458 for (i = 0; i < source_info_len; i += 1)
459 {
460 size += serializeio_count_xdeltasourceinfo_obj ((source_info[i])) + sizeof (void*);
461 }
462 }
463 ALIGN_8 (size);
464 {
465 gint i;
466 for (i = 0; i < inst_len; i += 1)
467 {
468 size += serializeio_count_xdeltainstruction_obj (& (inst[i]));
469 }
470 }
471 ALIGN_8 (size);
472 return size;
473 }
474
475 guint
serializeio_count_xdeltacontrol_obj(SerialXdeltaControl const * obj)476 serializeio_count_xdeltacontrol_obj (SerialXdeltaControl const* obj) {
477 return serializeio_count_xdeltacontrol (obj->to_md5, obj->to_len, obj->has_data, obj->source_info_len, obj->source_info, obj->inst_len, obj->inst);
478 }
479
480 /* XdeltaControl Print
481 */
482
483 void
serializeio_print_xdeltacontrol_obj(SerialXdeltaControl * obj,guint indent_spaces)484 serializeio_print_xdeltacontrol_obj (SerialXdeltaControl* obj, guint indent_spaces) {
485 print_spaces (indent_spaces);
486 g_print ("[ST_XdeltaControl]\n");
487 print_spaces (indent_spaces);
488 g_print ("to_md5 = ");
489 serializeio_print_bytes (obj->to_md5, 16);
490 print_spaces (indent_spaces);
491 g_print ("to_len = ");
492 g_print ("%d\n", obj->to_len);
493 print_spaces (indent_spaces);
494 g_print ("has_data = ");
495 g_print ("%s\n", obj->has_data ? "true" : "false");
496 print_spaces (indent_spaces);
497 g_print ("source_info = ");
498 g_print ("{\n");
499 {
500 gint i;
501 for (i = 0; i < obj->source_info_len; i += 1)
502 {
503 print_spaces (indent_spaces);
504 g_print ("%d:\n", i);
505 print_spaces (indent_spaces);
506 serializeio_print_xdeltasourceinfo_obj ((obj->source_info[i]), indent_spaces + 2);
507 print_spaces (indent_spaces);
508 ;
509 }
510 }
511 g_print ("}\n");
512 print_spaces (indent_spaces);
513 g_print ("inst = ");
514 g_print ("{\n");
515 {
516 gint i;
517 for (i = 0; i < obj->inst_len; i += 1)
518 {
519 print_spaces (indent_spaces);
520 g_print ("%d:\n", i);
521 print_spaces (indent_spaces);
522 serializeio_print_xdeltainstruction_obj (& (obj->inst[i]), indent_spaces + 2);
523 print_spaces (indent_spaces);
524 ;
525 }
526 }
527 g_print ("}\n");
528 }
529
530 /* XdeltaControl Serialize
531 */
532
533 gboolean
serialize_xdeltacontrol_internal(SerialSink * sink,const guint8 to_md5[16],guint32 to_len,gboolean has_data,guint32 source_info_len,SerialXdeltaSourceInfo * const * source_info,guint32 inst_len,SerialXdeltaInstruction const * inst)534 serialize_xdeltacontrol_internal (SerialSink *sink, const guint8 to_md5[16], guint32 to_len, gboolean has_data, guint32 source_info_len, SerialXdeltaSourceInfo* const* source_info, guint32 inst_len, SerialXdeltaInstruction const* inst)
535 {
536 if (! (* sink->next_bytes_known) (sink, to_md5, 16)) goto bail;
537 if (! (* sink->next_uint) (sink, to_len)) goto bail;
538 if (! (* sink->next_bool) (sink, has_data)) goto bail;
539 {
540 gint i;
541 if (! (* sink->next_uint) (sink, source_info_len)) goto bail;
542 for (i = 0; i < source_info_len; i += 1)
543 {
544 if (! serialize_xdeltasourceinfo_internal (sink, (source_info[i])->name, (source_info[i])->md5, (source_info[i])->len, (source_info[i])->isdata, (source_info[i])->sequential)) goto bail;
545 }
546 }
547 {
548 gint i;
549 if (! (* sink->next_uint) (sink, inst_len)) goto bail;
550 for (i = 0; i < inst_len; i += 1)
551 {
552 if (! serialize_xdeltainstruction_internal (sink, (inst[i]).index, (inst[i]).offset, (inst[i]).length)) goto bail;
553 }
554 }
555 return TRUE;
556 bail:
557 return FALSE;
558 }
559
560 gboolean
serialize_xdeltacontrol_obj_internal(SerialSink * sink,SerialXdeltaControl * obj)561 serialize_xdeltacontrol_obj_internal (SerialSink *sink, SerialXdeltaControl* obj)
562 {
563 return serialize_xdeltacontrol_internal (sink, obj->to_md5, obj->to_len, obj->has_data, obj->source_info_len, obj->source_info, obj->inst_len, obj->inst);
564 }
565
566 gboolean
serialize_xdeltacontrol(SerialSink * sink,const guint8 to_md5[16],guint32 to_len,gboolean has_data,guint32 source_info_len,SerialXdeltaSourceInfo * const * source_info,guint32 inst_len,SerialXdeltaInstruction const * inst)567 serialize_xdeltacontrol (SerialSink *sink, const guint8 to_md5[16], guint32 to_len, gboolean has_data, guint32 source_info_len, SerialXdeltaSourceInfo* const* source_info, guint32 inst_len, SerialXdeltaInstruction const* inst)
568 {
569 if (! (* sink->sink_type) (sink, ST_XdeltaControl, serializeio_count_xdeltacontrol (to_md5, to_len, has_data, source_info_len, source_info, inst_len, inst), TRUE)) goto bail;
570 if (! serialize_xdeltacontrol_internal (sink, to_md5, to_len, has_data, source_info_len, source_info, inst_len, inst)) goto bail;
571 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
572 return TRUE;
573 bail:
574 return FALSE;
575 }
576
577 gboolean
serialize_xdeltacontrol_obj(SerialSink * sink,const SerialXdeltaControl * obj)578 serialize_xdeltacontrol_obj (SerialSink *sink, const SerialXdeltaControl* obj) {
579
580 return serialize_xdeltacontrol (sink, obj->to_md5, obj->to_len, obj->has_data, obj->source_info_len, obj->source_info, obj->inst_len, obj->inst);
581 }
582
583 /* XdeltaControl Unserialize
584 */
585
586 gboolean
unserialize_xdeltacontrol_internal_noalloc(SerialSource * source,SerialXdeltaControl * result)587 unserialize_xdeltacontrol_internal_noalloc (SerialSource *source, SerialXdeltaControl* result)
588 {
589 if (! (* source->next_bytes_known) (source, result->to_md5, 16)) goto bail;
590 if (! (* source->next_uint) (source, &result->to_len)) goto bail;
591 if (! (* source->next_bool) (source, &result->has_data)) goto bail;
592 {
593 gint i;
594 if (! (* source->next_uint) (source, &result->source_info_len)) goto bail;
595 if (! (result->source_info = serializeio_source_alloc (source, sizeof (SerialXdeltaSourceInfo*) * result->source_info_len))) goto bail;
596 for (i = 0; i < result->source_info_len; i += 1)
597 {
598 if (! unserialize_xdeltasourceinfo_internal (source, &(result->source_info[i]))) goto bail;
599 }
600 }
601 {
602 gint i;
603 if (! (* source->next_uint) (source, &result->inst_len)) goto bail;
604 if (! (result->inst = serializeio_source_alloc (source, sizeof (SerialXdeltaInstruction) * result->inst_len))) goto bail;
605 for (i = 0; i < result->inst_len; i += 1)
606 {
607 if (! unserialize_xdeltainstruction_internal_noalloc (source, &(result->inst[i]))) goto bail;
608 }
609 }
610 return TRUE;
611 bail:
612 return FALSE;
613 }
614
615 gboolean
unserialize_xdeltacontrol_internal(SerialSource * source,SerialXdeltaControl ** result)616 unserialize_xdeltacontrol_internal (SerialSource *source, SerialXdeltaControl** result)
617 {
618 SerialXdeltaControl* unser;
619 (*result) = NULL;
620 unser = serializeio_source_alloc (source, sizeof (SerialXdeltaControl));
621 if (! unser) goto bail;
622 if (! unserialize_xdeltacontrol_internal_noalloc (source, unser)) goto bail;
623 (*result) = unser;
624 return TRUE;
625 bail:
626 return FALSE;
627 }
628
629 gboolean
unserialize_xdeltacontrol(SerialSource * source,SerialXdeltaControl ** result)630 unserialize_xdeltacontrol (SerialSource *source, SerialXdeltaControl** result)
631 {
632 if ( (* source->source_type) (source, TRUE) != ST_XdeltaControl) goto bail;
633 if (! unserialize_xdeltacontrol_internal (source, result)) goto bail;
634 return TRUE;
635 bail:
636 return FALSE;
637 }
638
639 /* XdeltaInstruction Count
640 */
641
642 guint
serializeio_count_xdeltainstruction(guint32 index,guint32 offset,guint32 length)643 serializeio_count_xdeltainstruction (guint32 index, guint32 offset, guint32 length) {
644 guint size = sizeof (SerialXdeltaInstruction);
645 ALIGN_8 (size);
646 ALIGN_8 (size);
647 ALIGN_8 (size);
648 ALIGN_8 (size);
649 return size;
650 }
651
652 guint
serializeio_count_xdeltainstruction_obj(SerialXdeltaInstruction const * obj)653 serializeio_count_xdeltainstruction_obj (SerialXdeltaInstruction const* obj) {
654 return serializeio_count_xdeltainstruction (obj->index, obj->offset, obj->length);
655 }
656
657 /* XdeltaInstruction Print
658 */
659
660 void
serializeio_print_xdeltainstruction_obj(SerialXdeltaInstruction * obj,guint indent_spaces)661 serializeio_print_xdeltainstruction_obj (SerialXdeltaInstruction* obj, guint indent_spaces) {
662 print_spaces (indent_spaces);
663 g_print ("[ST_XdeltaInstruction]\n");
664 print_spaces (indent_spaces);
665 g_print ("index = ");
666 g_print ("%d\n", obj->index);
667 print_spaces (indent_spaces);
668 g_print ("offset = ");
669 g_print ("%d\n", obj->offset);
670 print_spaces (indent_spaces);
671 g_print ("length = ");
672 g_print ("%d\n", obj->length);
673 }
674
675 /* XdeltaInstruction Serialize
676 */
677
678 gboolean
serialize_xdeltainstruction_internal(SerialSink * sink,guint32 index,guint32 offset,guint32 length)679 serialize_xdeltainstruction_internal (SerialSink *sink, guint32 index, guint32 offset, guint32 length)
680 {
681 if (! (* sink->next_uint) (sink, index)) goto bail;
682 if (! (* sink->next_uint) (sink, offset)) goto bail;
683 if (! (* sink->next_uint) (sink, length)) goto bail;
684 return TRUE;
685 bail:
686 return FALSE;
687 }
688
689 gboolean
serialize_xdeltainstruction_obj_internal(SerialSink * sink,SerialXdeltaInstruction * obj)690 serialize_xdeltainstruction_obj_internal (SerialSink *sink, SerialXdeltaInstruction* obj)
691 {
692 return serialize_xdeltainstruction_internal (sink, obj->index, obj->offset, obj->length);
693 }
694
695 gboolean
serialize_xdeltainstruction(SerialSink * sink,guint32 index,guint32 offset,guint32 length)696 serialize_xdeltainstruction (SerialSink *sink, guint32 index, guint32 offset, guint32 length)
697 {
698 if (! (* sink->sink_type) (sink, ST_XdeltaInstruction, serializeio_count_xdeltainstruction (index, offset, length), TRUE)) goto bail;
699 if (! serialize_xdeltainstruction_internal (sink, index, offset, length)) goto bail;
700 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
701 return TRUE;
702 bail:
703 return FALSE;
704 }
705
706 gboolean
serialize_xdeltainstruction_obj(SerialSink * sink,const SerialXdeltaInstruction * obj)707 serialize_xdeltainstruction_obj (SerialSink *sink, const SerialXdeltaInstruction* obj) {
708
709 return serialize_xdeltainstruction (sink, obj->index, obj->offset, obj->length);
710 }
711
712 /* XdeltaInstruction Unserialize
713 */
714
715 gboolean
unserialize_xdeltainstruction_internal_noalloc(SerialSource * source,SerialXdeltaInstruction * result)716 unserialize_xdeltainstruction_internal_noalloc (SerialSource *source, SerialXdeltaInstruction* result)
717 {
718 if (! (* source->next_uint) (source, &result->index)) goto bail;
719 if (! (* source->next_uint) (source, &result->offset)) goto bail;
720 if (! (* source->next_uint) (source, &result->length)) goto bail;
721 return TRUE;
722 bail:
723 return FALSE;
724 }
725
726 gboolean
unserialize_xdeltainstruction_internal(SerialSource * source,SerialXdeltaInstruction ** result)727 unserialize_xdeltainstruction_internal (SerialSource *source, SerialXdeltaInstruction** result)
728 {
729 SerialXdeltaInstruction* unser;
730 (*result) = NULL;
731 unser = serializeio_source_alloc (source, sizeof (SerialXdeltaInstruction));
732 if (! unser) goto bail;
733 if (! unserialize_xdeltainstruction_internal_noalloc (source, unser)) goto bail;
734 (*result) = unser;
735 return TRUE;
736 bail:
737 return FALSE;
738 }
739
740 gboolean
unserialize_xdeltainstruction(SerialSource * source,SerialXdeltaInstruction ** result)741 unserialize_xdeltainstruction (SerialSource *source, SerialXdeltaInstruction** result)
742 {
743 if ( (* source->source_type) (source, TRUE) != ST_XdeltaInstruction) goto bail;
744 if (! unserialize_xdeltainstruction_internal (source, result)) goto bail;
745 return TRUE;
746 bail:
747 return FALSE;
748 }
749
750 /* RsyncIndexElt Count
751 */
752
753 guint
serializeio_count_rsyncindexelt(const guint8 md5[16],SerialXdeltaChecksum const * cksum)754 serializeio_count_rsyncindexelt (const guint8 md5[16], SerialXdeltaChecksum const* cksum) {
755 guint size = sizeof (SerialRsyncIndexElt);
756 ALIGN_8 (size);
757 ALIGN_8 (size);
758 size += serializeio_count_xdeltachecksum_obj (cksum) - sizeof (SerialXdeltaChecksum);
759 ALIGN_8 (size);
760 return size;
761 }
762
763 guint
serializeio_count_rsyncindexelt_obj(SerialRsyncIndexElt const * obj)764 serializeio_count_rsyncindexelt_obj (SerialRsyncIndexElt const* obj) {
765 return serializeio_count_rsyncindexelt (obj->md5, &obj->cksum);
766 }
767
768 /* RsyncIndexElt Print
769 */
770
771 void
serializeio_print_rsyncindexelt_obj(SerialRsyncIndexElt * obj,guint indent_spaces)772 serializeio_print_rsyncindexelt_obj (SerialRsyncIndexElt* obj, guint indent_spaces) {
773 print_spaces (indent_spaces);
774 g_print ("[ST_RsyncIndexElt]\n");
775 print_spaces (indent_spaces);
776 g_print ("md5 = ");
777 serializeio_print_bytes (obj->md5, 16);
778 print_spaces (indent_spaces);
779 g_print ("cksum = ");
780 g_print ("{\n");
781 serializeio_print_xdeltachecksum_obj (& obj->cksum, indent_spaces + 2);
782 print_spaces (indent_spaces);
783 ;
784 g_print ("}\n");
785 }
786
787 /* RsyncIndexElt Serialize
788 */
789
790 gboolean
serialize_rsyncindexelt_internal(SerialSink * sink,const guint8 md5[16],SerialXdeltaChecksum const * cksum)791 serialize_rsyncindexelt_internal (SerialSink *sink, const guint8 md5[16], SerialXdeltaChecksum const* cksum)
792 {
793 if (! (* sink->next_bytes_known) (sink, md5, 16)) goto bail;
794 if (! serialize_xdeltachecksum_internal (sink, cksum->high, cksum->low)) goto bail;
795 return TRUE;
796 bail:
797 return FALSE;
798 }
799
800 gboolean
serialize_rsyncindexelt_obj_internal(SerialSink * sink,SerialRsyncIndexElt * obj)801 serialize_rsyncindexelt_obj_internal (SerialSink *sink, SerialRsyncIndexElt* obj)
802 {
803 return serialize_rsyncindexelt_internal (sink, obj->md5, &obj->cksum);
804 }
805
806 gboolean
serialize_rsyncindexelt(SerialSink * sink,const guint8 md5[16],SerialXdeltaChecksum const * cksum)807 serialize_rsyncindexelt (SerialSink *sink, const guint8 md5[16], SerialXdeltaChecksum const* cksum)
808 {
809 if (! (* sink->sink_type) (sink, ST_RsyncIndexElt, serializeio_count_rsyncindexelt (md5, cksum), TRUE)) goto bail;
810 if (! serialize_rsyncindexelt_internal (sink, md5, cksum)) goto bail;
811 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
812 return TRUE;
813 bail:
814 return FALSE;
815 }
816
817 gboolean
serialize_rsyncindexelt_obj(SerialSink * sink,const SerialRsyncIndexElt * obj)818 serialize_rsyncindexelt_obj (SerialSink *sink, const SerialRsyncIndexElt* obj) {
819
820 return serialize_rsyncindexelt (sink, obj->md5, &obj->cksum);
821 }
822
823 /* RsyncIndexElt Unserialize
824 */
825
826 gboolean
unserialize_rsyncindexelt_internal_noalloc(SerialSource * source,SerialRsyncIndexElt * result)827 unserialize_rsyncindexelt_internal_noalloc (SerialSource *source, SerialRsyncIndexElt* result)
828 {
829 if (! (* source->next_bytes_known) (source, result->md5, 16)) goto bail;
830 if (! unserialize_xdeltachecksum_internal_noalloc (source, &result->cksum)) goto bail;
831 return TRUE;
832 bail:
833 return FALSE;
834 }
835
836 gboolean
unserialize_rsyncindexelt_internal(SerialSource * source,SerialRsyncIndexElt ** result)837 unserialize_rsyncindexelt_internal (SerialSource *source, SerialRsyncIndexElt** result)
838 {
839 SerialRsyncIndexElt* unser;
840 (*result) = NULL;
841 unser = serializeio_source_alloc (source, sizeof (SerialRsyncIndexElt));
842 if (! unser) goto bail;
843 if (! unserialize_rsyncindexelt_internal_noalloc (source, unser)) goto bail;
844 (*result) = unser;
845 return TRUE;
846 bail:
847 return FALSE;
848 }
849
850 gboolean
unserialize_rsyncindexelt(SerialSource * source,SerialRsyncIndexElt ** result)851 unserialize_rsyncindexelt (SerialSource *source, SerialRsyncIndexElt** result)
852 {
853 if ( (* source->source_type) (source, TRUE) != ST_RsyncIndexElt) goto bail;
854 if (! unserialize_rsyncindexelt_internal (source, result)) goto bail;
855 return TRUE;
856 bail:
857 return FALSE;
858 }
859
860 /* RsyncIndex Count
861 */
862
863 guint
serializeio_count_rsyncindex(guint32 seg_len,guint32 file_len,const guint8 file_md5[16],guint32 index_len,SerialRsyncIndexElt const * index)864 serializeio_count_rsyncindex (guint32 seg_len, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialRsyncIndexElt const* index) {
865 guint size = sizeof (SerialRsyncIndex);
866 ALIGN_8 (size);
867 ALIGN_8 (size);
868 ALIGN_8 (size);
869 ALIGN_8 (size);
870 {
871 gint i;
872 for (i = 0; i < index_len; i += 1)
873 {
874 size += serializeio_count_rsyncindexelt_obj (& (index[i]));
875 }
876 }
877 ALIGN_8 (size);
878 return size;
879 }
880
881 guint
serializeio_count_rsyncindex_obj(SerialRsyncIndex const * obj)882 serializeio_count_rsyncindex_obj (SerialRsyncIndex const* obj) {
883 return serializeio_count_rsyncindex (obj->seg_len, obj->file_len, obj->file_md5, obj->index_len, obj->index);
884 }
885
886 /* RsyncIndex Print
887 */
888
889 void
serializeio_print_rsyncindex_obj(SerialRsyncIndex * obj,guint indent_spaces)890 serializeio_print_rsyncindex_obj (SerialRsyncIndex* obj, guint indent_spaces) {
891 print_spaces (indent_spaces);
892 g_print ("[ST_RsyncIndex]\n");
893 print_spaces (indent_spaces);
894 g_print ("seg_len = ");
895 g_print ("%d\n", obj->seg_len);
896 print_spaces (indent_spaces);
897 g_print ("file_len = ");
898 g_print ("%d\n", obj->file_len);
899 print_spaces (indent_spaces);
900 g_print ("file_md5 = ");
901 serializeio_print_bytes (obj->file_md5, 16);
902 print_spaces (indent_spaces);
903 g_print ("index = ");
904 g_print ("{\n");
905 {
906 gint i;
907 for (i = 0; i < obj->index_len; i += 1)
908 {
909 print_spaces (indent_spaces);
910 g_print ("%d:\n", i);
911 print_spaces (indent_spaces);
912 serializeio_print_rsyncindexelt_obj (& (obj->index[i]), indent_spaces + 2);
913 print_spaces (indent_spaces);
914 ;
915 }
916 }
917 g_print ("}\n");
918 }
919
920 /* RsyncIndex Serialize
921 */
922
923 gboolean
serialize_rsyncindex_internal(SerialSink * sink,guint32 seg_len,guint32 file_len,const guint8 file_md5[16],guint32 index_len,SerialRsyncIndexElt const * index)924 serialize_rsyncindex_internal (SerialSink *sink, guint32 seg_len, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialRsyncIndexElt const* index)
925 {
926 if (! (* sink->next_uint) (sink, seg_len)) goto bail;
927 if (! (* sink->next_uint) (sink, file_len)) goto bail;
928 if (! (* sink->next_bytes_known) (sink, file_md5, 16)) goto bail;
929 {
930 gint i;
931 if (! (* sink->next_uint) (sink, index_len)) goto bail;
932 for (i = 0; i < index_len; i += 1)
933 {
934 if (! serialize_rsyncindexelt_internal (sink, (index[i]).md5, &(index[i]).cksum)) goto bail;
935 }
936 }
937 return TRUE;
938 bail:
939 return FALSE;
940 }
941
942 gboolean
serialize_rsyncindex_obj_internal(SerialSink * sink,SerialRsyncIndex * obj)943 serialize_rsyncindex_obj_internal (SerialSink *sink, SerialRsyncIndex* obj)
944 {
945 return serialize_rsyncindex_internal (sink, obj->seg_len, obj->file_len, obj->file_md5, obj->index_len, obj->index);
946 }
947
948 gboolean
serialize_rsyncindex(SerialSink * sink,guint32 seg_len,guint32 file_len,const guint8 file_md5[16],guint32 index_len,SerialRsyncIndexElt const * index)949 serialize_rsyncindex (SerialSink *sink, guint32 seg_len, guint32 file_len, const guint8 file_md5[16], guint32 index_len, SerialRsyncIndexElt const* index)
950 {
951 if (! (* sink->sink_type) (sink, ST_RsyncIndex, serializeio_count_rsyncindex (seg_len, file_len, file_md5, index_len, index), TRUE)) goto bail;
952 if (! serialize_rsyncindex_internal (sink, seg_len, file_len, file_md5, index_len, index)) goto bail;
953 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
954 return TRUE;
955 bail:
956 return FALSE;
957 }
958
959 gboolean
serialize_rsyncindex_obj(SerialSink * sink,const SerialRsyncIndex * obj)960 serialize_rsyncindex_obj (SerialSink *sink, const SerialRsyncIndex* obj) {
961
962 return serialize_rsyncindex (sink, obj->seg_len, obj->file_len, obj->file_md5, obj->index_len, obj->index);
963 }
964
965 /* RsyncIndex Unserialize
966 */
967
968 gboolean
unserialize_rsyncindex_internal_noalloc(SerialSource * source,SerialRsyncIndex * result)969 unserialize_rsyncindex_internal_noalloc (SerialSource *source, SerialRsyncIndex* result)
970 {
971 if (! (* source->next_uint) (source, &result->seg_len)) goto bail;
972 if (! (* source->next_uint) (source, &result->file_len)) goto bail;
973 if (! (* source->next_bytes_known) (source, result->file_md5, 16)) goto bail;
974 {
975 gint i;
976 if (! (* source->next_uint) (source, &result->index_len)) goto bail;
977 if (! (result->index = serializeio_source_alloc (source, sizeof (SerialRsyncIndexElt) * result->index_len))) goto bail;
978 for (i = 0; i < result->index_len; i += 1)
979 {
980 if (! unserialize_rsyncindexelt_internal_noalloc (source, &(result->index[i]))) goto bail;
981 }
982 }
983 return TRUE;
984 bail:
985 return FALSE;
986 }
987
988 gboolean
unserialize_rsyncindex_internal(SerialSource * source,SerialRsyncIndex ** result)989 unserialize_rsyncindex_internal (SerialSource *source, SerialRsyncIndex** result)
990 {
991 SerialRsyncIndex* unser;
992 (*result) = NULL;
993 unser = serializeio_source_alloc (source, sizeof (SerialRsyncIndex));
994 if (! unser) goto bail;
995 if (! unserialize_rsyncindex_internal_noalloc (source, unser)) goto bail;
996 (*result) = unser;
997 return TRUE;
998 bail:
999 return FALSE;
1000 }
1001
1002 gboolean
unserialize_rsyncindex(SerialSource * source,SerialRsyncIndex ** result)1003 unserialize_rsyncindex (SerialSource *source, SerialRsyncIndex** result)
1004 {
1005 if ( (* source->source_type) (source, TRUE) != ST_RsyncIndex) goto bail;
1006 if (! unserialize_rsyncindex_internal (source, result)) goto bail;
1007 return TRUE;
1008 bail:
1009 return FALSE;
1010 }
1011
1012 /* Version0SourceInfo Count
1013 */
1014
1015 guint
serializeio_count_version0sourceinfo(const guint8 md5[16],const guint8 real_md5[16],guint32 length)1016 serializeio_count_version0sourceinfo (const guint8 md5[16], const guint8 real_md5[16], guint32 length) {
1017 guint size = sizeof (SerialVersion0SourceInfo);
1018 ALIGN_8 (size);
1019 ALIGN_8 (size);
1020 ALIGN_8 (size);
1021 ALIGN_8 (size);
1022 return size;
1023 }
1024
1025 guint
serializeio_count_version0sourceinfo_obj(SerialVersion0SourceInfo const * obj)1026 serializeio_count_version0sourceinfo_obj (SerialVersion0SourceInfo const* obj) {
1027 return serializeio_count_version0sourceinfo (obj->md5, obj->real_md5, obj->length);
1028 }
1029
1030 /* Version0SourceInfo Print
1031 */
1032
1033 void
serializeio_print_version0sourceinfo_obj(SerialVersion0SourceInfo * obj,guint indent_spaces)1034 serializeio_print_version0sourceinfo_obj (SerialVersion0SourceInfo* obj, guint indent_spaces) {
1035 print_spaces (indent_spaces);
1036 g_print ("[ST_Version0SourceInfo]\n");
1037 print_spaces (indent_spaces);
1038 g_print ("md5 = ");
1039 serializeio_print_bytes (obj->md5, 16);
1040 print_spaces (indent_spaces);
1041 g_print ("real_md5 = ");
1042 serializeio_print_bytes (obj->real_md5, 16);
1043 print_spaces (indent_spaces);
1044 g_print ("length = ");
1045 g_print ("%d\n", obj->length);
1046 }
1047
1048 /* Version0SourceInfo Serialize
1049 */
1050
1051 gboolean
serialize_version0sourceinfo_internal(SerialSink * sink,const guint8 md5[16],const guint8 real_md5[16],guint32 length)1052 serialize_version0sourceinfo_internal (SerialSink *sink, const guint8 md5[16], const guint8 real_md5[16], guint32 length)
1053 {
1054 if (! (* sink->next_bytes_known) (sink, md5, 16)) goto bail;
1055 if (! (* sink->next_bytes_known) (sink, real_md5, 16)) goto bail;
1056 if (! (* sink->next_uint) (sink, length)) goto bail;
1057 return TRUE;
1058 bail:
1059 return FALSE;
1060 }
1061
1062 gboolean
serialize_version0sourceinfo_obj_internal(SerialSink * sink,SerialVersion0SourceInfo * obj)1063 serialize_version0sourceinfo_obj_internal (SerialSink *sink, SerialVersion0SourceInfo* obj)
1064 {
1065 return serialize_version0sourceinfo_internal (sink, obj->md5, obj->real_md5, obj->length);
1066 }
1067
1068 gboolean
serialize_version0sourceinfo(SerialSink * sink,const guint8 md5[16],const guint8 real_md5[16],guint32 length)1069 serialize_version0sourceinfo (SerialSink *sink, const guint8 md5[16], const guint8 real_md5[16], guint32 length)
1070 {
1071 if (! (* sink->sink_type) (sink, ST_Version0SourceInfo, serializeio_count_version0sourceinfo (md5, real_md5, length), TRUE)) goto bail;
1072 if (! serialize_version0sourceinfo_internal (sink, md5, real_md5, length)) goto bail;
1073 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
1074 return TRUE;
1075 bail:
1076 return FALSE;
1077 }
1078
1079 gboolean
serialize_version0sourceinfo_obj(SerialSink * sink,const SerialVersion0SourceInfo * obj)1080 serialize_version0sourceinfo_obj (SerialSink *sink, const SerialVersion0SourceInfo* obj) {
1081
1082 return serialize_version0sourceinfo (sink, obj->md5, obj->real_md5, obj->length);
1083 }
1084
1085 /* Version0SourceInfo Unserialize
1086 */
1087
1088 gboolean
unserialize_version0sourceinfo_internal_noalloc(SerialSource * source,SerialVersion0SourceInfo * result)1089 unserialize_version0sourceinfo_internal_noalloc (SerialSource *source, SerialVersion0SourceInfo* result)
1090 {
1091 if (! (* source->next_bytes_known) (source, result->md5, 16)) goto bail;
1092 if (! (* source->next_bytes_known) (source, result->real_md5, 16)) goto bail;
1093 if (! (* source->next_uint) (source, &result->length)) goto bail;
1094 return TRUE;
1095 bail:
1096 return FALSE;
1097 }
1098
1099 gboolean
unserialize_version0sourceinfo_internal(SerialSource * source,SerialVersion0SourceInfo ** result)1100 unserialize_version0sourceinfo_internal (SerialSource *source, SerialVersion0SourceInfo** result)
1101 {
1102 SerialVersion0SourceInfo* unser;
1103 (*result) = NULL;
1104 unser = serializeio_source_alloc (source, sizeof (SerialVersion0SourceInfo));
1105 if (! unser) goto bail;
1106 if (! unserialize_version0sourceinfo_internal_noalloc (source, unser)) goto bail;
1107 (*result) = unser;
1108 return TRUE;
1109 bail:
1110 return FALSE;
1111 }
1112
1113 gboolean
unserialize_version0sourceinfo(SerialSource * source,SerialVersion0SourceInfo ** result)1114 unserialize_version0sourceinfo (SerialSource *source, SerialVersion0SourceInfo** result)
1115 {
1116 if ( (* source->source_type) (source, TRUE) != ST_Version0SourceInfo) goto bail;
1117 if (! unserialize_version0sourceinfo_internal (source, result)) goto bail;
1118 return TRUE;
1119 bail:
1120 return FALSE;
1121 }
1122
1123 /* Version0Control Count
1124 */
1125
1126 guint
serializeio_count_version0control(gboolean normalized,guint32 data_len,SerialVersion0SourceInfo const * to_info,guint32 source_info_len,SerialVersion0SourceInfo * const * source_info,guint32 inst_len,SerialVersion0Instruction const * inst)1127 serializeio_count_version0control (gboolean normalized, guint32 data_len, SerialVersion0SourceInfo const* to_info, guint32 source_info_len, SerialVersion0SourceInfo* const* source_info, guint32 inst_len, SerialVersion0Instruction const* inst) {
1128 guint size = sizeof (SerialVersion0Control);
1129 ALIGN_8 (size);
1130 ALIGN_8 (size);
1131 ALIGN_8 (size);
1132 size += serializeio_count_version0sourceinfo_obj (to_info) - sizeof (SerialVersion0SourceInfo);
1133 ALIGN_8 (size);
1134 {
1135 gint i;
1136 for (i = 0; i < source_info_len; i += 1)
1137 {
1138 size += serializeio_count_version0sourceinfo_obj ((source_info[i])) + sizeof (void*);
1139 }
1140 }
1141 ALIGN_8 (size);
1142 {
1143 gint i;
1144 for (i = 0; i < inst_len; i += 1)
1145 {
1146 size += serializeio_count_version0instruction_obj (& (inst[i]));
1147 }
1148 }
1149 ALIGN_8 (size);
1150 return size;
1151 }
1152
1153 guint
serializeio_count_version0control_obj(SerialVersion0Control const * obj)1154 serializeio_count_version0control_obj (SerialVersion0Control const* obj) {
1155 return serializeio_count_version0control (obj->normalized, obj->data_len, &obj->to_info, obj->source_info_len, obj->source_info, obj->inst_len, obj->inst);
1156 }
1157
1158 /* Version0Control Print
1159 */
1160
1161 void
serializeio_print_version0control_obj(SerialVersion0Control * obj,guint indent_spaces)1162 serializeio_print_version0control_obj (SerialVersion0Control* obj, guint indent_spaces) {
1163 print_spaces (indent_spaces);
1164 g_print ("[ST_Version0Control]\n");
1165 print_spaces (indent_spaces);
1166 g_print ("normalized = ");
1167 g_print ("%s\n", obj->normalized ? "true" : "false");
1168 print_spaces (indent_spaces);
1169 g_print ("data_len = ");
1170 g_print ("%d\n", obj->data_len);
1171 print_spaces (indent_spaces);
1172 g_print ("to_info = ");
1173 g_print ("{\n");
1174 serializeio_print_version0sourceinfo_obj (& obj->to_info, indent_spaces + 2);
1175 print_spaces (indent_spaces);
1176 ;
1177 g_print ("}\n");
1178 print_spaces (indent_spaces);
1179 g_print ("source_info = ");
1180 g_print ("{\n");
1181 {
1182 gint i;
1183 for (i = 0; i < obj->source_info_len; i += 1)
1184 {
1185 print_spaces (indent_spaces);
1186 g_print ("%d:\n", i);
1187 print_spaces (indent_spaces);
1188 serializeio_print_version0sourceinfo_obj ((obj->source_info[i]), indent_spaces + 2);
1189 print_spaces (indent_spaces);
1190 ;
1191 }
1192 }
1193 g_print ("}\n");
1194 print_spaces (indent_spaces);
1195 g_print ("inst = ");
1196 g_print ("{\n");
1197 {
1198 gint i;
1199 for (i = 0; i < obj->inst_len; i += 1)
1200 {
1201 print_spaces (indent_spaces);
1202 g_print ("%d:\n", i);
1203 print_spaces (indent_spaces);
1204 serializeio_print_version0instruction_obj (& (obj->inst[i]), indent_spaces + 2);
1205 print_spaces (indent_spaces);
1206 ;
1207 }
1208 }
1209 g_print ("}\n");
1210 }
1211
1212 /* Version0Control Serialize
1213 */
1214
1215 gboolean
serialize_version0control_internal(SerialSink * sink,gboolean normalized,guint32 data_len,SerialVersion0SourceInfo const * to_info,guint32 source_info_len,SerialVersion0SourceInfo * const * source_info,guint32 inst_len,SerialVersion0Instruction const * inst)1216 serialize_version0control_internal (SerialSink *sink, gboolean normalized, guint32 data_len, SerialVersion0SourceInfo const* to_info, guint32 source_info_len, SerialVersion0SourceInfo* const* source_info, guint32 inst_len, SerialVersion0Instruction const* inst)
1217 {
1218 if (! (* sink->next_bool) (sink, normalized)) goto bail;
1219 if (! (* sink->next_uint) (sink, data_len)) goto bail;
1220 if (! serialize_version0sourceinfo_internal (sink, to_info->md5, to_info->real_md5, to_info->length)) goto bail;
1221 {
1222 gint i;
1223 if (! (* sink->next_uint) (sink, source_info_len)) goto bail;
1224 for (i = 0; i < source_info_len; i += 1)
1225 {
1226 if (! serialize_version0sourceinfo_internal (sink, (source_info[i])->md5, (source_info[i])->real_md5, (source_info[i])->length)) goto bail;
1227 }
1228 }
1229 {
1230 gint i;
1231 if (! (* sink->next_uint) (sink, inst_len)) goto bail;
1232 for (i = 0; i < inst_len; i += 1)
1233 {
1234 if (! serialize_version0instruction_internal (sink, (inst[i]).offset, (inst[i]).length)) goto bail;
1235 }
1236 }
1237 return TRUE;
1238 bail:
1239 return FALSE;
1240 }
1241
1242 gboolean
serialize_version0control_obj_internal(SerialSink * sink,SerialVersion0Control * obj)1243 serialize_version0control_obj_internal (SerialSink *sink, SerialVersion0Control* obj)
1244 {
1245 return serialize_version0control_internal (sink, obj->normalized, obj->data_len, &obj->to_info, obj->source_info_len, obj->source_info, obj->inst_len, obj->inst);
1246 }
1247
1248 gboolean
serialize_version0control(SerialSink * sink,gboolean normalized,guint32 data_len,SerialVersion0SourceInfo const * to_info,guint32 source_info_len,SerialVersion0SourceInfo * const * source_info,guint32 inst_len,SerialVersion0Instruction const * inst)1249 serialize_version0control (SerialSink *sink, gboolean normalized, guint32 data_len, SerialVersion0SourceInfo const* to_info, guint32 source_info_len, SerialVersion0SourceInfo* const* source_info, guint32 inst_len, SerialVersion0Instruction const* inst)
1250 {
1251 if (! (* sink->sink_type) (sink, ST_Version0Control, serializeio_count_version0control (normalized, data_len, to_info, source_info_len, source_info, inst_len, inst), TRUE)) goto bail;
1252 if (! serialize_version0control_internal (sink, normalized, data_len, to_info, source_info_len, source_info, inst_len, inst)) goto bail;
1253 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
1254 return TRUE;
1255 bail:
1256 return FALSE;
1257 }
1258
1259 gboolean
serialize_version0control_obj(SerialSink * sink,const SerialVersion0Control * obj)1260 serialize_version0control_obj (SerialSink *sink, const SerialVersion0Control* obj) {
1261
1262 return serialize_version0control (sink, obj->normalized, obj->data_len, &obj->to_info, obj->source_info_len, obj->source_info, obj->inst_len, obj->inst);
1263 }
1264
1265 /* Version0Control Unserialize
1266 */
1267
1268 gboolean
unserialize_version0control_internal_noalloc(SerialSource * source,SerialVersion0Control * result)1269 unserialize_version0control_internal_noalloc (SerialSource *source, SerialVersion0Control* result)
1270 {
1271 if (! (* source->next_bool) (source, &result->normalized)) goto bail;
1272 if (! (* source->next_uint) (source, &result->data_len)) goto bail;
1273 if (! unserialize_version0sourceinfo_internal_noalloc (source, &result->to_info)) goto bail;
1274 {
1275 gint i;
1276 if (! (* source->next_uint) (source, &result->source_info_len)) goto bail;
1277 if (! (result->source_info = serializeio_source_alloc (source, sizeof (SerialVersion0SourceInfo*) * result->source_info_len))) goto bail;
1278 for (i = 0; i < result->source_info_len; i += 1)
1279 {
1280 if (! unserialize_version0sourceinfo_internal (source, &(result->source_info[i]))) goto bail;
1281 }
1282 }
1283 {
1284 gint i;
1285 if (! (* source->next_uint) (source, &result->inst_len)) goto bail;
1286 if (! (result->inst = serializeio_source_alloc (source, sizeof (SerialVersion0Instruction) * result->inst_len))) goto bail;
1287 for (i = 0; i < result->inst_len; i += 1)
1288 {
1289 if (! unserialize_version0instruction_internal_noalloc (source, &(result->inst[i]))) goto bail;
1290 }
1291 }
1292 return TRUE;
1293 bail:
1294 return FALSE;
1295 }
1296
1297 gboolean
unserialize_version0control_internal(SerialSource * source,SerialVersion0Control ** result)1298 unserialize_version0control_internal (SerialSource *source, SerialVersion0Control** result)
1299 {
1300 SerialVersion0Control* unser;
1301 (*result) = NULL;
1302 unser = serializeio_source_alloc (source, sizeof (SerialVersion0Control));
1303 if (! unser) goto bail;
1304 if (! unserialize_version0control_internal_noalloc (source, unser)) goto bail;
1305 (*result) = unser;
1306 return TRUE;
1307 bail:
1308 return FALSE;
1309 }
1310
1311 gboolean
unserialize_version0control(SerialSource * source,SerialVersion0Control ** result)1312 unserialize_version0control (SerialSource *source, SerialVersion0Control** result)
1313 {
1314 if ( (* source->source_type) (source, TRUE) != ST_Version0Control) goto bail;
1315 if (! unserialize_version0control_internal (source, result)) goto bail;
1316 return TRUE;
1317 bail:
1318 return FALSE;
1319 }
1320
1321 /* Version0Instruction Count
1322 */
1323
1324 guint
serializeio_count_version0instruction(guint32 offset,guint32 length)1325 serializeio_count_version0instruction (guint32 offset, guint32 length) {
1326 guint size = sizeof (SerialVersion0Instruction);
1327 ALIGN_8 (size);
1328 ALIGN_8 (size);
1329 ALIGN_8 (size);
1330 return size;
1331 }
1332
1333 guint
serializeio_count_version0instruction_obj(SerialVersion0Instruction const * obj)1334 serializeio_count_version0instruction_obj (SerialVersion0Instruction const* obj) {
1335 return serializeio_count_version0instruction (obj->offset, obj->length);
1336 }
1337
1338 /* Version0Instruction Print
1339 */
1340
1341 void
serializeio_print_version0instruction_obj(SerialVersion0Instruction * obj,guint indent_spaces)1342 serializeio_print_version0instruction_obj (SerialVersion0Instruction* obj, guint indent_spaces) {
1343 print_spaces (indent_spaces);
1344 g_print ("[ST_Version0Instruction]\n");
1345 print_spaces (indent_spaces);
1346 g_print ("offset = ");
1347 g_print ("%d\n", obj->offset);
1348 print_spaces (indent_spaces);
1349 g_print ("length = ");
1350 g_print ("%d\n", obj->length);
1351 }
1352
1353 /* Version0Instruction Serialize
1354 */
1355
1356 gboolean
serialize_version0instruction_internal(SerialSink * sink,guint32 offset,guint32 length)1357 serialize_version0instruction_internal (SerialSink *sink, guint32 offset, guint32 length)
1358 {
1359 if (! (* sink->next_uint) (sink, offset)) goto bail;
1360 if (! (* sink->next_uint) (sink, length)) goto bail;
1361 return TRUE;
1362 bail:
1363 return FALSE;
1364 }
1365
1366 gboolean
serialize_version0instruction_obj_internal(SerialSink * sink,SerialVersion0Instruction * obj)1367 serialize_version0instruction_obj_internal (SerialSink *sink, SerialVersion0Instruction* obj)
1368 {
1369 return serialize_version0instruction_internal (sink, obj->offset, obj->length);
1370 }
1371
1372 gboolean
serialize_version0instruction(SerialSink * sink,guint32 offset,guint32 length)1373 serialize_version0instruction (SerialSink *sink, guint32 offset, guint32 length)
1374 {
1375 if (! (* sink->sink_type) (sink, ST_Version0Instruction, serializeio_count_version0instruction (offset, length), TRUE)) goto bail;
1376 if (! serialize_version0instruction_internal (sink, offset, length)) goto bail;
1377 if (sink->sink_quantum && ! sink->sink_quantum (sink)) goto bail;
1378 return TRUE;
1379 bail:
1380 return FALSE;
1381 }
1382
1383 gboolean
serialize_version0instruction_obj(SerialSink * sink,const SerialVersion0Instruction * obj)1384 serialize_version0instruction_obj (SerialSink *sink, const SerialVersion0Instruction* obj) {
1385
1386 return serialize_version0instruction (sink, obj->offset, obj->length);
1387 }
1388
1389 /* Version0Instruction Unserialize
1390 */
1391
1392 gboolean
unserialize_version0instruction_internal_noalloc(SerialSource * source,SerialVersion0Instruction * result)1393 unserialize_version0instruction_internal_noalloc (SerialSource *source, SerialVersion0Instruction* result)
1394 {
1395 if (! (* source->next_uint) (source, &result->offset)) goto bail;
1396 if (! (* source->next_uint) (source, &result->length)) goto bail;
1397 return TRUE;
1398 bail:
1399 return FALSE;
1400 }
1401
1402 gboolean
unserialize_version0instruction_internal(SerialSource * source,SerialVersion0Instruction ** result)1403 unserialize_version0instruction_internal (SerialSource *source, SerialVersion0Instruction** result)
1404 {
1405 SerialVersion0Instruction* unser;
1406 (*result) = NULL;
1407 unser = serializeio_source_alloc (source, sizeof (SerialVersion0Instruction));
1408 if (! unser) goto bail;
1409 if (! unserialize_version0instruction_internal_noalloc (source, unser)) goto bail;
1410 (*result) = unser;
1411 return TRUE;
1412 bail:
1413 return FALSE;
1414 }
1415
1416 gboolean
unserialize_version0instruction(SerialSource * source,SerialVersion0Instruction ** result)1417 unserialize_version0instruction (SerialSource *source, SerialVersion0Instruction** result)
1418 {
1419 if ( (* source->source_type) (source, TRUE) != ST_Version0Instruction) goto bail;
1420 if (! unserialize_version0instruction_internal (source, result)) goto bail;
1421 return TRUE;
1422 bail:
1423 return FALSE;
1424 }
1425
1426 void
xd_generate_void_event_internal(XdVoidEventCode _code,const char * _srcfile,gint _srcline)1427 xd_generate_void_event_internal (XdVoidEventCode _code, const char* _srcfile, gint _srcline)
1428 {
1429 XdVoidEvent *_e = g_new0 (XdVoidEvent, 1);
1430 _e->code = _code.code;
1431 _e->srcline = _srcline;
1432 _e->srcfile = _srcfile;
1433 eventdelivery_event_deliver ((GenericEvent*) _e);
1434 }
1435
1436 const XdVoidEventCode EC_XdTooFewSources = { EC_XdTooFewSourcesValue };
1437
1438 const XdVoidEventCode EC_XdTooManySources = { EC_XdTooManySourcesValue };
1439
1440 void
xd_generate_int_event_internal(XdIntEventCode _code,const char * _srcfile,gint _srcline,int index)1441 xd_generate_int_event_internal (XdIntEventCode _code, const char* _srcfile, gint _srcline, int index)
1442 {
1443 XdIntEvent *_e = g_new0 (XdIntEvent, 1);
1444 _e->code = _code.code;
1445 _e->srcline = _srcline;
1446 _e->srcfile = _srcfile;
1447 _e->index = index;
1448 eventdelivery_event_deliver ((GenericEvent*) _e);
1449 }
1450
1451 const char*
Xd_Int_event_field_to_string(GenericEvent * ev,gint field)1452 Xd_Int_event_field_to_string (GenericEvent* ev, gint field)
1453 {
1454 XdIntEvent* it = (XdIntEvent*) ev;
1455 switch (field)
1456 {
1457 case 0: return eventdelivery_int_to_string (it->index);
1458 default: abort ();
1459 }
1460 }
1461
1462 const XdIntEventCode EC_XdOutOfRangeSourceIndex = { EC_XdOutOfRangeSourceIndexValue };
1463
1464 const XdVoidEventCode EC_XdInvalidControl = { EC_XdInvalidControlValue };
1465
1466 const XdVoidEventCode EC_XdInvalidRsyncCache = { EC_XdInvalidRsyncCacheValue };
1467
1468 const XdVoidEventCode EC_XdIncompatibleDelta = { EC_XdIncompatibleDeltaValue };
1469
1470 void
xd_generate_handlestringstring_event_internal(XdHandleStringStringEventCode _code,const char * _srcfile,gint _srcline,FileHandle * stream,const char * expected,const char * received)1471 xd_generate_handlestringstring_event_internal (XdHandleStringStringEventCode _code, const char* _srcfile, gint _srcline, FileHandle* stream, const char* expected, const char* received)
1472 {
1473 XdHandleStringStringEvent *_e = g_new0 (XdHandleStringStringEvent, 1);
1474 _e->code = _code.code;
1475 _e->srcline = _srcline;
1476 _e->srcfile = _srcfile;
1477 _e->stream = stream;
1478 _e->expected = expected;
1479 _e->received = received;
1480 eventdelivery_event_deliver ((GenericEvent*) _e);
1481 }
1482
1483 const char*
Xd_HandleStringString_event_field_to_string(GenericEvent * ev,gint field)1484 Xd_HandleStringString_event_field_to_string (GenericEvent* ev, gint field)
1485 {
1486 XdHandleStringStringEvent* it = (XdHandleStringStringEvent*) ev;
1487 switch (field)
1488 {
1489 case 0: return eventdelivery_handle_to_string (it->stream);
1490 case 1: return eventdelivery_string_to_string (it->expected);
1491 case 2: return eventdelivery_string_to_string (it->received);
1492 default: abort ();
1493 }
1494 }
1495
1496 const XdHandleStringStringEventCode EC_XdStreamChecksumFailed = { EC_XdStreamChecksumFailedValue };
1497
1498 void
xd_generate_handleintint_event_internal(XdHandleIntIntEventCode _code,const char * _srcfile,gint _srcline,FileHandle * stream,int expected,int received)1499 xd_generate_handleintint_event_internal (XdHandleIntIntEventCode _code, const char* _srcfile, gint _srcline, FileHandle* stream, int expected, int received)
1500 {
1501 XdHandleIntIntEvent *_e = g_new0 (XdHandleIntIntEvent, 1);
1502 _e->code = _code.code;
1503 _e->srcline = _srcline;
1504 _e->srcfile = _srcfile;
1505 _e->stream = stream;
1506 _e->expected = expected;
1507 _e->received = received;
1508 eventdelivery_event_deliver ((GenericEvent*) _e);
1509 }
1510
1511 const char*
Xd_HandleIntInt_event_field_to_string(GenericEvent * ev,gint field)1512 Xd_HandleIntInt_event_field_to_string (GenericEvent* ev, gint field)
1513 {
1514 XdHandleIntIntEvent* it = (XdHandleIntIntEvent*) ev;
1515 switch (field)
1516 {
1517 case 0: return eventdelivery_handle_to_string (it->stream);
1518 case 1: return eventdelivery_int_to_string (it->expected);
1519 case 2: return eventdelivery_int_to_string (it->received);
1520 default: abort ();
1521 }
1522 }
1523
1524 const XdHandleIntIntEventCode EC_XdStreamLengthFailed = { EC_XdStreamLengthFailedValue };
1525
1526 void
xd_generate_string_event_internal(XdStringEventCode _code,const char * _srcfile,gint _srcline,const char * version)1527 xd_generate_string_event_internal (XdStringEventCode _code, const char* _srcfile, gint _srcline, const char* version)
1528 {
1529 XdStringEvent *_e = g_new0 (XdStringEvent, 1);
1530 _e->code = _code.code;
1531 _e->srcline = _srcline;
1532 _e->srcfile = _srcfile;
1533 _e->version = version;
1534 eventdelivery_event_deliver ((GenericEvent*) _e);
1535 }
1536
1537 const char*
Xd_String_event_field_to_string(GenericEvent * ev,gint field)1538 Xd_String_event_field_to_string (GenericEvent* ev, gint field)
1539 {
1540 XdStringEvent* it = (XdStringEvent*) ev;
1541 switch (field)
1542 {
1543 case 0: return eventdelivery_string_to_string (it->version);
1544 default: abort ();
1545 }
1546 }
1547
1548 const XdStringEventCode EC_XdBackwardCompatibilityMode = { EC_XdBackwardCompatibilityModeValue };
1549
1550