1 /*
2 * Copyright 1999-2006 University of Chicago
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 /*
19 * This file is automatically generated by the Globus WSDLtoC converter
20 */
21
22 #include "xsd_QName.h"
23 #include "globus_soap_message.h"
24 #include "globus_xsd_type_info.h"
25 #include "wst_KeyExchangeTokenType.h"
26 #include "globus_xsd_generic_array.h"
27
28 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
29 xsd_QName wst_KeyExchangeTokenType_qname =
30 {
31 WST_KEYEXCHANGETOKENTYPE_NS,
32 WST_KEYEXCHANGETOKENTYPE_LOCAL
33 };
34 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
35
36 static
37 globus_result_t
38 wst_KeyExchangeTokenType_serialize_wrapper(
39 const xsd_QName * element_qname,
40 const void * instance,
41 globus_soap_message_handle_t message_handle,
42 globus_xsd_element_options_t options)
43 0 {
44 0 return wst_KeyExchangeTokenType_serialize(
45 element_qname,
46 (const wst_KeyExchangeTokenType *) instance,
47 message_handle, options);
48 }
49
50 static
51 globus_result_t
52 wst_KeyExchangeTokenType_deserialize_pointer_wrapper(
53 const xsd_QName * element_qname,
54 void ** ip,
55 globus_soap_message_handle_t message_handle,
56 globus_xsd_element_options_t options)
57 0 {
58 0 return wst_KeyExchangeTokenType_deserialize_pointer(
59 element_qname,
60 (wst_KeyExchangeTokenType **) ip,
61 message_handle, options);
62 }
63
64 static
65 globus_result_t
66 wst_KeyExchangeTokenType_init_wrapper(void **object)
67 0 {
68 0 return wst_KeyExchangeTokenType_init(
69 (wst_KeyExchangeTokenType **) object);
70 }
71
72 static
73 void
74 wst_KeyExchangeTokenType_destroy_wrapper(
75 void * object)
76 0 {
77 0 wst_KeyExchangeTokenType_destroy(
78 (wst_KeyExchangeTokenType *) object);
79 0 }
80
81 static
82 globus_result_t
83 wst_KeyExchangeTokenType_copy_wrapper(
84 void ** dest_obj,
85 const void * src_obj)
86 0 {
87 0 return wst_KeyExchangeTokenType_copy(
88 (wst_KeyExchangeTokenType **) dest_obj,
89 (wst_KeyExchangeTokenType *) src_obj);
90 }
91
92 static
93 globus_result_t
94 wst_KeyExchangeTokenType_init_contents_wrapper(void *object)
95 0 {
96 0 return wst_KeyExchangeTokenType_init_contents(
97 (wst_KeyExchangeTokenType *) object);
98 }
99
100 static
101 void
102 wst_KeyExchangeTokenType_destroy_contents_wrapper(
103 void * object)
104 0 {
105 0 wst_KeyExchangeTokenType_destroy_contents(
106 (wst_KeyExchangeTokenType *) object);
107 0 }
108
109 static
110 globus_result_t
111 wst_KeyExchangeTokenType_copy_contents_wrapper(
112 void * dest_obj,
113 const void * src_obj)
114 0 {
115 0 return wst_KeyExchangeTokenType_copy_contents(
116 (wst_KeyExchangeTokenType *) dest_obj,
117 (const wst_KeyExchangeTokenType *) src_obj);
118 }
119
120 static
121 globus_result_t
122 wst_KeyExchangeTokenType_serialize_contents_wrapper(
123 const xsd_QName * element_qname,
124 const void * instance,
125 globus_soap_message_handle_t message_handle,
126 globus_xsd_element_options_t options)
127 0 {
128 0 return wst_KeyExchangeTokenType_serialize_contents(
129 element_qname,
130 (wst_KeyExchangeTokenType *) instance,
131 message_handle, options);
132 }
133
134 static
135 globus_result_t
136 wst_KeyExchangeTokenType_deserialize_contents_wrapper(
137 const xsd_QName * element_qname,
138 void ** instance,
139 globus_soap_message_handle_t message_handle,
140 globus_xsd_element_options_t options)
141 0 {
142 globus_result_t result;
143 GlobusFuncName(wst_KeyExchangeTokenType_deserialize_contents_wrapper);
144 0 GlobusSoapMessageDebugEnter();
145
146 0 if(!*instance)
147 {
148 0 result = wst_KeyExchangeTokenType_init(
149 (wst_KeyExchangeTokenType **)instance);
150 0 if(result != GLOBUS_SUCCESS)
151 {
152 0 goto error;
153 }
154 }
155
156 0 result = wst_KeyExchangeTokenType_deserialize_contents(
157 element_qname,
158 *(wst_KeyExchangeTokenType **)instance,
159 message_handle, options);
160 0 error:
161 0 GlobusSoapMessageDebugExit();
162 0 return result;
163 }
164
165 static
166 globus_result_t
167 wst_KeyExchangeTokenType_array_serialize_wrapper(
168 const xsd_QName * element,
169 const void * instance,
170 globus_soap_message_handle_t message,
171 globus_xsd_element_options_t options)
172 0 {
173 0 return wst_KeyExchangeTokenType_array_serialize(
174 element,
175 (wst_KeyExchangeTokenType_array *) instance,
176 message, options);
177 }
178
179 static
180 globus_result_t
181 wst_KeyExchangeTokenType_array_deserialize_wrapper(
182 const xsd_QName * element_qname,
183 void ** inst,
184 globus_soap_message_handle_t message,
185 globus_xsd_element_options_t options)
186 0 {
187 0 if(!*inst)
188 {
189 globus_result_t result;
190
191 0 result = wst_KeyExchangeTokenType_array_init(
192 (wst_KeyExchangeTokenType_array **)inst);
193 0 if(result != GLOBUS_SUCCESS)
194 {
195 0 return result;
196 }
197 }
198
199 0 return wst_KeyExchangeTokenType_array_deserialize(
200 element_qname,
201 *(wst_KeyExchangeTokenType_array **) inst,
202 message, options);
203 }
204
205 static
206 globus_result_t
207 wst_KeyExchangeTokenType_array_init_wrapper(
208 void ** arr)
209 0 {
210 0 return wst_KeyExchangeTokenType_array_init(
211 (wst_KeyExchangeTokenType_array **) arr);
212 }
213
214 static
215 void
216 wst_KeyExchangeTokenType_array_destroy_wrapper(
217 void * arr)
218 0 {
219 0 wst_KeyExchangeTokenType_array_destroy(
220 (wst_KeyExchangeTokenType_array *) arr);
221 0 }
222
223 static
224 globus_result_t
225 wst_KeyExchangeTokenType_array_copy_wrapper(
226 void ** dest_arr,
227 const void * src_arr)
228 0 {
229 0 return wst_KeyExchangeTokenType_array_copy(
230 (wst_KeyExchangeTokenType_array **) dest_arr,
231 (const wst_KeyExchangeTokenType_array *) src_arr);
232 }
233
234 static
235 globus_result_t
236 wst_KeyExchangeTokenType_array_init_contents_wrapper(
237 void * arr)
238 0 {
239 0 return wst_KeyExchangeTokenType_array_init_contents(
240 (wst_KeyExchangeTokenType_array *) arr);
241 }
242
243 static
244 void
245 wst_KeyExchangeTokenType_array_destroy_contents_wrapper(
246 void * arr)
247 0 {
248 0 wst_KeyExchangeTokenType_array_destroy_contents(
249 (wst_KeyExchangeTokenType_array *) arr);
250 0 }
251
252 static
253 globus_result_t
254 wst_KeyExchangeTokenType_array_copy_contents_wrapper(
255 void * dest_arr,
256 const void * src_arr)
257 0 {
258 0 return wst_KeyExchangeTokenType_array_copy_contents(
259 (wst_KeyExchangeTokenType_array *) dest_arr,
260 (const wst_KeyExchangeTokenType_array *) src_arr);
261 }
262
263 static
264 void *
265 wst_KeyExchangeTokenType_array_push_wrapper(
266 void * array)
267 0 {
268 0 return (void *) wst_KeyExchangeTokenType_array_push((wst_KeyExchangeTokenType_array *) array);
269 }
270
271 struct globus_xsd_type_info_s wst_KeyExchangeTokenType_contents_info =
272 {
273 &wst_KeyExchangeTokenType_qname,
274 wst_KeyExchangeTokenType_serialize_contents_wrapper,
275 wst_KeyExchangeTokenType_deserialize_contents_wrapper,
276 wst_KeyExchangeTokenType_init_wrapper,
277 wst_KeyExchangeTokenType_destroy_wrapper,
278 wst_KeyExchangeTokenType_copy_wrapper,
279 wst_KeyExchangeTokenType_init_contents_wrapper,
280 wst_KeyExchangeTokenType_destroy_contents_wrapper,
281 wst_KeyExchangeTokenType_copy_contents_wrapper,
282 sizeof(wst_KeyExchangeTokenType),
283 NULL,
284 NULL,
285 NULL
286 };
287
288 struct globus_xsd_type_info_s wst_KeyExchangeTokenType_array_info =
289 {
290 &wst_KeyExchangeTokenType_qname,
291 wst_KeyExchangeTokenType_array_serialize_wrapper,
292 wst_KeyExchangeTokenType_array_deserialize_wrapper,
293 wst_KeyExchangeTokenType_array_init_wrapper,
294 wst_KeyExchangeTokenType_array_destroy_wrapper,
295 wst_KeyExchangeTokenType_array_copy_wrapper,
296 wst_KeyExchangeTokenType_array_init_contents_wrapper,
297 wst_KeyExchangeTokenType_array_destroy_contents_wrapper,
298 wst_KeyExchangeTokenType_array_copy_contents_wrapper,
299 sizeof(wst_KeyExchangeTokenType),
300 wst_KeyExchangeTokenType_array_push_wrapper,
301 NULL,
302 NULL
303 };
304
305 struct globus_xsd_type_info_s wst_KeyExchangeTokenType_info =
306 {
307 &wst_KeyExchangeTokenType_qname,
308 wst_KeyExchangeTokenType_serialize_wrapper,
309 wst_KeyExchangeTokenType_deserialize_pointer_wrapper,
310 wst_KeyExchangeTokenType_init_wrapper,
311 wst_KeyExchangeTokenType_destroy_wrapper,
312 wst_KeyExchangeTokenType_copy_wrapper,
313 wst_KeyExchangeTokenType_init_contents_wrapper,
314 wst_KeyExchangeTokenType_destroy_contents_wrapper,
315 wst_KeyExchangeTokenType_copy_contents_wrapper,
316 sizeof(wst_KeyExchangeTokenType),
317 NULL,
318 &wst_KeyExchangeTokenType_contents_info,
319 &wst_KeyExchangeTokenType_array_info
320 };
321
322 globus_result_t
323 wst_KeyExchangeTokenType_init_contents(
324 wst_KeyExchangeTokenType * instance)
325 0 {
326 0 globus_result_t result = GLOBUS_SUCCESS;
327 GlobusFuncName(wst_KeyExchangeTokenType_init_contents);
328 0 GlobusSoapMessageDebugEnter();
329
330 0 memset(instance, 0, sizeof(wst_KeyExchangeTokenType));
331
332 0 GlobusSoapMessageDebugExit();
333 0 return result;
334 }
335
336 globus_result_t
337 wst_KeyExchangeTokenType_init(
338 wst_KeyExchangeTokenType ** object)
339 0 {
340 wst_KeyExchangeTokenType * instance;
341 0 globus_result_t result = GLOBUS_SUCCESS;
342 GlobusFuncName(wst_KeyExchangeTokenType_init);
343 0 GlobusSoapMessageDebugEnter();
344
345 0 instance = globus_malloc(sizeof(wst_KeyExchangeTokenType));
346 0 if(!instance)
347 {
348 0 result = GlobusSoapMessageErrorOutOfMemory;
349 0 goto exit;
350 }
351
352 0 memset(instance, 0, sizeof(wst_KeyExchangeTokenType));
353
354 0 *object = instance;
355
356 0 exit:
357 0 GlobusSoapMessageDebugExit();
358 0 return result;
359 }
360
361 void
362 wst_KeyExchangeTokenType_destroy(
363 wst_KeyExchangeTokenType * instance)
364 0 {
365 GlobusFuncName(wst_KeyExchangeTokenType_destroy);
366 0 GlobusSoapMessageDebugEnter();
367
368 0 if(!instance)
369 {
370 0 goto exit;
371 }
372
373 0 wst_KeyExchangeTokenType_destroy_contents(instance);
374 0 globus_free(instance);
375
376 0 exit:
377
378 0 GlobusSoapMessageDebugExit();
379 0 }
380
381
382 void
383 wst_KeyExchangeTokenType_destroy_contents(
384 wst_KeyExchangeTokenType * instance)
385 0 {
386 GlobusFuncName(wst_KeyExchangeTokenType_destroy_contents);
387 0 GlobusSoapMessageDebugEnter();
388
389 0 if(instance)
390 {
391
392
393 0 xsd_any_array_destroy_contents(&instance->any);
394
395 }
396
397 0 GlobusSoapMessageDebugExit();
398 0 }
399
400
401 globus_result_t
402 wst_KeyExchangeTokenType_copy(
403 wst_KeyExchangeTokenType ** dest_obj,
404 const wst_KeyExchangeTokenType * src_obj)
405 0 {
406 0 globus_result_t result = GLOBUS_SUCCESS;
407 wst_KeyExchangeTokenType * instance;
408 GlobusFuncName(wst_KeyExchangeTokenType_copy);
409
410 0 GlobusSoapMessageDebugEnter();
411
412 0 instance = calloc(1, sizeof(wst_KeyExchangeTokenType));
413 0 if (instance == NULL)
414 {
415 0 GlobusSoapMessageDebugExit();
416 0 return GlobusSoapMessageErrorOutOfMemory;
417 }
418
419 0 result = wst_KeyExchangeTokenType_copy_contents(instance, src_obj);
420 0 if(result != GLOBUS_SUCCESS)
421 {
422 0 globus_free(instance);
423 0 GlobusSoapMessageDebugExit();
424 0 return GlobusSoapMessageErrorOutOfMemory;
425 }
426
427 0 *dest_obj = instance;
428 0 GlobusSoapMessageDebugExit();
429 0 return result;
430 }
431
432 globus_result_t
433 wst_KeyExchangeTokenType_copy_contents(
434 wst_KeyExchangeTokenType * instance,
435 const wst_KeyExchangeTokenType * src_obj)
436 0 {
437 0 globus_result_t result = GLOBUS_SUCCESS;
438 GlobusFuncName(wst_KeyExchangeTokenType_copy_contents);
439
440 0 GlobusSoapMessageDebugEnter();
441
442 0 result = xsd_any_array_copy_contents(
443 &instance->any,
444 &src_obj->any);
445 0 if(result != GLOBUS_SUCCESS)
446 {
447 0 result = GlobusSoapMessageErrorCopyFailed(
448 result, NULL, &xsd_any_qname);
449 0 goto any_destroy_array;
450 }
451
452 0 goto exit;
453
454 fail_deserialize:
455 xsd_any_array_destroy_contents(
456 &instance->any);
457
458 0 any_destroy_array:
459
460
461 0 exit:
462
463 0 GlobusSoapMessageDebugExit();
464 0 return result;
465 }
466
467
468
469 globus_result_t
470 wst_KeyExchangeTokenType_serialize_contents(
471 const xsd_QName * element_qname, /* ignored */
472 const wst_KeyExchangeTokenType * inst,
473 globus_soap_message_handle_t message_handle,
474 globus_xsd_element_options_t options)
475 0 {
476 0 globus_result_t result = GLOBUS_SUCCESS;
477 GlobusFuncName(wst_KeyExchangeTokenType_serialize_contents);
478 0 GlobusSoapMessageDebugEnter();
479
480 0 result = wst_KeyExchangeTokenType_serialize(
481 NULL,
482 inst,
483 message_handle,
484 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
485 0 if(result != GLOBUS_SUCCESS)
486 {
487 0 result = GlobusSoapMessageErrorSerializeFailed(
488 result, NULL, element_qname);
489 0 goto exit;
490 }
491
492 0 exit:
493
494 0 GlobusSoapMessageDebugExit();
495 0 return result;
496 }
497
498
499
500 globus_result_t
501 wst_KeyExchangeTokenType_serialize(
502 const xsd_QName * element_qname,
503 const wst_KeyExchangeTokenType * instance,
504 globus_soap_message_handle_t message_handle,
505 globus_xsd_element_options_t options)
506 0 {
507 0 globus_result_t result = GLOBUS_SUCCESS;
508 xsd_QName subelement;
509 0 globus_list_t * any_attr_keys = NULL;
510 0 globus_list_t * any_attr_keys_iterator = NULL;
511 0 xsd_QName * type_attr = NULL;
512
513 0 char * prefix = NULL;
514 int prefix_created;
515 0 int define_prefix = 0;
516 0 int save_options = options;
517
518 GlobusFuncName(wst_KeyExchangeTokenType_serialize);
519 0 GlobusSoapMessageDebugEnter();
520
521
522 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
523 {
524 /* serialize wst_KeyExchangeTokenType element */
525 0 result = globus_soap_message_element_ns_set(
526 message_handle,
527 element_qname,
528 element_qname->Namespace,
529 &options);
530 0 if(result != GLOBUS_SUCCESS)
531 {
532 0 result = GlobusSoapMessageErrorSerializeFailed(
533 result, NULL, element_qname);
534 0 goto exit;
535 }
536
537 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
538 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
539 {
540 0 result = globus_soap_message_attribute_ns_set(
541 message_handle,
542 element_qname,
543 "http://www.w3.org/2001/XMLSchema-instance",
544 &options);
545 0 if(result != GLOBUS_SUCCESS)
546 {
547 0 result = GlobusSoapMessageErrorSerializeFailed(
548 result, NULL, element_qname);
549 0 goto exit;
550 }
551 }
552
553 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
554 !globus_soap_message_serialize_is_c14n_subset(message_handle))
555 {
556
557 0 result = globus_soap_message_attribute_ns_set(
558 message_handle,
559 element_qname,
560 wst_KeyExchangeTokenType_qname.Namespace,
561 &options);
562 0 if(result != GLOBUS_SUCCESS)
563 {
564 0 result = GlobusSoapMessageErrorSerializeFailed(
565 result, NULL, element_qname);
566 0 goto exit;
567 }
568 }
569
570 0 result = globus_soap_message_serialize_element(
571 message_handle,
572 element_qname,
573 options,
574 &wst_KeyExchangeTokenType_qname);
575 0 if(result != GLOBUS_SUCCESS)
576 {
577 0 result = GlobusSoapMessageErrorSerializeFailed(
578 result, NULL, element_qname);
579 0 goto exit;
580 }
581
582 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
583 !globus_soap_message_serialize_is_c14n_subset(message_handle))
584 {
585 0 xsd_QName_init(&type_attr);
586
587 0 type_attr->local = globus_libc_strdup("type");
588 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
589 }
590
591
592 /* serialize namespaces */
593 0 result = globus_soap_message_element_ns_add(
594 message_handle,
595 element_qname,
596 element_qname->Namespace,
597 &options);
598 0 if(result != GLOBUS_SUCCESS)
599 {
600 0 result = GlobusSoapMessageErrorSerializeFailed(
601 result, NULL, element_qname);
602 0 goto exit;
603 }
604
605 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
606 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
607 {
608 0 result = globus_soap_message_attribute_ns_add(
609 message_handle,
610 element_qname,
611 "http://www.w3.org/2001/XMLSchema-instance",
612 &options);
613 0 if(result != GLOBUS_SUCCESS)
614 {
615 0 result = GlobusSoapMessageErrorSerializeFailed(
616 result, NULL, element_qname);
617 0 goto exit;
618 }
619 }
620 0 if ((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
621 !globus_soap_message_serialize_is_c14n_subset(message_handle))
622 {
623
624 0 result = globus_soap_message_attribute_ns_add(
625 message_handle,
626 element_qname,
627 wst_KeyExchangeTokenType_qname.Namespace,
628 &options);
629 0 if(result != GLOBUS_SUCCESS)
630 {
631 0 result = GlobusSoapMessageErrorSerializeFailed(
632 result, NULL, element_qname);
633 0 goto exit;
634 }
635 }
636
637 /* serialize attributes */
638
639 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
640 !globus_soap_message_serialize_is_c14n_subset(message_handle))
641 {
642 0 result = globus_soap_message_serialize_QName_attribute(
643 message_handle,
644 type_attr,
645 &wst_KeyExchangeTokenType_qname);
646 0 if(result != GLOBUS_SUCCESS)
647 {
648 0 result = GlobusSoapMessageErrorSerializeFailed(
649 result, NULL, element_qname);
650 0 goto exit;
651 }
652 }
653
654
655 }
656
657 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
658 {
659 0 result = globus_soap_message_serialize_element_begin_close(
660 message_handle, element_qname);
661 0 if(result != GLOBUS_SUCCESS)
662 {
663 0 result = GlobusSoapMessageErrorSerializeFailed(
664 result, NULL, element_qname);
665 0 goto exit;
666 }
667 }
668 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
669
670
671 /* serialize contents of type */
672
673 0 subelement.local = "any";
674 0 subelement.Namespace = "http://www.w3.org/2001/XMLSchema";
675
676 0 result = xsd_any_array_serialize(
677 &subelement,
678 &instance->any,
679 message_handle,
680 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
681 0 if(result != GLOBUS_SUCCESS)
682 {
683 0 result = GlobusSoapMessageErrorSerializeFailed(
684 result, NULL, &xsd_any_qname);
685 0 goto exit;
686 }
687
688 0 options = save_options;
689
690 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
691 {
692 /* add end element */
693 0 result = globus_soap_message_serialize_element_end(
694 message_handle,
695 element_qname,
696 options,
697 &wst_KeyExchangeTokenType_qname);
698 0 if(result != GLOBUS_SUCCESS)
699 {
700 0 result = GlobusSoapMessageErrorSerializeFailed(
701 result, NULL, element_qname);
702 0 goto exit;
703 }
704
705 0 globus_soap_message_element_ns_remove(
706 message_handle,
707 element_qname->Namespace,
708 &options);
709
710 /* remove namespace/prefix mappings for these types */
711
712 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
713 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
714 {
715 0 globus_soap_message_attribute_ns_remove(
716 message_handle,
717 "http://www.w3.org/2001/XMLSchema-instance",
718 &options);
719 }
720 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
721 !globus_soap_message_serialize_is_c14n_subset(message_handle))
722 {
723 0 globus_soap_message_attribute_ns_remove(
724 message_handle,
725 wst_KeyExchangeTokenType_qname.Namespace,
726 &options);
727 }
728
729 }
730
731 0 exit:
732 0 if (type_attr)
733 {
734 0 xsd_QName_destroy(type_attr);
735 }
736
737
738 0 if(any_attr_keys)
739 {
740 0 globus_list_free(any_attr_keys);
741 }
742
743 0 GlobusSoapMessageDebugExit();
744 0 return result;
745 }
746
747
748
749 globus_result_t
750 wst_KeyExchangeTokenType_deserialize_contents(
751 const xsd_QName * element_qname, /* ignored */
752 wst_KeyExchangeTokenType * inst,
753 globus_soap_message_handle_t message_handle,
754 globus_xsd_element_options_t options)
755 0 {
756 0 globus_result_t result = GLOBUS_SUCCESS;
757 GlobusFuncName(wst_KeyExchangeTokenType_deserialize_contents);
758 0 GlobusSoapMessageDebugEnter();
759
760 0 result = wst_KeyExchangeTokenType_deserialize(
761 NULL,
762 inst,
763 message_handle,
764 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
765 0 if(result != GLOBUS_SUCCESS)
766 {
767 0 result = GlobusSoapMessageErrorDeserializeFailed(
768 result, element_qname);
769 0 goto exit;
770 }
771
772 0 exit:
773
774 0 GlobusSoapMessageDebugExit();
775 0 return result;
776 }
777
778
779
780 globus_result_t
781 wst_KeyExchangeTokenType_deserialize(
782 const xsd_QName * element_qname,
783 wst_KeyExchangeTokenType * instance,
784 globus_soap_message_handle_t message_handle,
785 globus_xsd_element_options_t options)
786 0 {
787 0 globus_result_t result = GLOBUS_SUCCESS;
788 xsd_QName subelement;
789 GlobusFuncName(wst_KeyExchangeTokenType_deserialize);
790 0 GlobusSoapMessageDebugEnter();
791
792
793 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
794 {
795 0 result = globus_soap_message_deserialize_element(
796 message_handle, element_qname);
797 0 if(result != GLOBUS_SUCCESS)
798 {
799 0 result = GlobusSoapMessageErrorDeserializeFailed(
800 result, element_qname);
801 0 goto exit;
802 }
803
804
805 0 result = globus_soap_message_deserialize_element_begin_close(
806 message_handle);
807 0 if(result != GLOBUS_SUCCESS)
808 {
809 0 result = GlobusSoapMessageErrorDeserializeFailed(
810 result, element_qname);
811 0 goto fail_deserialize;
812 }
813 }
814
815 0 subelement.local = "any";
816
817 0 subelement.Namespace = "##any";
818
819 0 result = xsd_any_array_deserialize(
820 &subelement,
821 &instance->any,
822 message_handle,
823 0);
824 0 if(result != GLOBUS_SUCCESS)
825 {
826 0 result = GlobusSoapMessageErrorDeserializeFailed(
827 result,
828 (&subelement));
829 0 goto any_destroy_array;
830 }
831
832 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
833 {
834 0 result = globus_soap_message_deserialize_element_end(
835 message_handle,
836 element_qname);
837 0 if(result != GLOBUS_SUCCESS)
838 {
839 0 result = GlobusSoapMessageErrorDeserializeFailed(
840 result, element_qname);
841 0 goto fail_deserialize;
842 }
843 }
844
845 0 goto exit;
846
847 0 fail_deserialize:
848 0 xsd_any_array_destroy_contents(
849 &instance->any);
850
851 0 any_destroy_array:
852
853
854 0 exit:
855
856 0 GlobusSoapMessageDebugExit();
857 0 return result;
858 }
859
860
861
862 globus_result_t
863 wst_KeyExchangeTokenType_deserialize_pointer(
864 const xsd_QName * element_qname,
865 wst_KeyExchangeTokenType ** ip,
866 globus_soap_message_handle_t message_handle,
867 globus_xsd_element_options_t options)
868 0 {
869 0 wst_KeyExchangeTokenType * instance = NULL;
870 0 globus_result_t result = GLOBUS_SUCCESS;
871 xsd_QName subelement;
872 0 int found_attrs = 0;
873 0 int empty_element = 0;
874 GlobusFuncName(wst_KeyExchangeTokenType_deserialize_pointer);
875 0 GlobusSoapMessageDebugEnter();
876
877 0 *ip = NULL;
878
879 0 result = globus_soap_message_deserialize_element(
880 message_handle, element_qname);
881 0 if(result != GLOBUS_SUCCESS &&
882 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
883 GlobusSoapMessageStatusFailedElementCheck(result) ||
884 GlobusSoapMessageStatusFailedWithTextCheck(result)))
885 {
886 0 result = GLOBUS_SUCCESS;
887 0 goto exit;
888 }
889
890 0 if(result != GLOBUS_SUCCESS)
891 {
892 0 result = GlobusSoapMessageErrorDeserializeFailed(
893 result, element_qname);
894 0 goto exit;
895 }
896
897 0 if(globus_soap_message_deserialize_element_is_empty(
898 message_handle))
899 {
900 0 empty_element = 1;
901 }
902
903 0 result = wst_KeyExchangeTokenType_init(&instance);
904 0 if(result != GLOBUS_SUCCESS)
905 {
906 0 result = GlobusSoapMessageErrorDeserializeFailed(
907 result, element_qname);
908 0 goto exit;
909 }
910
911
912 0 if(found_attrs == 0 &&
913 globus_soap_message_deserialize_element_is_nil(message_handle))
914 {
915 0 wst_KeyExchangeTokenType_destroy(instance);
916
917 0 result = globus_soap_message_deserialize_element_end(
918 message_handle,
919 element_qname);
920 0 if(result != GLOBUS_SUCCESS)
921 {
922 0 result = GlobusSoapMessageErrorDeserializeFailed(
923 result, element_qname);
924 0 goto exit;
925 }
926
927 0 *ip = NULL;
928 0 globus_object_free(globus_error_get(result));
929 0 result = GLOBUS_SUCCESS;
930 0 goto exit;
931 }
932
933 0 if(empty_element)
934 {
935 0 result = globus_soap_message_deserialize_element_end(
936 message_handle,
937 element_qname);
938 0 if(result != GLOBUS_SUCCESS)
939 {
940 0 result = GlobusSoapMessageErrorDeserializeFailed(
941 result, element_qname);
942 0 goto fail_deserialize;
943 }
944
945 0 *ip = instance;
946 0 goto exit;
947 }
948
949 0 result = globus_soap_message_deserialize_element_begin_close(
950 message_handle);
951 0 if(result != GLOBUS_SUCCESS)
952 {
953 0 result = GlobusSoapMessageErrorDeserializeFailed(
954 result, element_qname);
955 0 goto exit;
956 }
957
958 0 result = wst_KeyExchangeTokenType_deserialize(
959 element_qname,
960 instance,
961 message_handle,
962 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
963 0 if(result != GLOBUS_SUCCESS)
964 {
965 0 result = GlobusSoapMessageErrorDeserializeFailed(
966 result, element_qname);
967 0 goto exit;
968 }
969
970 0 result = globus_soap_message_deserialize_element_end(
971 message_handle,
972 element_qname);
973 0 if(result != GLOBUS_SUCCESS)
974 {
975 0 result = GlobusSoapMessageErrorDeserializeFailed(
976 result, element_qname);
977 0 goto fail_deserialize;
978 }
979
980 0 *ip = instance;
981
982 0 goto exit;
983
984 0 fail_deserialize:
985 0 xsd_any_array_destroy_contents(
986 &instance->any);
987
988 0 any_destroy_array:
989
990 0 exit:
991
992 0 GlobusSoapMessageDebugExit();
993 0 return result;
994 }
995
996
997 globus_result_t
998 wst_KeyExchangeTokenType_array_init_contents(
999 wst_KeyExchangeTokenType_array * array)
1000 0 {
1001 0 return globus_xsd_generic_array_init_contents(
1002 (globus_xsd_generic_array_t *) array,
1003 &wst_KeyExchangeTokenType_info);
1004 }
1005 /* wst_KeyExchangeTokenType_array_init_contents() */
1006
1007 globus_result_t
1008 wst_KeyExchangeTokenType_array_init(
1009 wst_KeyExchangeTokenType_array ** arr)
1010 0 {
1011 0 return globus_xsd_generic_array_init(
1012 (globus_xsd_generic_array_t **) arr,
1013 &wst_KeyExchangeTokenType_info);
1014 }
1015 /* wst_KeyExchangeTokenType_array_init() */
1016
1017 void
1018 wst_KeyExchangeTokenType_array_destroy_contents(
1019 wst_KeyExchangeTokenType_array * array)
1020 0 {
1021 0 globus_xsd_generic_array_destroy_contents(
1022 (globus_xsd_generic_array_t *) array);
1023 0 }
1024 /* wst_KeyExchangeTokenType_array_destroy_contents() */
1025
1026 void
1027 wst_KeyExchangeTokenType_array_destroy(
1028 wst_KeyExchangeTokenType_array * array)
1029 0 {
1030 0 globus_xsd_generic_array_destroy(
1031 (globus_xsd_generic_array_t *) array);
1032 0 }
1033 /* wst_KeyExchangeTokenType_array_destroy() */
1034
1035 globus_result_t
1036 wst_KeyExchangeTokenType_array_copy(
1037 wst_KeyExchangeTokenType_array ** dest_arr,
1038 const wst_KeyExchangeTokenType_array * src_arr)
1039 0 {
1040 0 return globus_xsd_generic_array_copy(
1041 (globus_xsd_generic_array_t **) dest_arr,
1042 (globus_xsd_generic_array_t *) src_arr);
1043 }
1044 /* wst_KeyExchangeTokenType_array_copy() */
1045
1046 globus_result_t
1047 wst_KeyExchangeTokenType_array_copy_contents(
1048 wst_KeyExchangeTokenType_array * dest_arr,
1049 const wst_KeyExchangeTokenType_array * src_arr)
1050 0 {
1051 0 return globus_xsd_generic_array_copy_contents(
1052 (globus_xsd_generic_array_t *) dest_arr,
1053 (globus_xsd_generic_array_t *) src_arr);
1054 }
1055 /* wst_KeyExchangeTokenType_array_copy_contents() */
1056
1057 wst_KeyExchangeTokenType *
1058 wst_KeyExchangeTokenType_array_push(
1059 wst_KeyExchangeTokenType_array * array)
1060 0 {
1061 /* Some contents initializers don't initialize subelments but to set their
1062 * values to be NULL
1063 */
1064 0 if (array->type_info == NULL)
1065 {
1066 0 array->type_info = &wst_KeyExchangeTokenType_info;
1067 }
1068
1069 0 return globus_xsd_generic_array_push(
1070 (globus_xsd_generic_array_t *) array);
1071 }
1072 /* wst_KeyExchangeTokenType_array_push() */
1073
1074 globus_result_t
1075 wst_KeyExchangeTokenType_array_serialize(
1076 const xsd_QName * element_qname,
1077 const wst_KeyExchangeTokenType_array * array,
1078 globus_soap_message_handle_t message,
1079 globus_xsd_element_options_t options)
1080 0 {
1081 0 return globus_xsd_generic_array_serialize(
1082 element_qname,
1083 (const globus_xsd_generic_array_t *) array,
1084 message,
1085 options);
1086 }
1087 /* wst_KeyExchangeTokenType_array_serialize() */
1088
1089 globus_result_t
1090 wst_KeyExchangeTokenType_array_deserialize(
1091 const xsd_QName * element_qname,
1092 wst_KeyExchangeTokenType_array * array,
1093 globus_soap_message_handle_t message,
1094 globus_xsd_element_options_t options)
1095 0 {
1096 /* Some initializers set the array's contents to NULL */
1097 0 if (array->type_info == NULL)
1098 {
1099 0 array->type_info = &wst_KeyExchangeTokenType_info;
1100 }
1101 0 return globus_xsd_generic_array_deserialize(
1102 element_qname,
1103 (globus_xsd_generic_array_t *) array,
1104 message,
1105 options);