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