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