1 /*
2 * Portions of this file Copyright 1999-2005 University of Chicago
3 * Portions of this file Copyright 1999-2005 The University of Southern California.
4 *
5 * This file or a portion of this file is licensed under the
6 * terms of the Globus Toolkit Public License, found at
7 * http://www.globus.org/toolkit/download/license.html.
8 * If you redistribute this file, with or without
9 * modifications, you must include this notice in the file.
10 */
11
12
13 /*
14 * This file is automatically generated by the Globus WSDLtoC converter
15 */
16
17 #include "xsd_QName.h"
18 #include "globus_soap_message.h"
19 #include "globus_xsd_type_info.h"
20 #include "ds_SignedInfoType.h"
21
22 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
23 xsd_QName ds_SignedInfoType_qname =
24 {
25 DS_SIGNEDINFOTYPE_NS,
26 DS_SIGNEDINFOTYPE_LOCAL
27 };
28 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
29
30 globus_result_t
31 ds_SignedInfoType_serialize_wrapper(
32 xsd_QName * element_qname,
33 void * instance,
34 globus_soap_message_handle_t message_handle,
35 globus_xsd_element_options_t options)
36 0 {
37 0 return ds_SignedInfoType_serialize(
38 element_qname,
39 (ds_SignedInfoType *) instance,
40 message_handle, options);
41 }
42
43 globus_result_t
44 ds_SignedInfoType_deserialize_pointer_wrapper(
45 xsd_QName * element_qname,
46 void ** ip,
47 globus_soap_message_handle_t message_handle,
48 globus_xsd_element_options_t options)
49 0 {
50 0 return ds_SignedInfoType_deserialize_pointer(
51 element_qname,
52 (ds_SignedInfoType **) ip,
53 message_handle, options);
54 }
55
56 globus_result_t
57 ds_SignedInfoType_init_wrapper(void **object)
58 0 {
59 0 return ds_SignedInfoType_init(
60 (ds_SignedInfoType **) object);
61 }
62
63 void
64 ds_SignedInfoType_destroy_wrapper(
65 void * object)
66 0 {
67 0 ds_SignedInfoType_destroy(
68 (ds_SignedInfoType *) object);
69 }
70
71 globus_result_t
72 ds_SignedInfoType_copy_wrapper(
73 void ** dest_obj,
74 void * src_obj)
75 0 {
76 0 return ds_SignedInfoType_copy(
77 (ds_SignedInfoType **) dest_obj,
78 (ds_SignedInfoType *) src_obj);
79 }
80
81 globus_result_t
82 ds_SignedInfoType_init_contents_wrapper(void *object)
83 0 {
84 0 return ds_SignedInfoType_init_contents(
85 (ds_SignedInfoType *) object);
86 }
87
88 void
89 ds_SignedInfoType_destroy_contents_wrapper(
90 void * object)
91 0 {
92 0 ds_SignedInfoType_destroy_contents(
93 (ds_SignedInfoType *) object);
94 }
95
96 globus_result_t
97 ds_SignedInfoType_copy_contents_wrapper(
98 void * dest_obj,
99 void * src_obj)
100 0 {
101 0 return ds_SignedInfoType_copy_contents(
102 (ds_SignedInfoType *) dest_obj,
103 (ds_SignedInfoType *) src_obj);
104 }
105
106 globus_result_t
107 ds_SignedInfoType_serialize_contents_wrapper(
108 xsd_QName * element_qname,
109 void * instance,
110 globus_soap_message_handle_t message_handle,
111 globus_xsd_element_options_t options)
112 0 {
113 0 return ds_SignedInfoType_serialize_contents(
114 element_qname,
115 (ds_SignedInfoType *) instance,
116 message_handle, options);
117 }
118
119 globus_result_t
120 ds_SignedInfoType_deserialize_contents_wrapper(
121 xsd_QName * element_qname,
122 void ** instance,
123 globus_soap_message_handle_t message_handle,
124 globus_xsd_element_options_t options)
125 0 {
126 globus_result_t result;
127 GlobusFuncName(ds_SignedInfoType_deserialize_contents_wrapper);
128 0 GlobusSoapMessageDebugEnter();
129
130 0 if(!*instance)
131 {
132 0 result = ds_SignedInfoType_init(
133 (ds_SignedInfoType **)instance);
134 0 if(result != GLOBUS_SUCCESS)
135 {
136 0 goto error;
137 }
138 }
139
140 0 result = ds_SignedInfoType_deserialize_contents(
141 element_qname,
142 *(ds_SignedInfoType **)instance,
143 message_handle, options);
144 0 error:
145 0 GlobusSoapMessageDebugExit();
146 0 return result;
147 }
148
149 globus_result_t
150 ds_SignedInfoType_array_serialize_wrapper(
151 xsd_QName * element,
152 void * instance,
153 globus_soap_message_handle_t message,
154 globus_xsd_element_options_t options)
155 0 {
156 0 return ds_SignedInfoType_array_serialize(
157 element,
158 (ds_SignedInfoType_array *) instance,
159 message, options);
160 }
161
162 globus_result_t
163 ds_SignedInfoType_array_deserialize_wrapper(
164 xsd_QName * element_qname,
165 void ** inst,
166 globus_soap_message_handle_t message,
167 globus_xsd_element_options_t options)
168 0 {
169 0 if(!*inst)
170 {
171 globus_result_t result;
172
173 0 result = ds_SignedInfoType_array_init(
174 (ds_SignedInfoType_array **)inst);
175 0 if(result != GLOBUS_SUCCESS)
176 {
177 0 return result;
178 }
179 }
180
181 0 return ds_SignedInfoType_array_deserialize(
182 element_qname,
183 *(ds_SignedInfoType_array **) inst,
184 message, options);
185 }
186
187 globus_result_t
188 ds_SignedInfoType_array_init_wrapper(
189 void ** arr)
190 0 {
191 0 return ds_SignedInfoType_array_init(
192 (ds_SignedInfoType_array **) arr);
193 }
194
195 void
196 ds_SignedInfoType_array_destroy_wrapper(
197 void * arr)
198 0 {
199 0 ds_SignedInfoType_array_destroy(
200 (ds_SignedInfoType_array *) arr);
201 }
202
203 globus_result_t
204 ds_SignedInfoType_array_copy_wrapper(
205 void ** dest_arr,
206 void * src_arr)
207 0 {
208 0 return ds_SignedInfoType_array_copy(
209 (ds_SignedInfoType_array **) dest_arr,
210 (ds_SignedInfoType_array *) src_arr);
211 }
212
213 globus_result_t
214 ds_SignedInfoType_array_init_contents_wrapper(
215 void * arr)
216 0 {
217 0 return ds_SignedInfoType_array_init_contents(
218 (ds_SignedInfoType_array *) arr);
219 }
220
221 void
222 ds_SignedInfoType_array_destroy_contents_wrapper(
223 void * arr)
224 0 {
225 0 ds_SignedInfoType_array_destroy_contents(
226 (ds_SignedInfoType_array *) arr);
227 }
228
229 globus_result_t
230 ds_SignedInfoType_array_copy_contents_wrapper(
231 void * dest_arr,
232 void * src_arr)
233 0 {
234 0 return ds_SignedInfoType_array_copy_contents(
235 (ds_SignedInfoType_array *) dest_arr,
236 (ds_SignedInfoType_array *) src_arr);
237 }
238
239 struct globus_xsd_type_info_s ds_SignedInfoType_contents_info =
240 {
241 &ds_SignedInfoType_qname,
242 ds_SignedInfoType_serialize_contents_wrapper,
243 ds_SignedInfoType_deserialize_contents_wrapper,
244 ds_SignedInfoType_init_wrapper,
245 ds_SignedInfoType_destroy_wrapper,
246 ds_SignedInfoType_copy_wrapper,
247 ds_SignedInfoType_init_contents_wrapper,
248 ds_SignedInfoType_destroy_contents_wrapper,
249 ds_SignedInfoType_copy_contents_wrapper,
250 sizeof(ds_SignedInfoType),
251 NULL,
252 NULL,
253 NULL
254 };
255
256 struct globus_xsd_type_info_s ds_SignedInfoType_array_info =
257 {
258 &ds_SignedInfoType_qname,
259 ds_SignedInfoType_array_serialize_wrapper,
260 ds_SignedInfoType_array_deserialize_wrapper,
261 ds_SignedInfoType_array_init_wrapper,
262 ds_SignedInfoType_array_destroy_wrapper,
263 ds_SignedInfoType_array_copy_wrapper,
264 ds_SignedInfoType_array_init_contents_wrapper,
265 ds_SignedInfoType_array_destroy_contents_wrapper,
266 ds_SignedInfoType_array_copy_contents_wrapper,
267 sizeof(ds_SignedInfoType),
268 ds_SignedInfoType_array_push_wrapper,
269 NULL,
270 NULL
271 };
272
273 struct globus_xsd_type_info_s ds_SignedInfoType_info =
274 {
275 &ds_SignedInfoType_qname,
276 ds_SignedInfoType_serialize_wrapper,
277 ds_SignedInfoType_deserialize_pointer_wrapper,
278 ds_SignedInfoType_init_wrapper,
279 ds_SignedInfoType_destroy_wrapper,
280 ds_SignedInfoType_copy_wrapper,
281 ds_SignedInfoType_init_contents_wrapper,
282 ds_SignedInfoType_destroy_contents_wrapper,
283 ds_SignedInfoType_copy_contents_wrapper,
284 sizeof(ds_SignedInfoType),
285 NULL,
286 &ds_SignedInfoType_contents_info,
287 &ds_SignedInfoType_array_info
288 };
289
290 globus_result_t
291 ds_SignedInfoType_init_contents(
292 ds_SignedInfoType * instance)
293 0 {
294 0 globus_result_t result = GLOBUS_SUCCESS;
295 GlobusFuncName(ds_SignedInfoType_init_contents);
296 0 GlobusSoapMessageDebugEnter();
297
298 0 memset(instance, 0, sizeof(ds_SignedInfoType));
299
300 0 GlobusSoapMessageDebugExit();
301 0 return result;
302 }
303
304 globus_result_t
305 ds_SignedInfoType_init(
306 ds_SignedInfoType ** object)
307 0 {
308 ds_SignedInfoType * instance;
309 0 globus_result_t result = GLOBUS_SUCCESS;
310 GlobusFuncName(ds_SignedInfoType_init);
311 0 GlobusSoapMessageDebugEnter();
312
313 0 instance = globus_malloc(sizeof(ds_SignedInfoType));
314 0 if(!instance)
315 {
316 0 result = GlobusSoapMessageErrorOutOfMemory;
317 0 goto exit;
318 }
319
320 0 memset(instance, 0, sizeof(ds_SignedInfoType));
321
322 0 *object = instance;
323
324 0 exit:
325 0 GlobusSoapMessageDebugExit();
326 0 return result;
327 }
328
329 void
330 ds_SignedInfoType_destroy(
331 ds_SignedInfoType * instance)
332 0 {
333 GlobusFuncName(ds_SignedInfoType_destroy);
334 0 GlobusSoapMessageDebugEnter();
335
336 0 if(!instance)
337 {
338 0 goto exit;
339 }
340
341 0 ds_SignedInfoType_destroy_contents(instance);
342 0 globus_free(instance);
343
344 0 exit:
345
346 0 GlobusSoapMessageDebugExit();
347 }
348
349 void
350 ds_SignedInfoType_destroy_contents(
351 ds_SignedInfoType * instance)
352 0 {
353 GlobusFuncName(ds_SignedInfoType_destroy_contents);
354 0 GlobusSoapMessageDebugEnter();
355
356 0 if(instance)
357 {
358
359
360 0 ds_CanonicalizationMethodType_destroy_contents(
361 &instance->CanonicalizationMethod);
362
363 0 ds_SignatureMethodType_destroy_contents(
364 &instance->SignatureMethod);
365
366 0 ds_ReferenceType_array_destroy_contents(&instance->Reference);
367
368 0 if(instance->_Id)
369 {
370 0 xsd_ID_destroy(
371 instance->_Id);
372 0 instance->_Id = NULL;
373 }
374
375 }
376
377 0 GlobusSoapMessageDebugExit();
378 }
379
380 globus_result_t
381 ds_SignedInfoType_copy(
382 ds_SignedInfoType ** dest_obj,
383 const ds_SignedInfoType * src_obj)
384 0 {
385 0 globus_result_t result = GLOBUS_SUCCESS;
386 ds_SignedInfoType * instance;
387 GlobusFuncName(ds_SignedInfoType_copy);
388
389 0 GlobusSoapMessageDebugEnter();
390
391 0 instance = malloc(sizeof(ds_SignedInfoType));
392 0 if (instance == NULL)
393 {
394 0 GlobusSoapMessageDebugExit();
395 0 return GlobusSoapMessageErrorOutOfMemory;
396 }
397
398 0 result = ds_SignedInfoType_copy_contents(instance, src_obj);
399 0 if(result != GLOBUS_SUCCESS)
400 {
401 0 globus_free(instance);
402 0 GlobusSoapMessageDebugExit();
403 0 return GlobusSoapMessageErrorOutOfMemory;
404 }
405
406 0 *dest_obj = instance;
407 0 GlobusSoapMessageDebugExit();
408 0 return result;
409 }
410
411 globus_result_t
412 ds_SignedInfoType_copy_contents(
413 ds_SignedInfoType * instance,
414 const ds_SignedInfoType * src_obj)
415 0 {
416 0 globus_result_t result = GLOBUS_SUCCESS;
417 GlobusFuncName(ds_SignedInfoType_copy_contents);
418
419 0 GlobusSoapMessageDebugEnter();
420
421
422 0 if(src_obj->_Id)
423 {
424 0 result = xsd_ID_copy(
425 &instance->_Id,
426 src_obj->_Id);
427 0 if(result != GLOBUS_SUCCESS)
428 {
429 0 result = GlobusSoapMessageErrorCopyFailed(
430 result, NULL, &xsd_ID_qname);
431 0 goto _Id_destroy;
432 }
433 }
434 else
435 {
436 0 instance->_Id = NULL;
437 }
438
439 0 result = ds_CanonicalizationMethodType_copy_contents(
440 &instance->CanonicalizationMethod,
441 &src_obj->CanonicalizationMethod);
442 0 if(result != GLOBUS_SUCCESS)
443 {
444 0 result = GlobusSoapMessageErrorCopyFailed(
445 result, NULL, &ds_CanonicalizationMethodType_qname);
446 0 goto CanonicalizationMethod_destroy;
447 }
448
449 0 result = ds_SignatureMethodType_copy_contents(
450 &instance->SignatureMethod,
451 &src_obj->SignatureMethod);
452 0 if(result != GLOBUS_SUCCESS)
453 {
454 0 result = GlobusSoapMessageErrorCopyFailed(
455 result, NULL, &ds_SignatureMethodType_qname);
456 0 goto SignatureMethod_destroy;
457 }
458
459 0 result = ds_ReferenceType_array_copy_contents(
460 &instance->Reference,
461 &src_obj->Reference);
462 0 if(result != GLOBUS_SUCCESS)
463 {
464 0 result = GlobusSoapMessageErrorCopyFailed(
465 result, NULL, &ds_ReferenceType_qname);
466 0 goto Reference_destroy_array;
467 }
468
469 goto exit;
470
471 0 fail_deserialize:
472
473 0 _Id_destroy:
474
475 0 if(instance->_Id)
476 {
477 0 xsd_ID_destroy(
478 instance->_Id);
479 0 instance->_Id = NULL;
480 }
481 0 ds_ReferenceType_array_destroy_contents(
482 &instance->Reference);
483
484 0 Reference_destroy_array:
485 0 ds_SignatureMethodType_destroy_contents(
486 &instance->SignatureMethod);
487
488 0 SignatureMethod_destroy:
489 0 ds_CanonicalizationMethodType_destroy_contents(
490 &instance->CanonicalizationMethod);
491
492 0 CanonicalizationMethod_destroy:
493
494
495 0 exit:
496
497 0 GlobusSoapMessageDebugExit();
498 0 return result;
499 }
500
501
502
503 globus_result_t
504 ds_SignedInfoType_serialize_contents(
505 xsd_QName * element_qname, /* ignored */
506 ds_SignedInfoType * inst,
507 globus_soap_message_handle_t message_handle,
508 globus_xsd_element_options_t options)
509 0 {
510 0 globus_result_t result = GLOBUS_SUCCESS;
511 GlobusFuncName(ds_SignedInfoType_serialize_contents);
512 0 GlobusSoapMessageDebugEnter();
513
514 0 result = ds_SignedInfoType_serialize(
515 NULL,
516 inst,
517 message_handle,
518 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
519 0 if(result != GLOBUS_SUCCESS)
520 {
521 0 result = GlobusSoapMessageErrorSerializeFailed(
522 result, NULL, element_qname);
523 goto exit;
524 }
525
526 0 exit:
527
528 0 GlobusSoapMessageDebugExit();
529 0 return result;
530 }
531
532
533
534 globus_result_t
535 ds_SignedInfoType_serialize(
536 xsd_QName * element_qname,
537 ds_SignedInfoType * instance,
538 globus_soap_message_handle_t message_handle,
539 globus_xsd_element_options_t options)
540 0 {
541 0 globus_result_t result = GLOBUS_SUCCESS;
542 xsd_QName subelement;
543 0 globus_list_t * any_attr_keys = NULL;
544 0 globus_list_t * any_attr_keys_iterator = NULL;
545 0 xsd_QName * type_attr = NULL;
546 0 char * prefix = NULL;
547 int prefix_created;
548 0 int define_prefix = 0;
549 0 int save_options = options;
550
551 GlobusFuncName(ds_SignedInfoType_serialize);
552 0 GlobusSoapMessageDebugEnter();
553
554
555 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
556 {
557 /* serialize ds_SignedInfoType element */
558
559 0 result = globus_soap_message_invoke_ns_callouts(
560 message_handle,
561 element_qname,
562 GLOBUS_SOAP_MESSAGE_CALLOUT_NS_SET,
563 &options);
564 0 if(result != GLOBUS_SUCCESS)
565 {
566 0 result = GlobusSoapMessageErrorSerializeFailed(
567 result, NULL, element_qname);
568 0 goto exit;
569 }
570
571 0 result = globus_soap_message_element_ns_set(
572 message_handle,
573 element_qname->Namespace,
574 &options);
575 0 if(result != GLOBUS_SUCCESS)
576 {
577 0 result = GlobusSoapMessageErrorSerializeFailed(
578 result, NULL, element_qname);
579 0 goto exit;
580 }
581
582 0 if(instance->_Id)
583 {
584
585 0 result = globus_soap_message_attribute_ns_set(
586 message_handle,
587 NULL,
588 &options);
589
590 0 if(result != GLOBUS_SUCCESS)
591 {
592 xsd_QName error_qname;
593 0 error_qname.local = prefix;
594 0 error_qname.Namespace = "";
595 0 result = GlobusSoapMessageErrorSerializeFailed(result,
596 NULL,
597 &error_qname);
598 0 goto exit;
599 }
600
601
602 }
603
604 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
605 !globus_soap_message_serialize_is_c14n_subset(message_handle))
606 {
607 0 result = globus_soap_message_attribute_ns_set(
608 message_handle,
609 "http://www.w3.org/2001/XMLSchema-instance",
610 &options);
611 0 if(result != GLOBUS_SUCCESS)
612 {
613 0 result = GlobusSoapMessageErrorSerializeFailed(
614 result, NULL, element_qname);
615 0 goto exit;
616 }
617
618 0 result = globus_soap_message_attribute_ns_set(
619 message_handle,
620 ds_SignedInfoType_qname.Namespace,
621 &options);
622 0 if(result != GLOBUS_SUCCESS)
623 {
624 0 result = GlobusSoapMessageErrorSerializeFailed(
625 result, NULL, element_qname);
626 0 goto exit;
627 }
628 }
629
630 0 result = globus_soap_message_invoke_callouts(
631 message_handle,
632 element_qname,
633 GLOBUS_SOAP_MESSAGE_CALLOUT_BEGIN);
634 0 if(result != GLOBUS_SUCCESS)
635 {
636 0 result = GlobusSoapMessageErrorSerializeFailed(
637 result, NULL, element_qname);
638 0 goto exit;
639 }
640
641 0 result = globus_soap_message_serialize_element(
642 message_handle,
643 element_qname,
644 options,
645 &ds_SignedInfoType_qname);
646 0 if(result != GLOBUS_SUCCESS)
647 {
648 0 result = GlobusSoapMessageErrorSerializeFailed(
649 result, NULL, element_qname);
650 0 goto exit;
651 }
652
653 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
654 !globus_soap_message_serialize_is_c14n_subset(message_handle))
655 {
656 0 xsd_QName_init(&type_attr);
657
658 0 type_attr->local = globus_libc_strdup("type");
659 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
660 }
661
662 /* serialize namespaces */
663
664 0 result = globus_soap_message_invoke_ns_callouts(
665 message_handle,
666 element_qname,
667 GLOBUS_SOAP_MESSAGE_CALLOUT_NS_ADD,
668 &options);
669 0 if(result != GLOBUS_SUCCESS)
670 {
671 0 result = GlobusSoapMessageErrorSerializeFailed(
672 result, NULL, element_qname);
673 0 goto exit;
674 }
675
676 0 result = globus_soap_message_element_ns_add(
677 message_handle,
678 element_qname->Namespace,
679 &options);
680 0 if(result != GLOBUS_SUCCESS)
681 {
682 0 result = GlobusSoapMessageErrorSerializeFailed(
683 result, NULL, element_qname);
684 0 goto exit;
685 }
686
687 0 if(instance->_Id)
688 {
689
690 0 result = globus_soap_message_attribute_ns_add(
691 message_handle,
692 NULL,
693 &options);
694
695 0 if(result != GLOBUS_SUCCESS)
696 {
697 xsd_QName error_qname;
698 0 error_qname.local = prefix;
699 0 error_qname.Namespace = "";
700 0 result = GlobusSoapMessageErrorSerializeFailed(result,
701 NULL,
702 &error_qname);
703 0 goto exit;
704 }
705
706
707 }
708
709 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
710 !globus_soap_message_serialize_is_c14n_subset(message_handle))
711 {
712 0 result = globus_soap_message_attribute_ns_add(
713 message_handle,
714 "http://www.w3.org/2001/XMLSchema-instance",
715 &options);
716 0 if(result != GLOBUS_SUCCESS)
717 {
718 0 result = GlobusSoapMessageErrorSerializeFailed(
719 result, NULL, element_qname);
720 0 goto exit;
721 }
722
723 0 result = globus_soap_message_attribute_ns_add(
724 message_handle,
725 ds_SignedInfoType_qname.Namespace,
726 &options);
727 0 if(result != GLOBUS_SUCCESS)
728 {
729 0 result = GlobusSoapMessageErrorSerializeFailed(
730 result, NULL, element_qname);
731 0 goto exit;
732 }
733 }
734
735 /* serialize attributes */
736
737 0 subelement.Namespace = "";
738 0 subelement.local = "Id";
739
740 0 if(instance->_Id)
741 {
742
743 0 result = xsd_ID_serialize_attribute(
744 &subelement,
745 instance->_Id,
746 message_handle,
747 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
748 0 if(result != GLOBUS_SUCCESS)
749 {
750 0 result = GlobusSoapMessageErrorSerializeFailed(result,
751 NULL,
752 element_qname);
753 0 goto exit;
754 }
755
756 }
757
758 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
759 !globus_soap_message_serialize_is_c14n_subset(message_handle))
760 {
761 0 result = globus_soap_message_serialize_QName_attribute(
762 message_handle,
763 type_attr,
764 &ds_SignedInfoType_qname);
765 0 if(result != GLOBUS_SUCCESS)
766 {
767 0 result = GlobusSoapMessageErrorSerializeFailed(
768 result, NULL, element_qname);
769 0 goto exit;
770 }
771 }
772
773
774 0 result = globus_soap_message_invoke_callouts(
775 message_handle,
776 element_qname,
777 GLOBUS_SOAP_MESSAGE_CALLOUT_ATTR);
778 0 if(result != GLOBUS_SUCCESS)
779 {
780 0 result = GlobusSoapMessageErrorSerializeFailed(
781 result, NULL, element_qname);
782 0 goto exit;
783 }
784 }
785
786 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
787 {
788 0 result = globus_soap_message_serialize_element_begin_close(
789 message_handle);
790 0 if(result != GLOBUS_SUCCESS)
791 {
792 0 result = GlobusSoapMessageErrorSerializeFailed(
793 result, NULL, element_qname);
794 0 goto exit;
795 }
796 }
797 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
798
799 /* serialize contents of type */
800
801 0 subelement.local = "CanonicalizationMethod";
802 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
803
804 0 result = ds_CanonicalizationMethodType_serialize(
805 &subelement,
806 &instance->CanonicalizationMethod,
807 message_handle,
808 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
809 0 if(result != GLOBUS_SUCCESS)
810 {
811 0 result = GlobusSoapMessageErrorSerializeFailed(
812 result, NULL, &ds_CanonicalizationMethodType_qname);
813 0 goto exit;
814 }
815
816 0 subelement.local = "SignatureMethod";
817 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
818
819 0 result = ds_SignatureMethodType_serialize(
820 &subelement,
821 &instance->SignatureMethod,
822 message_handle,
823 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
824 0 if(result != GLOBUS_SUCCESS)
825 {
826 0 result = GlobusSoapMessageErrorSerializeFailed(
827 result, NULL, &ds_SignatureMethodType_qname);
828 0 goto exit;
829 }
830
831 0 subelement.local = "Reference";
832 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
833
834 0 result = GlobusXSDArrayCheckLowerBounds(
835 1,
836 instance->Reference.length,
837 "Reference");
838 0 if(result != GLOBUS_SUCCESS)
839 {
840 0 result = GlobusSoapMessageErrorSerializeFailed(
841 result, NULL, &ds_ReferenceType_qname);
842 0 goto exit;
843 }
844
845 0 result = ds_ReferenceType_array_serialize(
846 &subelement,
847 &instance->Reference,
848 message_handle,
849 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
850 0 if(result != GLOBUS_SUCCESS)
851 {
852 0 result = GlobusSoapMessageErrorSerializeFailed(
853 result, NULL, &ds_ReferenceType_qname);
854 0 goto exit;
855 }
856
857 0 options = save_options;
858
859 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
860 {
861 /* add end element */
862 0 result = globus_soap_message_serialize_element_end(
863 message_handle,
864 element_qname,
865 options,
866 &ds_SignedInfoType_qname);
867 0 if(result != GLOBUS_SUCCESS)
868 {
869 0 result = GlobusSoapMessageErrorSerializeFailed(
870 result, NULL, element_qname);
871 0 goto exit;
872 }
873
874 0 globus_soap_message_element_ns_remove(
875 message_handle,
876 element_qname->Namespace,
877 &options);
878
879 /* remove namespace/prefix mappings for these types */
880
881 0 if(instance->_Id)
882 {
883
884 0 globus_soap_message_attribute_ns_remove(
885 message_handle,
886 NULL,
887 &options);
888
889 }
890
891 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
892 !globus_soap_message_serialize_is_c14n_subset(message_handle))
893 {
894 0 globus_soap_message_attribute_ns_remove(
895 message_handle,
896 "http://www.w3.org/2001/XMLSchema-instance",
897 &options);
898
899 0 globus_soap_message_attribute_ns_remove(
900 message_handle,
901 ds_SignedInfoType_qname.Namespace,
902 &options);
903 }
904
905 0 result = globus_soap_message_invoke_ns_callouts(
906 message_handle,
907 element_qname,
908 GLOBUS_SOAP_MESSAGE_CALLOUT_NS_REMOVE,
909 &options);
910 0 if(result != GLOBUS_SUCCESS)
911 {
912 0 result = GlobusSoapMessageErrorSerializeFailed(
913 result, NULL, element_qname);
914 0 goto exit;
915 }
916
917 0 result = globus_soap_message_invoke_callouts(
918 message_handle,
919 element_qname,
920 GLOBUS_SOAP_MESSAGE_CALLOUT_END);
921 0 if(result != GLOBUS_SUCCESS)
922 {
923 0 result = GlobusSoapMessageErrorSerializeFailed(
924 result, NULL, element_qname);
925 goto exit;
926 }
927 }
928
929 0 exit:
930 0 if (type_attr)
931 {
932 0 xsd_QName_destroy(type_attr);
933 }
934
935 0 if(any_attr_keys)
936 {
937 0 globus_list_free(any_attr_keys);
938 }
939
940 0 GlobusSoapMessageDebugExit();
941 0 return result;
942 }
943
944
945
946 globus_result_t
947 ds_SignedInfoType_deserialize_contents(
948 xsd_QName * element_qname, /* ignored */
949 ds_SignedInfoType * inst,
950 globus_soap_message_handle_t message_handle,
951 globus_xsd_element_options_t options)
952 0 {
953 0 globus_result_t result = GLOBUS_SUCCESS;
954 GlobusFuncName(ds_SignedInfoType_deserialize_contents);
955 0 GlobusSoapMessageDebugEnter();
956
957 0 result = ds_SignedInfoType_deserialize(
958 NULL,
959 inst,
960 message_handle,
961 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
962 0 if(result != GLOBUS_SUCCESS)
963 {
964 0 result = GlobusSoapMessageErrorDeserializeFailed(
965 result, element_qname);
966 goto exit;
967 }
968
969 0 exit:
970
971 0 GlobusSoapMessageDebugExit();
972 0 return result;
973 }
974
975
976
977 globus_result_t
978 ds_SignedInfoType_deserialize(
979 xsd_QName * element_qname,
980 ds_SignedInfoType * instance,
981 globus_soap_message_handle_t message_handle,
982 globus_xsd_element_options_t options)
983 0 {
984 0 globus_result_t result = GLOBUS_SUCCESS;
985 xsd_QName subelement;
986 GlobusFuncName(ds_SignedInfoType_deserialize);
987 0 GlobusSoapMessageDebugEnter();
988
989
990 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
991 {
992 0 result = globus_soap_message_deserialize_element(
993 message_handle, element_qname);
994 0 if(result != GLOBUS_SUCCESS)
995 {
996 0 result = GlobusSoapMessageErrorDeserializeFailed(
997 result, element_qname);
998 0 goto exit;
999 }
1000
1001 0 subelement.Namespace = "";
1002 0 subelement.local = "Id";
1003
1004 0 result = xsd_ID_deserialize_attribute_pointer(
1005 &subelement,
1006 &instance->_Id,
1007 message_handle,
1008 0);
1009 0 if(result != GLOBUS_SUCCESS)
1010 {
1011 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1012 0 goto _Id_destroy;
1013 }
1014
1015
1016
1017 0 result = globus_soap_message_deserialize_element_begin_close(
1018 message_handle);
1019 0 if(result != GLOBUS_SUCCESS)
1020 {
1021 0 result = GlobusSoapMessageErrorDeserializeFailed(
1022 result, element_qname);
1023 0 goto fail_deserialize;
1024 }
1025 }
1026
1027 0 subelement.local = "CanonicalizationMethod";
1028 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1029
1030 0 result = ds_CanonicalizationMethodType_deserialize(
1031 &subelement,
1032 &instance->CanonicalizationMethod,
1033 message_handle,
1034 0);
1035 0 if(result != GLOBUS_SUCCESS)
1036 {
1037 0 result = GlobusSoapMessageErrorDeserializeFailed(
1038 result,
1039 &ds_CanonicalizationMethodType_qname);
1040 0 goto CanonicalizationMethod_destroy;
1041 }
1042
1043 0 subelement.local = "SignatureMethod";
1044 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1045
1046 0 result = ds_SignatureMethodType_deserialize(
1047 &subelement,
1048 &instance->SignatureMethod,
1049 message_handle,
1050 0);
1051 0 if(result != GLOBUS_SUCCESS)
1052 {
1053 0 result = GlobusSoapMessageErrorDeserializeFailed(
1054 result,
1055 &ds_SignatureMethodType_qname);
1056 0 goto SignatureMethod_destroy;
1057 }
1058
1059 0 subelement.local = "Reference";
1060 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1061
1062 0 result = ds_ReferenceType_array_deserialize(
1063 &subelement,
1064 &instance->Reference,
1065 message_handle,
1066 0);
1067 0 if(result != GLOBUS_SUCCESS)
1068 {
1069 0 result = GlobusSoapMessageErrorDeserializeFailed(
1070 result,
1071 (&subelement));
1072 0 goto Reference_destroy_array;
1073 }
1074
1075 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1076 {
1077 0 result = globus_soap_message_deserialize_element_end(
1078 message_handle,
1079 element_qname);
1080 0 if(result != GLOBUS_SUCCESS)
1081 {
1082 0 result = GlobusSoapMessageErrorDeserializeFailed(
1083 result, element_qname);
1084 goto fail_deserialize;
1085 }
1086 }
1087
1088 goto exit;
1089
1090 0 fail_deserialize:
1091
1092 0 _Id_destroy:
1093
1094 0 if(instance->_Id)
1095 {
1096 0 xsd_ID_destroy(
1097 instance->_Id);
1098 0 instance->_Id = NULL;
1099 }
1100 0 ds_ReferenceType_array_destroy_contents(
1101 &instance->Reference);
1102
1103 0 Reference_destroy_array:
1104 0 ds_SignatureMethodType_destroy_contents(
1105 &instance->SignatureMethod);
1106
1107 0 SignatureMethod_destroy:
1108 0 ds_CanonicalizationMethodType_destroy_contents(
1109 &instance->CanonicalizationMethod);
1110
1111 0 CanonicalizationMethod_destroy:
1112
1113
1114 0 exit:
1115
1116 0 GlobusSoapMessageDebugExit();
1117 0 return result;
1118 }
1119
1120
1121
1122 globus_result_t
1123 ds_SignedInfoType_deserialize_pointer(
1124 xsd_QName * element_qname,
1125 ds_SignedInfoType ** ip,
1126 globus_soap_message_handle_t message_handle,
1127 globus_xsd_element_options_t options)
1128 0 {
1129 0 ds_SignedInfoType * instance = NULL;
1130 0 globus_result_t result = GLOBUS_SUCCESS;
1131 xsd_QName subelement;
1132 0 int found_attrs = 0;
1133 0 int empty_element = 0;
1134 GlobusFuncName(ds_SignedInfoType_deserialize_pointer);
1135 0 GlobusSoapMessageDebugEnter();
1136
1137 0 *ip = NULL;
1138
1139 0 result = globus_soap_message_deserialize_element(
1140 message_handle, element_qname);
1141 0 if(result != GLOBUS_SUCCESS &&
1142 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1143 GlobusSoapMessageStatusFailedElementCheck(result) ||
1144 GlobusSoapMessageStatusFailedWithTextCheck(result)))
1145 {
1146 0 *ip = NULL;
1147 0 result = GLOBUS_SUCCESS;
1148 0 goto exit;
1149 }
1150
1151 0 if(result != GLOBUS_SUCCESS)
1152 {
1153 0 result = GlobusSoapMessageErrorDeserializeFailed(
1154 result, element_qname);
1155 0 goto exit;
1156 }
1157
1158 0 if(globus_soap_message_deserialize_element_is_empty(
1159 message_handle))
1160 {
1161 0 empty_element = 1;
1162 }
1163
1164
1165
1166 0 result = ds_SignedInfoType_init(&instance);
1167 0 if(result != GLOBUS_SUCCESS)
1168 {
1169 0 result = GlobusSoapMessageErrorDeserializeFailed(
1170 result, element_qname);
1171 0 goto exit;
1172 }
1173
1174
1175 0 subelement.Namespace = "";
1176 0 subelement.local = "Id";
1177
1178 0 result = xsd_ID_deserialize_attribute_pointer(
1179 &subelement,
1180 &instance->_Id,
1181 message_handle,
1182 0);
1183 0 if(result != GLOBUS_SUCCESS)
1184 {
1185 0 result = GlobusSoapMessageErrorDeserializeFailed(result, &subelement);
1186 0 goto _Id_destroy;
1187 }
1188
1189
1190 0 if(instance->_Id)
1191 {
1192 0 found_attrs++;
1193 }
1194
1195 0 if(found_attrs == 0 &&
1196 globus_soap_message_deserialize_element_is_nil(message_handle))
1197 {
1198 0 ds_SignedInfoType_destroy(instance);
1199
1200 0 result = globus_soap_message_deserialize_element_end(
1201 message_handle,
1202 element_qname);
1203 0 if(result != GLOBUS_SUCCESS)
1204 {
1205 0 result = GlobusSoapMessageErrorDeserializeFailed(
1206 result, element_qname);
1207 0 goto exit;
1208 }
1209
1210 0 *ip = NULL;
1211 0 globus_object_free(globus_error_get(result));
1212 0 result = GLOBUS_SUCCESS;
1213 0 goto exit;
1214 }
1215
1216
1217 0 if(empty_element)
1218 {
1219 0 result = globus_soap_message_deserialize_element_end(
1220 message_handle,
1221 element_qname);
1222 0 if(result != GLOBUS_SUCCESS)
1223 {
1224 0 result = GlobusSoapMessageErrorDeserializeFailed(
1225 result, element_qname);
1226 0 goto fail_deserialize;
1227 }
1228
1229 0 *ip = instance;
1230 0 goto exit;
1231 }
1232
1233 0 result = globus_soap_message_deserialize_element_begin_close(
1234 message_handle);
1235 0 if(result != GLOBUS_SUCCESS)
1236 {
1237 0 result = GlobusSoapMessageErrorDeserializeFailed(
1238 result, element_qname);
1239 0 goto exit;
1240 }
1241
1242
1243 0 subelement.local = "CanonicalizationMethod";
1244 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1245
1246 0 result = ds_CanonicalizationMethodType_deserialize(
1247 &subelement,
1248 &instance->CanonicalizationMethod,
1249 message_handle,
1250 0);
1251 0 if(result != GLOBUS_SUCCESS)
1252 {
1253 0 result = GlobusSoapMessageErrorDeserializeFailed(
1254 result,
1255 &ds_CanonicalizationMethodType_qname);
1256 0 goto CanonicalizationMethod_destroy;
1257 }
1258
1259 0 subelement.local = "SignatureMethod";
1260 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1261
1262 0 result = ds_SignatureMethodType_deserialize(
1263 &subelement,
1264 &instance->SignatureMethod,
1265 message_handle,
1266 0);
1267 0 if(result != GLOBUS_SUCCESS)
1268 {
1269 0 result = GlobusSoapMessageErrorDeserializeFailed(
1270 result,
1271 &ds_SignatureMethodType_qname);
1272 0 goto SignatureMethod_destroy;
1273 }
1274
1275 0 subelement.local = "Reference";
1276 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1277
1278 0 result = ds_ReferenceType_array_deserialize(
1279 &subelement,
1280 &instance->Reference,
1281 message_handle,
1282 0);
1283 0 if(result != GLOBUS_SUCCESS)
1284 {
1285 0 result = GlobusSoapMessageErrorDeserializeFailed(
1286 result,
1287 (&subelement));
1288 0 goto Reference_destroy_array;
1289 }
1290
1291
1292 0 result = globus_soap_message_deserialize_element_end(
1293 message_handle,
1294 element_qname);
1295 0 if(result != GLOBUS_SUCCESS)
1296 {
1297 0 result = GlobusSoapMessageErrorDeserializeFailed(
1298 result, element_qname);
1299 0 goto fail_deserialize;
1300 }
1301
1302 0 *ip = instance;
1303
1304 0 goto exit;
1305
1306 0 fail_deserialize:
1307
1308 0 _Id_destroy:
1309
1310 0 if(instance->_Id)
1311 {
1312 0 xsd_ID_destroy(
1313 instance->_Id);
1314 0 instance->_Id = NULL;
1315 }
1316 0 ds_ReferenceType_array_destroy_contents(
1317 &instance->Reference);
1318
1319 0 Reference_destroy_array:
1320 0 ds_SignatureMethodType_destroy_contents(
1321 &instance->SignatureMethod);
1322
1323 0 SignatureMethod_destroy:
1324 0 ds_CanonicalizationMethodType_destroy_contents(
1325 &instance->CanonicalizationMethod);
1326
1327 0 CanonicalizationMethod_destroy:
1328
1329 0 exit:
1330
1331 0 GlobusSoapMessageDebugExit();
1332 0 return result;
1333 }
1334
1335
1336 globus_result_t
1337 ds_SignedInfoType_array_init_contents(
1338 ds_SignedInfoType_array * array)
1339 0 {
1340 GlobusFuncName(ds_SignedInfoType_array_init_contents);
1341 0 GlobusSoapMessageDebugEnter();
1342
1343 0 memset(array, 0, sizeof(ds_SignedInfoType_array));
1344
1345 0 GlobusSoapMessageDebugExit();
1346 0 return GLOBUS_SUCCESS;
1347 }
1348
1349 globus_result_t
1350 ds_SignedInfoType_array_init(
1351 ds_SignedInfoType_array ** arr)
1352 0 {
1353 ds_SignedInfoType_array * array;
1354 globus_result_t result;
1355 GlobusFuncName(ds_SignedInfoType_array_init);
1356 0 GlobusSoapMessageDebugEnter();
1357
1358 0 array = (ds_SignedInfoType_array *)
1359 globus_malloc(sizeof(ds_SignedInfoType_array));
1360 0 if(!array)
1361 {
1362 0 result = GlobusSoapMessageErrorOutOfMemory;
1363 0 goto exit;
1364 }
1365
1366 0 result = ds_SignedInfoType_array_init_contents(array);
1367 0 if(result != GLOBUS_SUCCESS)
1368 {
1369 0 globus_free(array);
1370 0 array = NULL;
1371
1372 }
1373
1374 0 *arr = array;
1375
1376 0 exit:
1377 0 GlobusSoapMessageDebugExit();
1378 0 return result;
1379 }
1380
1381 void
1382 ds_SignedInfoType_array_destroy_contents(
1383 ds_SignedInfoType_array * array)
1384 0 {
1385 0 int i = 0;
1386 GlobusFuncName(ds_SignedInfoType_array_destroy_contents);
1387 0 GlobusSoapMessageDebugEnter();
1388
1389 0 for(; i < array->length; ++i)
1390 {
1391 0 ds_SignedInfoType_destroy_contents(&array->elements[i]);
1392 }
1393
1394 0 if(array->elements)
1395 {
1396 0 globus_free(array->elements);
1397 0 array->elements = NULL;
1398 }
1399 0 array->length = 0;
1400
1401 0 GlobusSoapMessageDebugExit();
1402 }
1403
1404 void
1405 ds_SignedInfoType_array_destroy(
1406 ds_SignedInfoType_array * array)
1407 0 {
1408 GlobusFuncName(ds_SignedInfoType_array_destroy);
1409 0 GlobusSoapMessageDebugEnter();
1410
1411 0 ds_SignedInfoType_array_destroy_contents(array);
1412 0 globus_free(array);
1413
1414 0 GlobusSoapMessageDebugExit();
1415 }
1416
1417 globus_result_t
1418 ds_SignedInfoType_array_copy(
1419 ds_SignedInfoType_array ** dest_arr,
1420 const ds_SignedInfoType_array * src_arr)
1421 0 {
1422 ds_SignedInfoType_array * array;
1423 globus_result_t result;
1424 GlobusFuncName(ds_SignedInfoType_array_copy);
1425 0 GlobusSoapMessageDebugEnter();
1426
1427 0 array = (ds_SignedInfoType_array *) globus_malloc(
1428 sizeof(ds_SignedInfoType_array));
1429 0 if(!array)
1430 {
1431 0 result = GlobusSoapMessageErrorOutOfMemory;
1432 0 GlobusSoapMessageDebugExit();
1433 0 return result;
1434 }
1435
1436 0 result = ds_SignedInfoType_array_copy_contents(array, src_arr);
1437 0 if(result != GLOBUS_SUCCESS)
1438 {
1439 0 globus_free(array);
1440 0 GlobusSoapMessageDebugExit();
1441 0 return result;
1442 }
1443
1444 0 *dest_arr = array;
1445
1446 0 GlobusSoapMessageDebugExit();
1447 0 return GLOBUS_SUCCESS;
1448 }
1449
1450 globus_result_t
1451 ds_SignedInfoType_array_copy_contents(
1452 ds_SignedInfoType_array * dest_arr,
1453 const ds_SignedInfoType_array * src_arr)
1454 0 {
1455 int i;
1456 0 globus_result_t result = GLOBUS_SUCCESS;
1457 GlobusFuncName(ds_SignedInfoType_array_copy_contents);
1458 0 GlobusSoapMessageDebugEnter();
1459
1460 0 dest_arr->length = src_arr->length;
1461 0 if(dest_arr->length > 0)
1462 {
1463 0 dest_arr->elements = (ds_SignedInfoType *) malloc(
1464 sizeof(ds_SignedInfoType) * dest_arr->length);
1465 0 if(!dest_arr->elements)
1466 {
1467 0 result = GlobusSoapMessageErrorOutOfMemory;
1468 0 GlobusSoapMessageDebugExit();
1469 0 return result;
1470 }
1471 }
1472 else
1473 {
1474 0 dest_arr->elements = NULL;
1475 }
1476
1477 0 for(i = 0; i < dest_arr->length; i++)
1478 {
1479 0 result = ds_SignedInfoType_copy_contents(
1480 &dest_arr->elements[i], &src_arr->elements[i]);
1481 0 if(result != GLOBUS_SUCCESS)
1482 {
1483 0 while(i--)
1484 {
1485 0 ds_SignedInfoType_destroy_contents(&dest_arr->elements[i]);
1486 }
1487
1488 0 globus_free(dest_arr->elements);
1489 0 dest_arr->elements = NULL;
1490 0 dest_arr->length = 0;
1491 0 break;
1492 }
1493 }
1494
1495 0 GlobusSoapMessageDebugExit();
1496 0 return result;
1497 }
1498
1499 ds_SignedInfoType *
1500 ds_SignedInfoType_array_push(
1501 ds_SignedInfoType_array * array)
1502 0 {
1503 GlobusFuncName(ds_SignedInfoType_array_push);
1504 0 GlobusSoapMessageDebugEnter();
1505
1506 0 array->elements = realloc(array->elements,
1507 sizeof(ds_SignedInfoType) *
1508 (array->length + 1));
1509 0 memset(&array->elements[array->length], 0, sizeof(ds_SignedInfoType));
1510 0 array->length++;
1511
1512 0 GlobusSoapMessageDebugExit();
1513 0 return (&array->elements[array->length - 1]);
1514 }
1515
1516 void *
1517 ds_SignedInfoType_array_push_wrapper(
1518 void * array)
1519 0 {
1520 0 return (void *) ds_SignedInfoType_array_push((ds_SignedInfoType_array *) array);
1521 }
1522
1523 globus_result_t
1524 ds_SignedInfoType_array_serialize(
1525 xsd_QName * element_qname,
1526 ds_SignedInfoType_array * array,
1527 globus_soap_message_handle_t message,
1528 globus_xsd_element_options_t options)
1529 0 {
1530 0 globus_result_t result = GLOBUS_SUCCESS;
1531 0 int i = 0;
1532 GlobusFuncName(ds_SignedInfoType_array_serialize);
1533 0 GlobusSoapMessageDebugEnter();
1534
1535 0 for(; i < array->length; ++i)
1536 {
1537 0 result = ds_SignedInfoType_serialize(
1538 element_qname,
1539 &array->elements[i],
1540 message,
1541 options);
1542 0 if(result != GLOBUS_SUCCESS)
1543 {
1544 0 goto exit;
1545 }
1546 }
1547
1548 0 exit:
1549
1550 0 GlobusSoapMessageDebugExit();
1551 0 return result;
1552 }
1553
1554 globus_result_t
1555 ds_SignedInfoType_array_deserialize(
1556 xsd_QName * element_qname,
1557 ds_SignedInfoType_array * array,
1558 globus_soap_message_handle_t message,
1559 globus_xsd_element_options_t options)
1560 0 {
1561 0 globus_result_t result = GLOBUS_SUCCESS;
1562 0 int i = 0;
1563 int pre_length;
1564 GlobusFuncName(ds_SignedInfoType_array_deserialize);
1565 0 GlobusSoapMessageDebugEnter();
1566
1567 0 pre_length = array->length;
1568
1569 0 for(i = 0; i < pre_length; ++i)
1570 {
1571 0 result = ds_SignedInfoType_deserialize(
1572 element_qname,
1573 &array->elements[i],
1574 message,
1575 options);
1576 0 if(result != GLOBUS_SUCCESS)
1577 {
1578 0 if(GlobusSoapMessageStatusFailedElementCheck(result) ||
1579 GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1580 GlobusSoapMessageStatusFailedWithTextCheck(result))
1581 {
1582 0 result = GLOBUS_SUCCESS;
1583 0 break;
1584 }
1585
1586 0 result = GlobusSoapMessageErrorDeserializeFailed(
1587 result, element_qname);
1588 0 goto exit;
1589 }
1590 }
1591
1592 0 while(result == GLOBUS_SUCCESS)
1593 {
1594 ds_SignedInfoType next;
1595 0 memset(&next, 0, sizeof(ds_SignedInfoType));
1596
1597 0 result = ds_SignedInfoType_deserialize(
1598 element_qname,
1599 &next,
1600 message,
1601 options);
1602 0 if(result != GLOBUS_SUCCESS)
1603 {
1604 0 if(GlobusSoapMessageStatusFailedElementCheck(result) ||
1605 GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1606 GlobusSoapMessageStatusFailedWithTextCheck(result))
1607 {
1608 0 result = GLOBUS_SUCCESS;
1609 0 break;
1610 }
1611
1612 0 result = GlobusSoapMessageErrorDeserializeFailed(
1613 result, element_qname);
1614 0 goto exit;
1615 }
1616
1617 0 array->elements = realloc(
1618 array->elements,
1619 (array->length + 1) * sizeof(ds_SignedInfoType));
1620 0 if(!array->elements)
1621 {
1622 0 result = GlobusSoapMessageErrorOutOfMemory;
1623 0 goto exit;
1624 }
1625 0 array->elements[array->length] = next;
1626 0 array->length++;
1627 0 ++i;
1628 }
1629
1630 0 exit:
1631
1632 0 if(result != GLOBUS_SUCCESS)
1633 {
1634 0 int di = 0;
1635 0 for(; di < i; ++di)
1636 {
1637 0 ds_SignedInfoType_destroy_contents(
1638 &array->elements[di]);
1639 0 memset(&array->elements[di], 0, sizeof(ds_SignedInfoType));
1640 }
1641 }
1642
1643 0 GlobusSoapMessageDebugExit();
1644 0 return result;