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