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 "wsen_ExpirationType.h"
26 #include "globus_xsd_generic_array.h"
27
28 xsd_QName wsen_ExpirationType_qname =
29 {
30 "http://schemas.xmlsoap.org/ws/2004/09/enumeration",
31 "ExpirationType"
32 };
33
34 static
35 globus_result_t
36 wsen_ExpirationType_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 wsen_ExpirationType_serialize(
43 element_qname,
44 (wsen_ExpirationType *) instance,
45 message_handle, options);
46 }
47
48 static
49 globus_result_t
50 wsen_ExpirationType_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 wsen_ExpirationType_deserialize_pointer(
57 element_qname,
58 (wsen_ExpirationType **) ip,
59 message_handle, options);
60 }
61
62 static
63 globus_result_t
64 wsen_ExpirationType_init_wrapper(void **object)
65 0 {
66 0 return wsen_ExpirationType_init(
67 (wsen_ExpirationType **) object);
68 }
69
70 static
71 void
72 wsen_ExpirationType_destroy_wrapper(
73 void * object)
74 0 {
75 0 wsen_ExpirationType_destroy(
76 (wsen_ExpirationType *) object);
77 0 }
78
79 static
80 globus_result_t
81 wsen_ExpirationType_copy_wrapper(
82 void ** dest_obj,
83 const void * src_obj)
84 0 {
85 0 return wsen_ExpirationType_copy(
86 (wsen_ExpirationType **) dest_obj,
87 (const wsen_ExpirationType *) src_obj);
88 }
89
90 static
91 globus_result_t
92 wsen_ExpirationType_init_contents_wrapper(void *object)
93 0 {
94 0 return wsen_ExpirationType_init_contents(
95 (wsen_ExpirationType *) object);
96 }
97
98 static
99 void
100 wsen_ExpirationType_destroy_contents_wrapper(
101 void * object)
102 0 {
103 0 wsen_ExpirationType_destroy_contents(
104 (wsen_ExpirationType *) object);
105 0 }
106
107 static
108 globus_result_t
109 wsen_ExpirationType_copy_contents_wrapper(
110 void * dest_obj,
111 const void * src_obj)
112 0 {
113 0 return wsen_ExpirationType_copy_contents(
114 (wsen_ExpirationType *) dest_obj,
115 (const wsen_ExpirationType *) src_obj);
116 }
117
118 static
119 globus_result_t
120 wsen_ExpirationType_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 wsen_ExpirationType_serialize_contents(
127 element_qname,
128 (wsen_ExpirationType *) instance,
129 message_handle, options);
130 }
131
132 static
133 globus_result_t
134 wsen_ExpirationType_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(wsen_ExpirationType_deserialize_contents_wrapper);
142 0 GlobusSoapMessageDebugEnter();
143
144 0 if(!*instance)
145 {
146 0 result = wsen_ExpirationType_init(
147 (wsen_ExpirationType **)instance);
148 0 if(result != GLOBUS_SUCCESS)
149 {
150 0 goto error;
151 }
152 }
153
154 0 result = wsen_ExpirationType_deserialize_contents(
155 element_qname,
156 *(wsen_ExpirationType **)instance,
157 message_handle, options);
158 0 error:
159 0 GlobusSoapMessageDebugExit();
160 0 return result;
161 }
162
163 static
164 globus_result_t
165 wsen_ExpirationType_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 wsen_ExpirationType_array_serialize(
172 element,
173 (wsen_ExpirationType_array *) instance,
174 message, options);
175 }
176
177 static
178 globus_result_t
179 wsen_ExpirationType_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 = wsen_ExpirationType_array_init(
190 (wsen_ExpirationType_array **)inst);
191 0 if(result != GLOBUS_SUCCESS)
192 {
193 0 return result;
194 }
195 }
196
197 0 return wsen_ExpirationType_array_deserialize(
198 element_qname,
199 *(wsen_ExpirationType_array **) inst,
200 message, options);
201 }
202
203 static
204 globus_result_t
205 wsen_ExpirationType_array_init_wrapper(
206 void ** arr)
207 0 {
208 0 return wsen_ExpirationType_array_init(
209 (wsen_ExpirationType_array **) arr);
210 }
211
212 static
213 void
214 wsen_ExpirationType_array_destroy_wrapper(
215 void * arr)
216 0 {
217 0 wsen_ExpirationType_array_destroy(
218 (wsen_ExpirationType_array *) arr);
219 0 }
220
221 static
222 globus_result_t
223 wsen_ExpirationType_array_copy_wrapper(
224 void ** dest_arr,
225 const void * src_arr)
226 0 {
227 0 return wsen_ExpirationType_array_copy(
228 (wsen_ExpirationType_array **) dest_arr,
229 (const wsen_ExpirationType_array *) src_arr);
230 }
231
232 static
233 globus_result_t
234 wsen_ExpirationType_array_init_contents_wrapper(
235 void * arr)
236 0 {
237 0 return wsen_ExpirationType_array_init_contents(
238 (wsen_ExpirationType_array *) arr);
239 }
240
241 static
242 void
243 wsen_ExpirationType_array_destroy_contents_wrapper(
244 void * arr)
245 0 {
246 0 wsen_ExpirationType_array_destroy_contents(
247 (wsen_ExpirationType_array *) arr);
248 0 }
249
250 static
251 globus_result_t
252 wsen_ExpirationType_array_copy_contents_wrapper(
253 void * dest_arr,
254 const void * src_arr)
255 0 {
256 0 return wsen_ExpirationType_array_copy_contents(
257 (wsen_ExpirationType_array *) dest_arr,
258 (const wsen_ExpirationType_array *) src_arr);
259 }
260
261 static
262 void *
263 wsen_ExpirationType_array_push_wrapper(
264 void * array)
265 0 {
266 0 return (void *) wsen_ExpirationType_array_push((wsen_ExpirationType_array *) array);
267 }
268
269
270 struct globus_xsd_type_info_s wsen_ExpirationType_array_info =
271 {
272 &wsen_ExpirationType_qname,
273 wsen_ExpirationType_array_serialize_wrapper,
274 wsen_ExpirationType_array_deserialize_wrapper,
275 wsen_ExpirationType_array_init_wrapper,
276 wsen_ExpirationType_array_destroy_wrapper,
277 wsen_ExpirationType_array_copy_wrapper,
278 wsen_ExpirationType_array_init_contents_wrapper,
279 wsen_ExpirationType_array_destroy_contents_wrapper,
280 wsen_ExpirationType_array_copy_contents_wrapper,
281 sizeof(wsen_ExpirationType),
282 wsen_ExpirationType_array_push_wrapper,
283 NULL,
284 NULL
285 };
286
287 struct globus_xsd_type_info_s wsen_ExpirationType_contents_info =
288 {
289 &wsen_ExpirationType_qname,
290 wsen_ExpirationType_serialize_contents_wrapper,
291 wsen_ExpirationType_deserialize_contents_wrapper,
292 wsen_ExpirationType_init_wrapper,
293 wsen_ExpirationType_destroy_wrapper,
294 wsen_ExpirationType_copy_wrapper,
295 wsen_ExpirationType_init_contents_wrapper,
296 wsen_ExpirationType_destroy_contents_wrapper,
297 wsen_ExpirationType_copy_contents_wrapper,
298 sizeof(wsen_ExpirationType),
299 NULL,
300 NULL,
301 NULL
302 };
303
304 struct globus_xsd_type_info_s wsen_ExpirationType_info =
305 {
306 &wsen_ExpirationType_qname,
307 wsen_ExpirationType_serialize_wrapper,
308 wsen_ExpirationType_deserialize_pointer_wrapper,
309 wsen_ExpirationType_init_wrapper,
310 wsen_ExpirationType_destroy_wrapper,
311 wsen_ExpirationType_copy_wrapper,
312 wsen_ExpirationType_init_contents_wrapper,
313 wsen_ExpirationType_destroy_contents_wrapper,
314 wsen_ExpirationType_copy_contents_wrapper,
315 sizeof(wsen_ExpirationType),
316 NULL,
317 &wsen_ExpirationType_contents_info,
318 &wsen_ExpirationType_array_info
319 };
320
321 globus_result_t
322 wsen_ExpirationType_init_contents(
323 wsen_ExpirationType * instance)
324 0 {
325 0 globus_result_t result = GLOBUS_SUCCESS;
326 GlobusFuncName(wsen_ExpirationType_init_contents);
327 0 GlobusSoapMessageDebugEnter();
328
329 0 instance->type = wsen_ExpirationType_undefined;
330 0 GlobusSoapMessageDebugExit();
331 0 return result;
332 }
333
334 globus_result_t
335 wsen_ExpirationType_init(
336 wsen_ExpirationType ** object)
337 0 {
338 wsen_ExpirationType * instance;
339 0 globus_result_t result = GLOBUS_SUCCESS;
340 GlobusFuncName(wsen_ExpirationType_init);
341 0 GlobusSoapMessageDebugEnter();
342
343 0 instance = calloc(1, sizeof(wsen_ExpirationType));
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 wsen_ExpirationType_destroy(
359 wsen_ExpirationType * instance)
360 0 {
361 GlobusFuncName(wsen_ExpirationType_destroy);
362 0 GlobusSoapMessageDebugEnter();
363
364 0 if(!instance)
365 {
366 0 goto exit;
367 }
368
369 0 wsen_ExpirationType_destroy_contents(instance);
370 0 globus_free(instance);
371
372 0 exit:
373
374 0 GlobusSoapMessageDebugExit();
375 0 }
376
377 void
378 wsen_ExpirationType_destroy_contents(
379 wsen_ExpirationType * instance)
380 0 {
381 GlobusFuncName(wsen_ExpirationType_destroy_contents);
382 0 GlobusSoapMessageDebugEnter();
383
384 0 if(instance)
385 {
386
387 0 switch (instance->type)
388 {
389 case wsen_ExpirationType_undefined:
390 0 break;
391
392 case wsen_ExpirationType_dateTime:
393 0 xsd_dateTime_destroy_contents(&instance->value.dateTime);
394 0 break;
395
396 case wsen_ExpirationType_NonNegativeDurationType:
397 0 wsen_NonNegativeDurationType_destroy_contents(&instance->value.NonNegativeDurationType);
398 break;
399
400 }
401 }
402
403 0 GlobusSoapMessageDebugExit();
404 0 }
405
406 globus_result_t
407 wsen_ExpirationType_copy(
408 wsen_ExpirationType ** dest_obj,
409 const wsen_ExpirationType * src_obj)
410 0 {
411 0 globus_result_t result = GLOBUS_SUCCESS;
412 wsen_ExpirationType * instance;
413 GlobusFuncName(wsen_ExpirationType_copy);
414
415 0 GlobusSoapMessageDebugEnter();
416
417 0 instance = malloc(sizeof(wsen_ExpirationType));
418 0 if (instance == NULL)
419 {
420 0 GlobusSoapMessageDebugExit();
421 0 return GlobusSoapMessageErrorOutOfMemory;
422 }
423
424 0 result = wsen_ExpirationType_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 wsen_ExpirationType_copy_contents(
439 wsen_ExpirationType * instance,
440 const wsen_ExpirationType * src_obj)
441 0 {
442 0 globus_result_t result = GLOBUS_SUCCESS;
443 GlobusFuncName(wsen_ExpirationType_copy_contents);
444
445 0 GlobusSoapMessageDebugEnter();
446
447 0 instance->type = src_obj->type;
448
449 0 switch (src_obj->type)
450 {
451 case wsen_ExpirationType_undefined:
452 0 break;
453
454 case wsen_ExpirationType_dateTime:
455 0 result = xsd_dateTime_copy_contents(
456 &instance->value.dateTime,
457 &src_obj->value.dateTime);
458 0 break;
459
460 case wsen_ExpirationType_NonNegativeDurationType:
461 0 result = wsen_NonNegativeDurationType_copy_contents(
462 &instance->value.NonNegativeDurationType,
463 &src_obj->value.NonNegativeDurationType);
464 break;
465 }
466
467 0 GlobusSoapMessageDebugExit();
468 0 return result;
469 }
470
471
472
473 globus_result_t
474 wsen_ExpirationType_serialize_contents(
475 const xsd_QName * element_qname, /* ignored */
476 const wsen_ExpirationType * 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(wsen_ExpirationType_serialize_contents);
482 0 GlobusSoapMessageDebugEnter();
483
484 0 result = wsen_ExpirationType_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 wsen_ExpirationType_serialize(
506 const xsd_QName * element_qname,
507 const wsen_ExpirationType * 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(wsen_ExpirationType_serialize);
514 0 GlobusSoapMessageDebugEnter();
515
516 0 switch (instance->type)
517 {
518 case wsen_ExpirationType_undefined:
519 0 result = GlobusSoapMessageErrorSerializeFailed(
520 result,
521 "Undefined union value.",
522 element_qname);
523 0 break;
524
525 case wsen_ExpirationType_dateTime:
526 0 result = xsd_dateTime_serialize(
527 element_qname,
528 &instance->value.dateTime,
529 message_handle,
530 options);
531 0 break;
532
533 case wsen_ExpirationType_NonNegativeDurationType:
534 0 result = wsen_NonNegativeDurationType_serialize(
535 element_qname,
536 &instance->value.NonNegativeDurationType,
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 wsen_ExpirationType_deserialize_contents(
550 const xsd_QName * element_qname, /* ignored */
551 wsen_ExpirationType * 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(wsen_ExpirationType_deserialize_contents);
557 0 GlobusSoapMessageDebugEnter();
558
559 0 result = wsen_ExpirationType_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 wsen_ExpirationType_deserialize(
581 const xsd_QName * element_qname,
582 wsen_ExpirationType * 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(wsen_ExpirationType_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 = wsen_ExpirationType_undefined;
613
614 0 if (instance->type == wsen_ExpirationType_undefined)
615 {
616 0 result = xsd_dateTime_deserialize_contents(
617 NULL,
618 &instance->value.dateTime,
619 message_handle,
620 options);
621 0 if(result == GLOBUS_SUCCESS)
622 {
623 0 instance->type = wsen_ExpirationType_dateTime;
624 }
625 else
626 {
627 0 globus_soap_message_deserialize_push_element(message_handle);
628 }
629 }
630
631 0 if (instance->type == wsen_ExpirationType_undefined)
632 {
633 0 result = wsen_NonNegativeDurationType_deserialize_contents(
634 NULL,
635 &instance->value.NonNegativeDurationType,
636 message_handle,
637 options);
638 0 if(result == GLOBUS_SUCCESS)
639 {
640 0 instance->type = wsen_ExpirationType_NonNegativeDurationType;
641 }
642 else
643 {
644 0 globus_soap_message_deserialize_push_element(message_handle);
645 }
646 }
647
648 0 if (instance->type == wsen_ExpirationType_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 wsen_ExpirationType_deserialize_pointer(
676 const xsd_QName * element_qname,
677 wsen_ExpirationType ** ip,
678 globus_soap_message_handle_t message_handle,
679 globus_xsd_element_options_t options)
680 0 {
681 0 wsen_ExpirationType * instance = NULL;
682 0 globus_result_t result = GLOBUS_SUCCESS;
683 xsd_QName subelement;
684 GlobusFuncName(wsen_ExpirationType_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 = wsen_ExpirationType_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 = wsen_ExpirationType_deserialize(
725 element_qname,
726 instance,
727 message_handle,
728 options);
729
730 0 if (result != GLOBUS_SUCCESS)
731 {
732 0 wsen_ExpirationType_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 wsen_ExpirationType_array_init_contents(
748 wsen_ExpirationType_array * array)
749 0 {
750 GlobusFuncName(wsen_ExpirationType_array_init_contents);
751 0 GlobusSoapMessageDebugEnter();
752
753 0 array->elements = NULL;
754 0 array->length = 0;
755 0 array->type_info = &wsen_ExpirationType_info;
756
757 0 GlobusSoapMessageDebugExit();
758 0 return GLOBUS_SUCCESS;
759 }
760
761 globus_result_t
762 wsen_ExpirationType_array_init(
763 wsen_ExpirationType_array ** arr)
764 0 {
765 0 return globus_xsd_generic_array_init(
766 (globus_xsd_generic_array_t **) arr,
767 &wsen_ExpirationType_info);
768 }
769 /* wsen_ExpirationType_array_info() */
770
771 void
772 wsen_ExpirationType_array_destroy_contents(
773 wsen_ExpirationType_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 wsen_ExpirationType_array_destroy(
781 wsen_ExpirationType_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 wsen_ExpirationType_array_copy(
790 wsen_ExpirationType_array ** dest_arr,
791 const wsen_ExpirationType_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 wsen_ExpirationType_array_copy_contents(
800 wsen_ExpirationType_array * dest_arr,
801 const wsen_ExpirationType_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 wsen_ExpirationType *
809 wsen_ExpirationType_array_push(
810 wsen_ExpirationType_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 = &wsen_ExpirationType_info;
818 }
819 0 return globus_xsd_generic_array_push(
820 (globus_xsd_generic_array_t *) array);
821 }
822
823 globus_result_t
824 wsen_ExpirationType_array_serialize(
825 const xsd_QName * element_qname,
826 const wsen_ExpirationType_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 wsen_ExpirationType_array_deserialize(
839 const xsd_QName * element_qname,
840 wsen_ExpirationType_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 = &wsen_ExpirationType_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 wsen_ExpirationType_serialize_attribute(
859 const xsd_QName * attr_qname,
860 const wsen_ExpirationType * 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(wsen_ExpirationType_serialize_attribute);
866 0 GlobusSoapMessageDebugEnter();
867
868 0 switch (val->type)
869 {
870 case wsen_ExpirationType_undefined:
871 0 result = GlobusSoapMessageErrorSerializeFailed(
872 result,
873 "Undefined union value.",
874 attr_qname);
875 0 break;
876
877 case wsen_ExpirationType_dateTime:
878 0 result = xsd_dateTime_serialize_attribute(
879 attr_qname, &val->value.dateTime, 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 wsen_ExpirationType_NonNegativeDurationType:
888 0 result = wsen_NonNegativeDurationType_serialize_attribute(
889 attr_qname, &val->value.NonNegativeDurationType, 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 wsen_ExpirationType_deserialize_attribute(
906 const xsd_QName * attr_qname,
907 wsen_ExpirationType * 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(wsen_ExpirationType_deserialize_attribute);
913 0 GlobusSoapMessageDebugEnter();
914
915 0 instance->type = wsen_ExpirationType_undefined;
916
917 0 if (instance->type == wsen_ExpirationType_undefined)
918 {
919 0 result = xsd_dateTime_deserialize_attribute(
920 attr_qname,
921 &instance->value.dateTime,
922 message,
923 options);
924 0 if(result == GLOBUS_SUCCESS)
925 {
926 0 instance->type = wsen_ExpirationType_dateTime;
927 }
928 }
929
930 0 if (instance->type == wsen_ExpirationType_undefined)
931 {
932 0 result = wsen_NonNegativeDurationType_deserialize_attribute(
933 attr_qname,
934 &instance->value.NonNegativeDurationType,
935 message,
936 options);
937 0 if(result == GLOBUS_SUCCESS)
938 {
939 0 instance->type = wsen_ExpirationType_NonNegativeDurationType;
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 wsen_ExpirationType_deserialize_attribute_pointer(
958 const xsd_QName * attr_qname,
959 wsen_ExpirationType ** 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 wsen_ExpirationType * p;
965
966 GlobusFuncName(wsen_ExpirationType_deserialize_attribute_pointer);
967 0 GlobusSoapMessageDebugEnter();
968
969 0 p = malloc(sizeof(wsen_ExpirationType));
970 0 if (p == NULL)
971 {
972 0 result = GlobusSoapMessageErrorOutOfMemory;
973 0 GlobusSoapMessageDebugExit();
974 0 return result;
975 }
976 0 p->type = wsen_ExpirationType_undefined;
977
978
979 0 if (p->type == wsen_ExpirationType_undefined)
980 {
981 0 result = xsd_dateTime_deserialize_attribute(
982 attr_qname,
983 &p->value.dateTime,
984 message,
985 options);
986 0 if(result == GLOBUS_SUCCESS)
987 {
988 0 p->type = wsen_ExpirationType_dateTime;
989 }
990 }
991
992 0 if (p->type == wsen_ExpirationType_undefined)
993 {
994 0 result = wsen_NonNegativeDurationType_deserialize_attribute(
995 attr_qname,
996 &p->value.NonNegativeDurationType,
997 message,
998 options);
999 0 if(result == GLOBUS_SUCCESS)
1000 {
1001 0 p->type = wsen_ExpirationType_NonNegativeDurationType;
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;