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