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_RequestTypeOpenEnum.h"
26 #include "globus_xsd_generic_array.h"
27
28 xsd_QName wst_RequestTypeOpenEnum_qname =
29 {
30 "http://schemas.xmlsoap.org/ws/2004/04/trust",
31 "RequestTypeOpenEnum"
32 };
33
34 static
35 globus_result_t
36 wst_RequestTypeOpenEnum_serialize_wrapper(
37 const xsd_QName * element_qname,
38 const void * instance,
39 globus_soap_message_handle_t message_handle,
40 globus_xsd_element_options_t options)
41 0 {
42 0 return wst_RequestTypeOpenEnum_serialize(
43 element_qname,
44 (wst_RequestTypeOpenEnum *) instance,
45 message_handle, options);
46 }
47
48 static
49 globus_result_t
50 wst_RequestTypeOpenEnum_deserialize_pointer_wrapper(
51 const xsd_QName * element_qname,
52 void ** ip,
53 globus_soap_message_handle_t message_handle,
54 globus_xsd_element_options_t options)
55 0 {
56 0 return wst_RequestTypeOpenEnum_deserialize_pointer(
57 element_qname,
58 (wst_RequestTypeOpenEnum **) ip,
59 message_handle, options);
60 }
61
62 static
63 globus_result_t
64 wst_RequestTypeOpenEnum_init_wrapper(void **object)
65 0 {
66 0 return wst_RequestTypeOpenEnum_init(
67 (wst_RequestTypeOpenEnum **) object);
68 }
69
70 static
71 void
72 wst_RequestTypeOpenEnum_destroy_wrapper(
73 void * object)
74 0 {
75 0 wst_RequestTypeOpenEnum_destroy(
76 (wst_RequestTypeOpenEnum *) object);
77 0 }
78
79 static
80 globus_result_t
81 wst_RequestTypeOpenEnum_copy_wrapper(
82 void ** dest_obj,
83 const void * src_obj)
84 0 {
85 0 return wst_RequestTypeOpenEnum_copy(
86 (wst_RequestTypeOpenEnum **) dest_obj,
87 (const wst_RequestTypeOpenEnum *) src_obj);
88 }
89
90 static
91 globus_result_t
92 wst_RequestTypeOpenEnum_init_contents_wrapper(void *object)
93 0 {
94 0 return wst_RequestTypeOpenEnum_init_contents(
95 (wst_RequestTypeOpenEnum *) object);
96 }
97
98 static
99 void
100 wst_RequestTypeOpenEnum_destroy_contents_wrapper(
101 void * object)
102 0 {
103 0 wst_RequestTypeOpenEnum_destroy_contents(
104 (wst_RequestTypeOpenEnum *) object);
105 0 }
106
107 static
108 globus_result_t
109 wst_RequestTypeOpenEnum_copy_contents_wrapper(
110 void * dest_obj,
111 const void * src_obj)
112 0 {
113 0 return wst_RequestTypeOpenEnum_copy_contents(
114 (wst_RequestTypeOpenEnum *) dest_obj,
115 (const wst_RequestTypeOpenEnum *) src_obj);
116 }
117
118 static
119 globus_result_t
120 wst_RequestTypeOpenEnum_serialize_contents_wrapper(
121 const xsd_QName * element_qname,
122 const void * instance,
123 globus_soap_message_handle_t message_handle,
124 globus_xsd_element_options_t options)
125 0 {
126 0 return wst_RequestTypeOpenEnum_serialize_contents(
127 element_qname,
128 (wst_RequestTypeOpenEnum *) instance,
129 message_handle, options);
130 }
131
132 static
133 globus_result_t
134 wst_RequestTypeOpenEnum_deserialize_contents_wrapper(
135 const xsd_QName * element_qname,
136 void ** instance,
137 globus_soap_message_handle_t message_handle,
138 globus_xsd_element_options_t options)
139 0 {
140 globus_result_t result;
141 GlobusFuncName(wst_RequestTypeOpenEnum_deserialize_contents_wrapper);
142 0 GlobusSoapMessageDebugEnter();
143
144 0 if(!*instance)
145 {
146 0 result = wst_RequestTypeOpenEnum_init(
147 (wst_RequestTypeOpenEnum **)instance);
148 0 if(result != GLOBUS_SUCCESS)
149 {
150 0 goto error;
151 }
152 }
153
154 0 result = wst_RequestTypeOpenEnum_deserialize_contents(
155 element_qname,
156 *(wst_RequestTypeOpenEnum **)instance,
157 message_handle, options);
158 0 error:
159 0 GlobusSoapMessageDebugExit();
160 0 return result;
161 }
162
163 static
164 globus_result_t
165 wst_RequestTypeOpenEnum_array_serialize_wrapper(
166 const xsd_QName * element,
167 const void * instance,
168 globus_soap_message_handle_t message,
169 globus_xsd_element_options_t options)
170 0 {
171 0 return wst_RequestTypeOpenEnum_array_serialize(
172 element,
173 (wst_RequestTypeOpenEnum_array *) instance,
174 message, options);
175 }
176
177 static
178 globus_result_t
179 wst_RequestTypeOpenEnum_array_deserialize_wrapper(
180 const xsd_QName * element_qname,
181 void ** inst,
182 globus_soap_message_handle_t message,
183 globus_xsd_element_options_t options)
184 0 {
185 0 if(!*inst)
186 {
187 globus_result_t result;
188
189 0 result = wst_RequestTypeOpenEnum_array_init(
190 (wst_RequestTypeOpenEnum_array **)inst);
191 0 if(result != GLOBUS_SUCCESS)
192 {
193 0 return result;
194 }
195 }
196
197 0 return wst_RequestTypeOpenEnum_array_deserialize(
198 element_qname,
199 *(wst_RequestTypeOpenEnum_array **) inst,
200 message, options);
201 }
202
203 static
204 globus_result_t
205 wst_RequestTypeOpenEnum_array_init_wrapper(
206 void ** arr)
207 0 {
208 0 return wst_RequestTypeOpenEnum_array_init(
209 (wst_RequestTypeOpenEnum_array **) arr);
210 }
211
212 static
213 void
214 wst_RequestTypeOpenEnum_array_destroy_wrapper(
215 void * arr)
216 0 {
217 0 wst_RequestTypeOpenEnum_array_destroy(
218 (wst_RequestTypeOpenEnum_array *) arr);
219 0 }
220
221 static
222 globus_result_t
223 wst_RequestTypeOpenEnum_array_copy_wrapper(
224 void ** dest_arr,
225 const void * src_arr)
226 0 {
227 0 return wst_RequestTypeOpenEnum_array_copy(
228 (wst_RequestTypeOpenEnum_array **) dest_arr,
229 (const wst_RequestTypeOpenEnum_array *) src_arr);
230 }
231
232 static
233 globus_result_t
234 wst_RequestTypeOpenEnum_array_init_contents_wrapper(
235 void * arr)
236 0 {
237 0 return wst_RequestTypeOpenEnum_array_init_contents(
238 (wst_RequestTypeOpenEnum_array *) arr);
239 }
240
241 static
242 void
243 wst_RequestTypeOpenEnum_array_destroy_contents_wrapper(
244 void * arr)
245 0 {
246 0 wst_RequestTypeOpenEnum_array_destroy_contents(
247 (wst_RequestTypeOpenEnum_array *) arr);
248 0 }
249
250 static
251 globus_result_t
252 wst_RequestTypeOpenEnum_array_copy_contents_wrapper(
253 void * dest_arr,
254 const void * src_arr)
255 0 {
256 0 return wst_RequestTypeOpenEnum_array_copy_contents(
257 (wst_RequestTypeOpenEnum_array *) dest_arr,
258 (const wst_RequestTypeOpenEnum_array *) src_arr);
259 }
260
261 static
262 void *
263 wst_RequestTypeOpenEnum_array_push_wrapper(
264 void * array)
265 0 {
266 0 return (void *) wst_RequestTypeOpenEnum_array_push((wst_RequestTypeOpenEnum_array *) array);
267 }
268
269
270 struct globus_xsd_type_info_s wst_RequestTypeOpenEnum_array_info =
271 {
272 &wst_RequestTypeOpenEnum_qname,
273 wst_RequestTypeOpenEnum_array_serialize_wrapper,
274 wst_RequestTypeOpenEnum_array_deserialize_wrapper,
275 wst_RequestTypeOpenEnum_array_init_wrapper,
276 wst_RequestTypeOpenEnum_array_destroy_wrapper,
277 wst_RequestTypeOpenEnum_array_copy_wrapper,
278 wst_RequestTypeOpenEnum_array_init_contents_wrapper,
279 wst_RequestTypeOpenEnum_array_destroy_contents_wrapper,
280 wst_RequestTypeOpenEnum_array_copy_contents_wrapper,
281 sizeof(wst_RequestTypeOpenEnum),
282 wst_RequestTypeOpenEnum_array_push_wrapper,
283 NULL,
284 NULL
285 };
286
287 struct globus_xsd_type_info_s wst_RequestTypeOpenEnum_contents_info =
288 {
289 &wst_RequestTypeOpenEnum_qname,
290 wst_RequestTypeOpenEnum_serialize_contents_wrapper,
291 wst_RequestTypeOpenEnum_deserialize_contents_wrapper,
292 wst_RequestTypeOpenEnum_init_wrapper,
293 wst_RequestTypeOpenEnum_destroy_wrapper,
294 wst_RequestTypeOpenEnum_copy_wrapper,
295 wst_RequestTypeOpenEnum_init_contents_wrapper,
296 wst_RequestTypeOpenEnum_destroy_contents_wrapper,
297 wst_RequestTypeOpenEnum_copy_contents_wrapper,
298 sizeof(wst_RequestTypeOpenEnum),
299 NULL,
300 NULL,
301 NULL
302 };
303
304 struct globus_xsd_type_info_s wst_RequestTypeOpenEnum_info =
305 {
306 &wst_RequestTypeOpenEnum_qname,
307 wst_RequestTypeOpenEnum_serialize_wrapper,
308 wst_RequestTypeOpenEnum_deserialize_pointer_wrapper,
309 wst_RequestTypeOpenEnum_init_wrapper,
310 wst_RequestTypeOpenEnum_destroy_wrapper,
311 wst_RequestTypeOpenEnum_copy_wrapper,
312 wst_RequestTypeOpenEnum_init_contents_wrapper,
313 wst_RequestTypeOpenEnum_destroy_contents_wrapper,
314 wst_RequestTypeOpenEnum_copy_contents_wrapper,
315 sizeof(wst_RequestTypeOpenEnum),
316 NULL,
317 &wst_RequestTypeOpenEnum_contents_info,
318 &wst_RequestTypeOpenEnum_array_info
319 };
320
321 globus_result_t
322 wst_RequestTypeOpenEnum_init_contents(
323 wst_RequestTypeOpenEnum * instance)
324 0 {
325 0 globus_result_t result = GLOBUS_SUCCESS;
326 GlobusFuncName(wst_RequestTypeOpenEnum_init_contents);
327 0 GlobusSoapMessageDebugEnter();
328
329 0 instance->type = wst_RequestTypeOpenEnum_undefined;
330 0 GlobusSoapMessageDebugExit();
331 0 return result;
332 }
333
334 globus_result_t
335 wst_RequestTypeOpenEnum_init(
336 wst_RequestTypeOpenEnum ** object)
337 0 {
338 wst_RequestTypeOpenEnum * instance;
339 0 globus_result_t result = GLOBUS_SUCCESS;
340 GlobusFuncName(wst_RequestTypeOpenEnum_init);
341 0 GlobusSoapMessageDebugEnter();
342
343 0 instance = calloc(1, sizeof(wst_RequestTypeOpenEnum));
344 0 if(!instance)
345 {
346 0 result = GlobusSoapMessageErrorOutOfMemory;
347 0 GlobusSoapMessageDebugExit();
348 0 return result;
349 }
350
351 0 *object = instance;
352
353 0 GlobusSoapMessageDebugExit();
354 0 return result;
355 }
356
357 void
358 wst_RequestTypeOpenEnum_destroy(
359 wst_RequestTypeOpenEnum * instance)
360 0 {
361 GlobusFuncName(wst_RequestTypeOpenEnum_destroy);
362 0 GlobusSoapMessageDebugEnter();
363
364 0 if(!instance)
365 {
366 0 goto exit;
367 }
368
369 0 wst_RequestTypeOpenEnum_destroy_contents(instance);
370 0 globus_free(instance);
371
372 0 exit:
373
374 0 GlobusSoapMessageDebugExit();
375 0 }
376
377 void
378 wst_RequestTypeOpenEnum_destroy_contents(
379 wst_RequestTypeOpenEnum * instance)
380 0 {
381 GlobusFuncName(wst_RequestTypeOpenEnum_destroy_contents);
382 0 GlobusSoapMessageDebugEnter();
383
384 0 if(instance)
385 {
386
387 0 switch (instance->type)
388 {
389 case wst_RequestTypeOpenEnum_undefined:
390 0 break;
391
392 case wst_RequestTypeOpenEnum_RequestTypeEnum:
393 0 wst_RequestTypeEnum_destroy_contents(&instance->value.RequestTypeEnum);
394 0 break;
395
396 case wst_RequestTypeOpenEnum_anyURI:
397 0 xsd_anyURI_destroy_contents(&instance->value.anyURI);
398 break;
399
400 }
401 }
402
403 0 GlobusSoapMessageDebugExit();
404 0 }
405
406 globus_result_t
407 wst_RequestTypeOpenEnum_copy(
408 wst_RequestTypeOpenEnum ** dest_obj,
409 const wst_RequestTypeOpenEnum * src_obj)
410 0 {
411 0 globus_result_t result = GLOBUS_SUCCESS;
412 wst_RequestTypeOpenEnum * instance;
413 GlobusFuncName(wst_RequestTypeOpenEnum_copy);
414
415 0 GlobusSoapMessageDebugEnter();
416
417 0 instance = malloc(sizeof(wst_RequestTypeOpenEnum));
418 0 if (instance == NULL)
419 {
420 0 GlobusSoapMessageDebugExit();
421 0 return GlobusSoapMessageErrorOutOfMemory;
422 }
423
424 0 result = wst_RequestTypeOpenEnum_copy_contents(instance, src_obj);
425 0 if(result != GLOBUS_SUCCESS)
426 {
427 0 globus_free(instance);
428 0 GlobusSoapMessageDebugExit();
429 0 return GlobusSoapMessageErrorOutOfMemory;
430 }
431
432 0 *dest_obj = instance;
433 0 GlobusSoapMessageDebugExit();
434 0 return result;
435 }
436
437 globus_result_t
438 wst_RequestTypeOpenEnum_copy_contents(
439 wst_RequestTypeOpenEnum * instance,
440 const wst_RequestTypeOpenEnum * src_obj)
441 0 {
442 0 globus_result_t result = GLOBUS_SUCCESS;
443 GlobusFuncName(wst_RequestTypeOpenEnum_copy_contents);
444
445 0 GlobusSoapMessageDebugEnter();
446
447 0 instance->type = src_obj->type;
448
449 0 switch (src_obj->type)
450 {
451 case wst_RequestTypeOpenEnum_undefined:
452 0 break;
453
454 case wst_RequestTypeOpenEnum_RequestTypeEnum:
455 0 result = wst_RequestTypeEnum_copy_contents(
456 &instance->value.RequestTypeEnum,
457 &src_obj->value.RequestTypeEnum);
458 0 break;
459
460 case wst_RequestTypeOpenEnum_anyURI:
461 0 result = xsd_anyURI_copy_contents(
462 &instance->value.anyURI,
463 &src_obj->value.anyURI);
464 break;
465 }
466
467 0 GlobusSoapMessageDebugExit();
468 0 return result;
469 }
470
471
472
473 globus_result_t
474 wst_RequestTypeOpenEnum_serialize_contents(
475 const xsd_QName * element_qname, /* ignored */
476 const wst_RequestTypeOpenEnum * inst,
477 globus_soap_message_handle_t message_handle,
478 globus_xsd_element_options_t options)
479 0 {
480 0 globus_result_t result = GLOBUS_SUCCESS;
481 GlobusFuncName(wst_RequestTypeOpenEnum_serialize_contents);
482 0 GlobusSoapMessageDebugEnter();
483
484 0 result = wst_RequestTypeOpenEnum_serialize(
485 NULL,
486 inst,
487 message_handle,
488 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
489 0 if(result != GLOBUS_SUCCESS)
490 {
491 0 result = GlobusSoapMessageErrorSerializeFailed(
492 result, NULL, element_qname);
493 0 goto exit;
494 }
495
496 0 exit:
497
498 0 GlobusSoapMessageDebugExit();
499 0 return result;
500 }
501
502
503
504 globus_result_t
505 wst_RequestTypeOpenEnum_serialize(
506 const xsd_QName * element_qname,
507 const wst_RequestTypeOpenEnum * instance,
508 globus_soap_message_handle_t message_handle,
509 globus_xsd_element_options_t options)
510 0 {
511 0 globus_result_t result = GLOBUS_SUCCESS;
512
513 GlobusFuncName(wst_RequestTypeOpenEnum_serialize);
514 0 GlobusSoapMessageDebugEnter();
515
516 0 switch (instance->type)
517 {
518 case wst_RequestTypeOpenEnum_undefined:
519 0 result = GlobusSoapMessageErrorSerializeFailed(
520 result,
521 "Undefined union value.",
522 element_qname);
523 0 break;
524
525 case wst_RequestTypeOpenEnum_RequestTypeEnum:
526 0 result = wst_RequestTypeEnum_serialize(
527 element_qname,
528 &instance->value.RequestTypeEnum,
529 message_handle,
530 options);
531 0 break;
532
533 case wst_RequestTypeOpenEnum_anyURI:
534 0 result = xsd_anyURI_serialize(
535 element_qname,
536 &instance->value.anyURI,
537 message_handle,
538 options);
539 break;
540 }
541
542 0 GlobusSoapMessageDebugExit();
543 0 return result;
544 }
545
546
547
548 globus_result_t
549 wst_RequestTypeOpenEnum_deserialize_contents(
550 const xsd_QName * element_qname, /* ignored */
551 wst_RequestTypeOpenEnum * inst,
552 globus_soap_message_handle_t message_handle,
553 globus_xsd_element_options_t options)
554 0 {
555 0 globus_result_t result = GLOBUS_SUCCESS;
556 GlobusFuncName(wst_RequestTypeOpenEnum_deserialize_contents);
557 0 GlobusSoapMessageDebugEnter();
558
559 0 result = wst_RequestTypeOpenEnum_deserialize(
560 NULL,
561 inst,
562 message_handle,
563 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
564 0 if(result != GLOBUS_SUCCESS)
565 {
566 0 result = GlobusSoapMessageErrorDeserializeFailed(
567 result, element_qname);
568 0 goto exit;
569 }
570
571 0 exit:
572
573 0 GlobusSoapMessageDebugExit();
574 0 return result;
575 }
576
577
578
579 globus_result_t
580 wst_RequestTypeOpenEnum_deserialize(
581 const xsd_QName * element_qname,
582 wst_RequestTypeOpenEnum * instance,
583 globus_soap_message_handle_t message_handle,
584 globus_xsd_element_options_t options)
585 0 {
586 0 globus_result_t result = GLOBUS_SUCCESS;
587 xsd_QName subelement;
588 GlobusFuncName(wst_RequestTypeOpenEnum_deserialize);
589 0 GlobusSoapMessageDebugEnter();
590
591 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
592 {
593 0 result = globus_soap_message_deserialize_element(
594 message_handle, element_qname);
595 0 if(result != GLOBUS_SUCCESS)
596 {
597 0 result = GlobusSoapMessageErrorDeserializeFailed(
598 result, element_qname);
599 0 goto exit;
600 }
601
602 0 result = globus_soap_message_deserialize_element_begin_close(
603 message_handle);
604 0 if(result != GLOBUS_SUCCESS)
605 {
606 0 result = GlobusSoapMessageErrorDeserializeFailed(
607 result, element_qname);
608 0 goto exit;
609 }
610 }
611
612 0 instance->type = wst_RequestTypeOpenEnum_undefined;
613
614 0 if (instance->type == wst_RequestTypeOpenEnum_undefined)
615 {
616 0 result = wst_RequestTypeEnum_deserialize_contents(
617 NULL,
618 &instance->value.RequestTypeEnum,
619 message_handle,
620 options);
621 0 if(result == GLOBUS_SUCCESS)
622 {
623 0 instance->type = wst_RequestTypeOpenEnum_RequestTypeEnum;
624 }
625 else
626 {
627 0 globus_soap_message_deserialize_push_element(message_handle);
628 }
629 }
630
631 0 if (instance->type == wst_RequestTypeOpenEnum_undefined)
632 {
633 0 result = xsd_anyURI_deserialize_contents(
634 NULL,
635 &instance->value.anyURI,
636 message_handle,
637 options);
638 0 if(result == GLOBUS_SUCCESS)
639 {
640 0 instance->type = wst_RequestTypeOpenEnum_anyURI;
641 }
642 else
643 {
644 0 globus_soap_message_deserialize_push_element(message_handle);
645 }
646 }
647
648 0 if (instance->type == wst_RequestTypeOpenEnum_undefined)
649 {
650 0 goto exit;
651 }
652
653 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
654 {
655 0 result = globus_soap_message_deserialize_element_end(
656 message_handle,
657 element_qname);
658 0 if(result != GLOBUS_SUCCESS)
659 {
660 0 result = GlobusSoapMessageErrorDeserializeFailed(
661 result, element_qname);
662 0 goto exit;
663 }
664 }
665
666 0 exit:
667
668 0 GlobusSoapMessageDebugExit();
669 0 return result;
670 }
671
672
673
674 globus_result_t
675 wst_RequestTypeOpenEnum_deserialize_pointer(
676 const xsd_QName * element_qname,
677 wst_RequestTypeOpenEnum ** ip,
678 globus_soap_message_handle_t message_handle,
679 globus_xsd_element_options_t options)
680 0 {
681 0 wst_RequestTypeOpenEnum * instance = NULL;
682 0 globus_result_t result = GLOBUS_SUCCESS;
683 xsd_QName subelement;
684 GlobusFuncName(wst_RequestTypeOpenEnum_deserialize_pointer);
685 0 GlobusSoapMessageDebugEnter();
686
687 0 *ip = NULL;
688
689 0 result = globus_soap_message_deserialize_element(
690 message_handle, element_qname);
691 0 if(GlobusSoapMessageStatusElementNotFoundCheck(result) ||
692 GlobusSoapMessageStatusFailedElementCheck(result) ||
693 GlobusSoapMessageStatusFailedWithTextCheck(result))
694 {
695 0 *ip = NULL;
696 0 result = GLOBUS_SUCCESS;
697 0 goto exit;
698 }
699
700 0 if(result != GLOBUS_SUCCESS)
701 {
702 0 result = GlobusSoapMessageErrorDeserializeFailed(
703 result, element_qname);
704 0 goto exit;
705 }
706
707 0 if(globus_soap_message_deserialize_element_is_empty(
708 message_handle))
709 {
710 0 *ip = NULL;
711 0 goto exit;
712 }
713
714 0 result = wst_RequestTypeOpenEnum_init(&instance);
715 0 if(result != GLOBUS_SUCCESS)
716 {
717 0 result = GlobusSoapMessageErrorDeserializeFailed(
718 result, element_qname);
719 0 goto exit;
720 }
721
722 0 globus_soap_message_deserialize_push_element(message_handle);
723
724 0 result = wst_RequestTypeOpenEnum_deserialize(
725 element_qname,
726 instance,
727 message_handle,
728 options);
729
730 0 if (result != GLOBUS_SUCCESS)
731 {
732 0 wst_RequestTypeOpenEnum_destroy(instance);
733 0 instance = NULL;
734 }
735
736 0 *ip = instance;
737
738 0 exit:
739
740 0 GlobusSoapMessageDebugExit();
741 0 return result;
742 }
743
744
745
746 globus_result_t
747 wst_RequestTypeOpenEnum_array_init_contents(
748 wst_RequestTypeOpenEnum_array * array)
749 0 {
750 GlobusFuncName(wst_RequestTypeOpenEnum_array_init_contents);
751 0 GlobusSoapMessageDebugEnter();
752
753 0 array->elements = NULL;
754 0 array->length = 0;
755 0 array->type_info = &wst_RequestTypeOpenEnum_info;
756
757 0 GlobusSoapMessageDebugExit();
758 0 return GLOBUS_SUCCESS;
759 }
760
761 globus_result_t
762 wst_RequestTypeOpenEnum_array_init(
763 wst_RequestTypeOpenEnum_array ** arr)
764 0 {
765 0 return globus_xsd_generic_array_init(
766 (globus_xsd_generic_array_t **) arr,
767 &wst_RequestTypeOpenEnum_info);
768 }
769 /* wst_RequestTypeOpenEnum_array_info() */
770
771 void
772 wst_RequestTypeOpenEnum_array_destroy_contents(
773 wst_RequestTypeOpenEnum_array * array)
774 0 {
775 0 globus_xsd_generic_array_destroy_contents(
776 (globus_xsd_generic_array_t *) array);
777 0 }
778
779 void
780 wst_RequestTypeOpenEnum_array_destroy(
781 wst_RequestTypeOpenEnum_array * array)
782 0 {
783
784 0 globus_xsd_generic_array_destroy(
785 (globus_xsd_generic_array_t *) array);
786 0 }
787
788 globus_result_t
789 wst_RequestTypeOpenEnum_array_copy(
790 wst_RequestTypeOpenEnum_array ** dest_arr,
791 const wst_RequestTypeOpenEnum_array * src_arr)
792 0 {
793 0 return globus_xsd_generic_array_copy(
794 (globus_xsd_generic_array_t **) dest_arr,
795 (const globus_xsd_generic_array_t *) src_arr);
796 }
797
798 globus_result_t
799 wst_RequestTypeOpenEnum_array_copy_contents(
800 wst_RequestTypeOpenEnum_array * dest_arr,
801 const wst_RequestTypeOpenEnum_array * src_arr)
802 0 {
803 0 return globus_xsd_generic_array_copy_contents(
804 (globus_xsd_generic_array_t *) dest_arr,
805 (const globus_xsd_generic_array_t *) src_arr);
806 }
807
808 wst_RequestTypeOpenEnum *
809 wst_RequestTypeOpenEnum_array_push(
810 wst_RequestTypeOpenEnum_array * array)
811 0 {
812 /* Some contents initializers don't initialize subelments but to set their
813 * values to be NULL
814 */
815 0 if (array->type_info == NULL)
816 {
817 0 array->type_info = &wst_RequestTypeOpenEnum_info;
818 }
819 0 return globus_xsd_generic_array_push(
820 (globus_xsd_generic_array_t *) array);
821 }
822
823 globus_result_t
824 wst_RequestTypeOpenEnum_array_serialize(
825 const xsd_QName * element_qname,
826 const wst_RequestTypeOpenEnum_array * array,
827 globus_soap_message_handle_t message,
828 globus_xsd_element_options_t options)
829 0 {
830 0 return globus_xsd_generic_array_serialize(
831 element_qname,
832 (const globus_xsd_generic_array_t *) array,
833 message,
834 options);
835 }
836
837 globus_result_t
838 wst_RequestTypeOpenEnum_array_deserialize(
839 const xsd_QName * element_qname,
840 wst_RequestTypeOpenEnum_array * array,
841 globus_soap_message_handle_t message,
842 globus_xsd_element_options_t options)
843 0 {
844 /* Some initializers set the array contents to NULL */
845 0 if (array->type_info == NULL)
846 {
847 0 array->type_info = &wst_RequestTypeOpenEnum_info;
848 }
849
850 0 return globus_xsd_generic_array_deserialize(
851 element_qname,
852 (globus_xsd_generic_array_t *) array,
853 message,
854 options);
855 }
856
857 globus_result_t
858 wst_RequestTypeOpenEnum_serialize_attribute(
859 const xsd_QName * attr_qname,
860 const wst_RequestTypeOpenEnum * val,
861 globus_soap_message_handle_t handle,
862 globus_xsd_element_options_t options)
863 0 {
864 0 globus_result_t result = GLOBUS_SUCCESS;
865 GlobusFuncName(wst_RequestTypeOpenEnum_serialize_attribute);
866 0 GlobusSoapMessageDebugEnter();
867
868 0 switch (val->type)
869 {
870 case wst_RequestTypeOpenEnum_undefined:
871 0 result = GlobusSoapMessageErrorSerializeFailed(
872 result,
873 "Undefined union value.",
874 attr_qname);
875 0 break;
876
877 case wst_RequestTypeOpenEnum_RequestTypeEnum:
878 0 result = wst_RequestTypeEnum_serialize_attribute(
879 attr_qname, &val->value.RequestTypeEnum, handle, options);
880 0 if(result != GLOBUS_SUCCESS)
881 {
882 0 result = GlobusSoapMessageErrorSerializeFailed(
883 result, NULL, attr_qname);
884 }
885 0 break;
886
887 case wst_RequestTypeOpenEnum_anyURI:
888 0 result = xsd_anyURI_serialize_attribute(
889 attr_qname, &val->value.anyURI, handle, options);
890 0 if(result != GLOBUS_SUCCESS)
891 {
892 0 result = GlobusSoapMessageErrorSerializeFailed(
893 result, NULL, attr_qname);
894 }
895 break;
896
897 }
898 0 exit:
899
900 0 GlobusSoapMessageDebugExit();
901 0 return result;
902 }
903
904 globus_result_t
905 wst_RequestTypeOpenEnum_deserialize_attribute(
906 const xsd_QName * attr_qname,
907 wst_RequestTypeOpenEnum * instance,
908 globus_soap_message_handle_t message,
909 globus_xsd_element_options_t options)
910 0 {
911 0 globus_result_t result = GLOBUS_SUCCESS;
912 GlobusFuncName(wst_RequestTypeOpenEnum_deserialize_attribute);
913 0 GlobusSoapMessageDebugEnter();
914
915 0 instance->type = wst_RequestTypeOpenEnum_undefined;
916
917 0 if (instance->type == wst_RequestTypeOpenEnum_undefined)
918 {
919 0 result = wst_RequestTypeEnum_deserialize_attribute(
920 attr_qname,
921 &instance->value.RequestTypeEnum,
922 message,
923 options);
924 0 if(result == GLOBUS_SUCCESS)
925 {
926 0 instance->type = wst_RequestTypeOpenEnum_RequestTypeEnum;
927 }
928 }
929
930 0 if (instance->type == wst_RequestTypeOpenEnum_undefined)
931 {
932 0 result = xsd_anyURI_deserialize_attribute(
933 attr_qname,
934 &instance->value.anyURI,
935 message,
936 options);
937 0 if(result == GLOBUS_SUCCESS)
938 {
939 0 instance->type = wst_RequestTypeOpenEnum_anyURI;
940 }
941 }
942
943 0 if(result != GLOBUS_SUCCESS)
944 {
945 0 result = GlobusSoapMessageErrorDeserializeFailed(
946 result, attr_qname);
947 0 goto exit;
948 }
949
950 0 exit:
951
952 0 GlobusSoapMessageDebugExit();
953 0 return result;
954 }
955
956 globus_result_t
957 wst_RequestTypeOpenEnum_deserialize_attribute_pointer(
958 const xsd_QName * attr_qname,
959 wst_RequestTypeOpenEnum ** instance,
960 globus_soap_message_handle_t message,
961 globus_xsd_element_options_t options)
962 0 {
963 0 globus_result_t result = GLOBUS_SUCCESS;
964 wst_RequestTypeOpenEnum * p;
965
966 GlobusFuncName(wst_RequestTypeOpenEnum_deserialize_attribute_pointer);
967 0 GlobusSoapMessageDebugEnter();
968
969 0 p = malloc(sizeof(wst_RequestTypeOpenEnum));
970 0 if (p == NULL)
971 {
972 0 result = GlobusSoapMessageErrorOutOfMemory;
973 0 GlobusSoapMessageDebugExit();
974 0 return result;
975 }
976 0 p->type = wst_RequestTypeOpenEnum_undefined;
977
978
979 0 if (p->type == wst_RequestTypeOpenEnum_undefined)
980 {
981 0 result = wst_RequestTypeEnum_deserialize_attribute(
982 attr_qname,
983 &p->value.RequestTypeEnum,
984 message,
985 options);
986 0 if(result == GLOBUS_SUCCESS)
987 {
988 0 p->type = wst_RequestTypeOpenEnum_RequestTypeEnum;
989 }
990 }
991
992 0 if (p->type == wst_RequestTypeOpenEnum_undefined)
993 {
994 0 result = xsd_anyURI_deserialize_attribute(
995 attr_qname,
996 &p->value.anyURI,
997 message,
998 options);
999 0 if(result == GLOBUS_SUCCESS)
1000 {
1001 0 p->type = wst_RequestTypeOpenEnum_anyURI;
1002 }
1003 }
1004
1005 0 if(GlobusSoapMessageStatusAttributeNotFoundCheck(result))
1006 {
1007 0 free(p);
1008 0 p = NULL;
1009 0 result = GLOBUS_SUCCESS;
1010 }
1011 0 if(result != GLOBUS_SUCCESS)
1012 {
1013 0 free(p);
1014 0 p = NULL;
1015 0 result = GlobusSoapMessageErrorDeserializeFailed(
1016 result, attr_qname);
1017 }
1018 0 *instance = p;
1019
1020 0 GlobusSoapMessageDebugExit();
1021 0 return result;