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 "widget_WidgetType.h"
26 #include "globus_xsd_generic_array.h"
27
28 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
29 xsd_QName widget_WidgetType_qname =
30 {
31 WIDGET_WIDGETTYPE_NS,
32 WIDGET_WIDGETTYPE_LOCAL
33 };
34 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
35
36 static
37 globus_result_t
38 widget_WidgetType_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 widget_WidgetType_serialize(
45 element_qname,
46 (const widget_WidgetType *) instance,
47 message_handle, options);
48 }
49
50 static
51 globus_result_t
52 widget_WidgetType_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 widget_WidgetType_deserialize_pointer(
59 element_qname,
60 (widget_WidgetType **) ip,
61 message_handle, options);
62 }
63
64 static
65 globus_result_t
66 widget_WidgetType_init_wrapper(void **object)
67 0 {
68 0 return widget_WidgetType_init(
69 (widget_WidgetType **) object);
70 }
71
72 static
73 void
74 widget_WidgetType_destroy_wrapper(
75 void * object)
76 0 {
77 0 widget_WidgetType_destroy(
78 (widget_WidgetType *) object);
79 0 }
80
81 static
82 globus_result_t
83 widget_WidgetType_copy_wrapper(
84 void ** dest_obj,
85 const void * src_obj)
86 0 {
87 0 return widget_WidgetType_copy(
88 (widget_WidgetType **) dest_obj,
89 (widget_WidgetType *) src_obj);
90 }
91
92 static
93 globus_result_t
94 widget_WidgetType_init_contents_wrapper(void *object)
95 0 {
96 0 return widget_WidgetType_init_contents(
97 (widget_WidgetType *) object);
98 }
99
100 static
101 void
102 widget_WidgetType_destroy_contents_wrapper(
103 void * object)
104 0 {
105 0 widget_WidgetType_destroy_contents(
106 (widget_WidgetType *) object);
107 0 }
108
109 static
110 globus_result_t
111 widget_WidgetType_copy_contents_wrapper(
112 void * dest_obj,
113 const void * src_obj)
114 0 {
115 0 return widget_WidgetType_copy_contents(
116 (widget_WidgetType *) dest_obj,
117 (const widget_WidgetType *) src_obj);
118 }
119
120 static
121 globus_result_t
122 widget_WidgetType_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 widget_WidgetType_serialize_contents(
129 element_qname,
130 (widget_WidgetType *) instance,
131 message_handle, options);
132 }
133
134 static
135 globus_result_t
136 widget_WidgetType_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(widget_WidgetType_deserialize_contents_wrapper);
144 0 GlobusSoapMessageDebugEnter();
145
146 0 if(!*instance)
147 {
148 0 result = widget_WidgetType_init(
149 (widget_WidgetType **)instance);
150 0 if(result != GLOBUS_SUCCESS)
151 {
152 0 goto error;
153 }
154 }
155
156 0 result = widget_WidgetType_deserialize_contents(
157 element_qname,
158 *(widget_WidgetType **)instance,
159 message_handle, options);
160 0 error:
161 0 GlobusSoapMessageDebugExit();
162 0 return result;
163 }
164
165 static
166 globus_result_t
167 widget_WidgetType_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 widget_WidgetType_array_serialize(
174 element,
175 (widget_WidgetType_array *) instance,
176 message, options);
177 }
178
179 static
180 globus_result_t
181 widget_WidgetType_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 = widget_WidgetType_array_init(
192 (widget_WidgetType_array **)inst);
193 0 if(result != GLOBUS_SUCCESS)
194 {
195 0 return result;
196 }
197 }
198
199 0 return widget_WidgetType_array_deserialize(
200 element_qname,
201 *(widget_WidgetType_array **) inst,
202 message, options);
203 }
204
205 static
206 globus_result_t
207 widget_WidgetType_array_init_wrapper(
208 void ** arr)
209 0 {
210 0 return widget_WidgetType_array_init(
211 (widget_WidgetType_array **) arr);
212 }
213
214 static
215 void
216 widget_WidgetType_array_destroy_wrapper(
217 void * arr)
218 0 {
219 0 widget_WidgetType_array_destroy(
220 (widget_WidgetType_array *) arr);
221 0 }
222
223 static
224 globus_result_t
225 widget_WidgetType_array_copy_wrapper(
226 void ** dest_arr,
227 const void * src_arr)
228 0 {
229 0 return widget_WidgetType_array_copy(
230 (widget_WidgetType_array **) dest_arr,
231 (const widget_WidgetType_array *) src_arr);
232 }
233
234 static
235 globus_result_t
236 widget_WidgetType_array_init_contents_wrapper(
237 void * arr)
238 0 {
239 0 return widget_WidgetType_array_init_contents(
240 (widget_WidgetType_array *) arr);
241 }
242
243 static
244 void
245 widget_WidgetType_array_destroy_contents_wrapper(
246 void * arr)
247 0 {
248 0 widget_WidgetType_array_destroy_contents(
249 (widget_WidgetType_array *) arr);
250 0 }
251
252 static
253 globus_result_t
254 widget_WidgetType_array_copy_contents_wrapper(
255 void * dest_arr,
256 const void * src_arr)
257 0 {
258 0 return widget_WidgetType_array_copy_contents(
259 (widget_WidgetType_array *) dest_arr,
260 (const widget_WidgetType_array *) src_arr);
261 }
262
263 static
264 void *
265 widget_WidgetType_array_push_wrapper(
266 void * array)
267 0 {
268 0 return (void *) widget_WidgetType_array_push((widget_WidgetType_array *) array);
269 }
270
271 struct globus_xsd_type_info_s widget_WidgetType_contents_info =
272 {
273 &widget_WidgetType_qname,
274 widget_WidgetType_serialize_contents_wrapper,
275 widget_WidgetType_deserialize_contents_wrapper,
276 widget_WidgetType_init_wrapper,
277 widget_WidgetType_destroy_wrapper,
278 widget_WidgetType_copy_wrapper,
279 widget_WidgetType_init_contents_wrapper,
280 widget_WidgetType_destroy_contents_wrapper,
281 widget_WidgetType_copy_contents_wrapper,
282 sizeof(widget_WidgetType),
283 NULL,
284 NULL,
285 NULL
286 };
287
288 struct globus_xsd_type_info_s widget_WidgetType_array_info =
289 {
290 &widget_WidgetType_qname,
291 widget_WidgetType_array_serialize_wrapper,
292 widget_WidgetType_array_deserialize_wrapper,
293 widget_WidgetType_array_init_wrapper,
294 widget_WidgetType_array_destroy_wrapper,
295 widget_WidgetType_array_copy_wrapper,
296 widget_WidgetType_array_init_contents_wrapper,
297 widget_WidgetType_array_destroy_contents_wrapper,
298 widget_WidgetType_array_copy_contents_wrapper,
299 sizeof(widget_WidgetType),
300 widget_WidgetType_array_push_wrapper,
301 NULL,
302 NULL
303 };
304
305 struct globus_xsd_type_info_s widget_WidgetType_info =
306 {
307 &widget_WidgetType_qname,
308 widget_WidgetType_serialize_wrapper,
309 widget_WidgetType_deserialize_pointer_wrapper,
310 widget_WidgetType_init_wrapper,
311 widget_WidgetType_destroy_wrapper,
312 widget_WidgetType_copy_wrapper,
313 widget_WidgetType_init_contents_wrapper,
314 widget_WidgetType_destroy_contents_wrapper,
315 widget_WidgetType_copy_contents_wrapper,
316 sizeof(widget_WidgetType),
317 NULL,
318 &widget_WidgetType_contents_info,
319 &widget_WidgetType_array_info
320 };
321
322 globus_result_t
323 widget_WidgetType_init_contents(
324 widget_WidgetType * instance)
325 0 {
326 0 globus_result_t result = GLOBUS_SUCCESS;
327 GlobusFuncName(widget_WidgetType_init_contents);
328 0 GlobusSoapMessageDebugEnter();
329
330 0 memset(instance, 0, sizeof(widget_WidgetType));
331
332 0 GlobusSoapMessageDebugExit();
333 0 return result;
334 }
335
336 globus_result_t
337 widget_WidgetType_init(
338 widget_WidgetType ** object)
339 0 {
340 widget_WidgetType * instance;
341 0 globus_result_t result = GLOBUS_SUCCESS;
342 GlobusFuncName(widget_WidgetType_init);
343 0 GlobusSoapMessageDebugEnter();
344
345 0 instance = globus_malloc(sizeof(widget_WidgetType));
346 0 if(!instance)
347 {
348 0 result = GlobusSoapMessageErrorOutOfMemory;
349 0 goto exit;
350 }
351
352 0 memset(instance, 0, sizeof(widget_WidgetType));
353
354 0 *object = instance;
355
356 0 exit:
357 0 GlobusSoapMessageDebugExit();
358 0 return result;
359 }
360
361 void
362 widget_WidgetType_destroy(
363 widget_WidgetType * instance)
364 0 {
365 GlobusFuncName(widget_WidgetType_destroy);
366 0 GlobusSoapMessageDebugEnter();
367
368 0 if(!instance)
369 {
370 0 goto exit;
371 }
372
373 0 widget_WidgetType_destroy_contents(instance);
374 0 globus_free(instance);
375
376 0 exit:
377
378 0 GlobusSoapMessageDebugExit();
379 0 }
380
381
382 void
383 widget_WidgetType_destroy_contents(
384 widget_WidgetType * instance)
385 0 {
386 GlobusFuncName(widget_WidgetType_destroy_contents);
387 0 GlobusSoapMessageDebugEnter();
388
389 0 if(instance)
390 {
391
392
393 0 xsd_string_array_destroy_contents(&instance->Foo);
394
395 0 xsd_anyURI_array_destroy_contents(&instance->QueryExpressionDialect);
396
397 0 wsrl_TerminationTimeType_destroy(instance->TerminationTime);
398 0 instance->TerminationTime = NULL;
399
400 0 wsrl_CurrentTimeType_destroy_contents(
401 &instance->CurrentTime);
402
403 }
404
405 0 GlobusSoapMessageDebugExit();
406 0 }
407
408
409 globus_result_t
410 widget_WidgetType_copy(
411 widget_WidgetType ** dest_obj,
412 const widget_WidgetType * src_obj)
413 0 {
414 0 globus_result_t result = GLOBUS_SUCCESS;
415 widget_WidgetType * instance;
416 GlobusFuncName(widget_WidgetType_copy);
417
418 0 GlobusSoapMessageDebugEnter();
419
420 0 instance = calloc(1, sizeof(widget_WidgetType));
421 0 if (instance == NULL)
422 {
423 0 GlobusSoapMessageDebugExit();
424 0 return GlobusSoapMessageErrorOutOfMemory;
425 }
426
427 0 result = widget_WidgetType_copy_contents(instance, src_obj);
428 0 if(result != GLOBUS_SUCCESS)
429 {
430 0 globus_free(instance);
431 0 GlobusSoapMessageDebugExit();
432 0 return GlobusSoapMessageErrorOutOfMemory;
433 }
434
435 0 *dest_obj = instance;
436 0 GlobusSoapMessageDebugExit();
437 0 return result;
438 }
439
440 globus_result_t
441 widget_WidgetType_copy_contents(
442 widget_WidgetType * instance,
443 const widget_WidgetType * src_obj)
444 0 {
445 0 globus_result_t result = GLOBUS_SUCCESS;
446 GlobusFuncName(widget_WidgetType_copy_contents);
447
448 0 GlobusSoapMessageDebugEnter();
449
450 0 result = xsd_string_array_copy_contents(
451 &instance->Foo,
452 &src_obj->Foo);
453 0 if(result != GLOBUS_SUCCESS)
454 {
455 0 result = GlobusSoapMessageErrorCopyFailed(
456 result, NULL, &xsd_string_qname);
457 0 goto Foo_destroy_array;
458 }
459
460 0 result = xsd_anyURI_array_copy_contents(
461 &instance->QueryExpressionDialect,
462 &src_obj->QueryExpressionDialect);
463 0 if(result != GLOBUS_SUCCESS)
464 {
465 0 result = GlobusSoapMessageErrorCopyFailed(
466 result, NULL, &xsd_anyURI_qname);
467 0 goto QueryExpressionDialect_destroy_array;
468 }
469
470 0 if(src_obj->TerminationTime)
471 {
472 0 result = wsrl_TerminationTimeType_copy(
473 &instance->TerminationTime,
474 src_obj->TerminationTime);
475 0 if(result != GLOBUS_SUCCESS)
476 {
477 0 result = GlobusSoapMessageErrorCopyFailed(
478 result, NULL, &wsrl_TerminationTimeType_qname);
479 0 goto TerminationTime_destroy_pointer;
480 }
481 }
482 else
483 {
484 0 instance->TerminationTime = NULL;
485 }
486
487 0 result = wsrl_CurrentTimeType_copy_contents(
488 &instance->CurrentTime,
489 &src_obj->CurrentTime);
490 0 if(result != GLOBUS_SUCCESS)
491 {
492 0 result = GlobusSoapMessageErrorCopyFailed(
493 result, NULL, &wsrl_CurrentTimeType_qname);
494 0 goto CurrentTime_destroy;
495 }
496
497 0 goto exit;
498
499 fail_deserialize:
500 wsrl_CurrentTimeType_destroy_contents(
501 &instance->CurrentTime);
502
503 0 CurrentTime_destroy:
504 0 wsrl_TerminationTimeType_destroy(
505 instance->TerminationTime);
506 0 instance->TerminationTime = NULL;
507
508 0 TerminationTime_destroy_pointer:
509 0 xsd_anyURI_array_destroy_contents(
510 &instance->QueryExpressionDialect);
511
512 0 QueryExpressionDialect_destroy_array:
513 0 xsd_string_array_destroy_contents(
514 &instance->Foo);
515
516 0 Foo_destroy_array:
517
518
519 0 exit:
520
521 0 GlobusSoapMessageDebugExit();
522 0 return result;
523 }
524
525
526
527 globus_result_t
528 widget_WidgetType_serialize_contents(
529 const xsd_QName * element_qname, /* ignored */
530 const widget_WidgetType * 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(widget_WidgetType_serialize_contents);
536 0 GlobusSoapMessageDebugEnter();
537
538 0 result = widget_WidgetType_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 0 goto exit;
548 }
549
550 0 exit:
551
552 0 GlobusSoapMessageDebugExit();
553 0 return result;
554 }
555
556
557
558 globus_result_t
559 widget_WidgetType_serialize(
560 const xsd_QName * element_qname,
561 const widget_WidgetType * 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
571 0 char * prefix = NULL;
572 int prefix_created;
573 0 int define_prefix = 0;
574 0 int save_options = options;
575
576 GlobusFuncName(widget_WidgetType_serialize);
577 0 GlobusSoapMessageDebugEnter();
578
579
580 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
581 {
582 /* serialize widget_WidgetType element */
583 0 result = globus_soap_message_element_ns_set(
584 message_handle,
585 element_qname,
586 element_qname->Namespace,
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 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
596 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
597 {
598 0 result = globus_soap_message_attribute_ns_set(
599 message_handle,
600 element_qname,
601 "http://www.w3.org/2001/XMLSchema-instance",
602 &options);
603 0 if(result != GLOBUS_SUCCESS)
604 {
605 0 result = GlobusSoapMessageErrorSerializeFailed(
606 result, NULL, element_qname);
607 0 goto exit;
608 }
609 }
610
611 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
612 !globus_soap_message_serialize_is_c14n_subset(message_handle))
613 {
614
615 0 result = globus_soap_message_attribute_ns_set(
616 message_handle,
617 element_qname,
618 widget_WidgetType_qname.Namespace,
619 &options);
620 0 if(result != GLOBUS_SUCCESS)
621 {
622 0 result = GlobusSoapMessageErrorSerializeFailed(
623 result, NULL, element_qname);
624 0 goto exit;
625 }
626 }
627
628 0 result = globus_soap_message_serialize_element(
629 message_handle,
630 element_qname,
631 options,
632 &widget_WidgetType_qname);
633 0 if(result != GLOBUS_SUCCESS)
634 {
635 0 result = GlobusSoapMessageErrorSerializeFailed(
636 result, NULL, element_qname);
637 0 goto exit;
638 }
639
640 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
641 !globus_soap_message_serialize_is_c14n_subset(message_handle))
642 {
643 0 xsd_QName_init(&type_attr);
644
645 0 type_attr->local = globus_libc_strdup("type");
646 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
647 }
648
649
650 /* serialize namespaces */
651 0 result = globus_soap_message_element_ns_add(
652 message_handle,
653 element_qname,
654 element_qname->Namespace,
655 &options);
656 0 if(result != GLOBUS_SUCCESS)
657 {
658 0 result = GlobusSoapMessageErrorSerializeFailed(
659 result, NULL, element_qname);
660 0 goto exit;
661 }
662
663 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
664 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
665 {
666 0 result = globus_soap_message_attribute_ns_add(
667 message_handle,
668 element_qname,
669 "http://www.w3.org/2001/XMLSchema-instance",
670 &options);
671 0 if(result != GLOBUS_SUCCESS)
672 {
673 0 result = GlobusSoapMessageErrorSerializeFailed(
674 result, NULL, element_qname);
675 0 goto exit;
676 }
677 }
678 0 if ((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
679 !globus_soap_message_serialize_is_c14n_subset(message_handle))
680 {
681
682 0 result = globus_soap_message_attribute_ns_add(
683 message_handle,
684 element_qname,
685 widget_WidgetType_qname.Namespace,
686 &options);
687 0 if(result != GLOBUS_SUCCESS)
688 {
689 0 result = GlobusSoapMessageErrorSerializeFailed(
690 result, NULL, element_qname);
691 0 goto exit;
692 }
693 }
694
695 /* serialize attributes */
696
697 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
698 !globus_soap_message_serialize_is_c14n_subset(message_handle))
699 {
700 0 result = globus_soap_message_serialize_QName_attribute(
701 message_handle,
702 type_attr,
703 &widget_WidgetType_qname);
704 0 if(result != GLOBUS_SUCCESS)
705 {
706 0 result = GlobusSoapMessageErrorSerializeFailed(
707 result, NULL, element_qname);
708 0 goto exit;
709 }
710 }
711
712
713 }
714
715 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
716 {
717 0 result = globus_soap_message_serialize_element_begin_close(
718 message_handle, element_qname);
719 0 if(result != GLOBUS_SUCCESS)
720 {
721 0 result = GlobusSoapMessageErrorSerializeFailed(
722 result, NULL, element_qname);
723 0 goto exit;
724 }
725 }
726 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
727
728
729 /* serialize contents of type */
730
731 0 subelement.local = "Foo";
732 0 subelement.Namespace = "http://widgets.com";
733
734 0 result = xsd_string_array_serialize(
735 &subelement,
736 &instance->Foo,
737 message_handle,
738 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
739 0 if(result != GLOBUS_SUCCESS)
740 {
741 0 result = GlobusSoapMessageErrorSerializeFailed(
742 result, NULL, &xsd_string_qname);
743 0 goto exit;
744 }
745
746 0 subelement.local = "QueryExpressionDialect";
747 0 subelement.Namespace = "http://docs.oasis-open.org/wsrf/rp-2";
748
749 0 result = xsd_anyURI_array_serialize(
750 &subelement,
751 &instance->QueryExpressionDialect,
752 message_handle,
753 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
754 0 if(result != GLOBUS_SUCCESS)
755 {
756 0 result = GlobusSoapMessageErrorSerializeFailed(
757 result, NULL, &xsd_anyURI_qname);
758 0 goto exit;
759 }
760
761 0 subelement.local = "TerminationTime";
762 0 subelement.Namespace = "http://docs.oasis-open.org/wsrf/rl-2";
763
764 0 if(instance->TerminationTime)
765 {
766 0 result = wsrl_TerminationTimeType_serialize(
767 &subelement,
768 instance->TerminationTime,
769 message_handle,
770 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
771 0 if(result != GLOBUS_SUCCESS)
772 {
773 0 result = GlobusSoapMessageErrorSerializeFailed(
774 result, NULL, &wsrl_TerminationTimeType_qname);
775 0 goto exit;
776 }
777 }
778
779 0 subelement.local = "CurrentTime";
780 0 subelement.Namespace = "http://docs.oasis-open.org/wsrf/rl-2";
781
782 0 result = wsrl_CurrentTimeType_serialize(
783 &subelement,
784 &instance->CurrentTime,
785 message_handle,
786 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
787 0 if(result != GLOBUS_SUCCESS)
788 {
789 0 result = GlobusSoapMessageErrorSerializeFailed(
790 result, NULL, &wsrl_CurrentTimeType_qname);
791 0 goto exit;
792 }
793
794 0 options = save_options;
795
796 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
797 {
798 /* add end element */
799 0 result = globus_soap_message_serialize_element_end(
800 message_handle,
801 element_qname,
802 options,
803 &widget_WidgetType_qname);
804 0 if(result != GLOBUS_SUCCESS)
805 {
806 0 result = GlobusSoapMessageErrorSerializeFailed(
807 result, NULL, element_qname);
808 0 goto exit;
809 }
810
811 0 globus_soap_message_element_ns_remove(
812 message_handle,
813 element_qname->Namespace,
814 &options);
815
816 /* remove namespace/prefix mappings for these types */
817
818 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
819 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
820 {
821 0 globus_soap_message_attribute_ns_remove(
822 message_handle,
823 "http://www.w3.org/2001/XMLSchema-instance",
824 &options);
825 }
826 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
827 !globus_soap_message_serialize_is_c14n_subset(message_handle))
828 {
829 0 globus_soap_message_attribute_ns_remove(
830 message_handle,
831 widget_WidgetType_qname.Namespace,
832 &options);
833 }
834
835 }
836
837 0 exit:
838 0 if (type_attr)
839 {
840 0 xsd_QName_destroy(type_attr);
841 }
842
843
844 0 if(any_attr_keys)
845 {
846 0 globus_list_free(any_attr_keys);
847 }
848
849 0 GlobusSoapMessageDebugExit();
850 0 return result;
851 }
852
853
854
855 globus_result_t
856 widget_WidgetType_deserialize_contents(
857 const xsd_QName * element_qname, /* ignored */
858 widget_WidgetType * inst,
859 globus_soap_message_handle_t message_handle,
860 globus_xsd_element_options_t options)
861 0 {
862 0 globus_result_t result = GLOBUS_SUCCESS;
863 GlobusFuncName(widget_WidgetType_deserialize_contents);
864 0 GlobusSoapMessageDebugEnter();
865
866 0 result = widget_WidgetType_deserialize(
867 NULL,
868 inst,
869 message_handle,
870 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
871 0 if(result != GLOBUS_SUCCESS)
872 {
873 0 result = GlobusSoapMessageErrorDeserializeFailed(
874 result, element_qname);
875 0 goto exit;
876 }
877
878 0 exit:
879
880 0 GlobusSoapMessageDebugExit();
881 0 return result;
882 }
883
884
885
886 globus_result_t
887 widget_WidgetType_deserialize(
888 const xsd_QName * element_qname,
889 widget_WidgetType * instance,
890 globus_soap_message_handle_t message_handle,
891 globus_xsd_element_options_t options)
892 0 {
893 0 globus_result_t result = GLOBUS_SUCCESS;
894 xsd_QName subelement;
895 GlobusFuncName(widget_WidgetType_deserialize);
896 0 GlobusSoapMessageDebugEnter();
897
898
899 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
900 {
901 0 result = globus_soap_message_deserialize_element(
902 message_handle, element_qname);
903 0 if(result != GLOBUS_SUCCESS)
904 {
905 0 result = GlobusSoapMessageErrorDeserializeFailed(
906 result, element_qname);
907 0 goto exit;
908 }
909
910
911 0 result = globus_soap_message_deserialize_element_begin_close(
912 message_handle);
913 0 if(result != GLOBUS_SUCCESS)
914 {
915 0 result = GlobusSoapMessageErrorDeserializeFailed(
916 result, element_qname);
917 0 goto fail_deserialize;
918 }
919 }
920
921 0 subelement.local = "Foo";
922 0 subelement.Namespace = "http://widgets.com";
923
924 0 result = xsd_string_array_deserialize(
925 &subelement,
926 &instance->Foo,
927 message_handle,
928 0);
929 0 if(result != GLOBUS_SUCCESS)
930 {
931 0 result = GlobusSoapMessageErrorDeserializeFailed(
932 result,
933 (&subelement));
934 0 goto Foo_destroy_array;
935 }
936
937 0 subelement.local = "QueryExpressionDialect";
938 0 subelement.Namespace = "http://docs.oasis-open.org/wsrf/rp-2";
939
940 0 result = xsd_anyURI_array_deserialize(
941 &subelement,
942 &instance->QueryExpressionDialect,
943 message_handle,
944 0);
945 0 if(result != GLOBUS_SUCCESS)
946 {
947 0 result = GlobusSoapMessageErrorDeserializeFailed(
948 result,
949 (&subelement));
950 0 goto QueryExpressionDialect_destroy_array;
951 }
952
953 0 subelement.local = "TerminationTime";
954 0 subelement.Namespace = "http://docs.oasis-open.org/wsrf/rl-2";
955
956 0 result = wsrl_TerminationTimeType_deserialize_pointer(
957 &subelement,
958 &instance->TerminationTime,
959 message_handle,
960 0);
961 0 if(result != GLOBUS_SUCCESS)
962 {
963 0 result = GlobusSoapMessageErrorDeserializeFailed(
964 result,
965 (&subelement));
966 0 goto TerminationTime_destroy_pointer;
967 }
968
969 0 subelement.local = "CurrentTime";
970 0 subelement.Namespace = "http://docs.oasis-open.org/wsrf/rl-2";
971
972 0 result = wsrl_CurrentTimeType_deserialize(
973 &subelement,
974 &instance->CurrentTime,
975 message_handle,
976 0);
977 0 if(result != GLOBUS_SUCCESS)
978 {
979 0 result = GlobusSoapMessageErrorDeserializeFailed(
980 result,
981 &wsrl_CurrentTimeType_qname);
982 0 goto CurrentTime_destroy;
983 }
984
985 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
986 {
987 0 result = globus_soap_message_deserialize_element_end(
988 message_handle,
989 element_qname);
990 0 if(result != GLOBUS_SUCCESS)
991 {
992 0 result = GlobusSoapMessageErrorDeserializeFailed(
993 result, element_qname);
994 0 goto fail_deserialize;
995 }
996 }
997
998 0 goto exit;
999
1000 0 fail_deserialize:
1001 0 wsrl_CurrentTimeType_destroy_contents(
1002 &instance->CurrentTime);
1003
1004 0 CurrentTime_destroy:
1005 0 wsrl_TerminationTimeType_destroy(
1006 instance->TerminationTime);
1007 0 instance->TerminationTime = NULL;
1008
1009 0 TerminationTime_destroy_pointer:
1010 0 xsd_anyURI_array_destroy_contents(
1011 &instance->QueryExpressionDialect);
1012
1013 0 QueryExpressionDialect_destroy_array:
1014 0 xsd_string_array_destroy_contents(
1015 &instance->Foo);
1016
1017 0 Foo_destroy_array:
1018
1019
1020 0 exit:
1021
1022 0 GlobusSoapMessageDebugExit();
1023 0 return result;
1024 }
1025
1026
1027
1028 globus_result_t
1029 widget_WidgetType_deserialize_pointer(
1030 const xsd_QName * element_qname,
1031 widget_WidgetType ** ip,
1032 globus_soap_message_handle_t message_handle,
1033 globus_xsd_element_options_t options)
1034 0 {
1035 0 widget_WidgetType * instance = NULL;
1036 0 globus_result_t result = GLOBUS_SUCCESS;
1037 xsd_QName subelement;
1038 0 int found_attrs = 0;
1039 0 int empty_element = 0;
1040 GlobusFuncName(widget_WidgetType_deserialize_pointer);
1041 0 GlobusSoapMessageDebugEnter();
1042
1043 0 *ip = NULL;
1044
1045 0 result = globus_soap_message_deserialize_element(
1046 message_handle, element_qname);
1047 0 if(result != GLOBUS_SUCCESS &&
1048 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1049 GlobusSoapMessageStatusFailedElementCheck(result) ||
1050 GlobusSoapMessageStatusFailedWithTextCheck(result)))
1051 {
1052 0 result = GLOBUS_SUCCESS;
1053 0 goto exit;
1054 }
1055
1056 0 if(result != GLOBUS_SUCCESS)
1057 {
1058 0 result = GlobusSoapMessageErrorDeserializeFailed(
1059 result, element_qname);
1060 0 goto exit;
1061 }
1062
1063 0 if(globus_soap_message_deserialize_element_is_empty(
1064 message_handle))
1065 {
1066 0 empty_element = 1;
1067 }
1068
1069 0 result = widget_WidgetType_init(&instance);
1070 0 if(result != GLOBUS_SUCCESS)
1071 {
1072 0 result = GlobusSoapMessageErrorDeserializeFailed(
1073 result, element_qname);
1074 0 goto exit;
1075 }
1076
1077
1078 0 if(found_attrs == 0 &&
1079 globus_soap_message_deserialize_element_is_nil(message_handle))
1080 {
1081 0 widget_WidgetType_destroy(instance);
1082
1083 0 result = globus_soap_message_deserialize_element_end(
1084 message_handle,
1085 element_qname);
1086 0 if(result != GLOBUS_SUCCESS)
1087 {
1088 0 result = GlobusSoapMessageErrorDeserializeFailed(
1089 result, element_qname);
1090 0 goto exit;
1091 }
1092
1093 0 *ip = NULL;
1094 0 globus_object_free(globus_error_get(result));
1095 0 result = GLOBUS_SUCCESS;
1096 0 goto exit;
1097 }
1098
1099 0 if(empty_element)
1100 {
1101 0 result = globus_soap_message_deserialize_element_end(
1102 message_handle,
1103 element_qname);
1104 0 if(result != GLOBUS_SUCCESS)
1105 {
1106 0 result = GlobusSoapMessageErrorDeserializeFailed(
1107 result, element_qname);
1108 0 goto fail_deserialize;
1109 }
1110
1111 0 *ip = instance;
1112 0 goto exit;
1113 }
1114
1115 0 result = globus_soap_message_deserialize_element_begin_close(
1116 message_handle);
1117 0 if(result != GLOBUS_SUCCESS)
1118 {
1119 0 result = GlobusSoapMessageErrorDeserializeFailed(
1120 result, element_qname);
1121 0 goto exit;
1122 }
1123
1124 0 result = widget_WidgetType_deserialize(
1125 element_qname,
1126 instance,
1127 message_handle,
1128 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
1129 0 if(result != GLOBUS_SUCCESS)
1130 {
1131 0 result = GlobusSoapMessageErrorDeserializeFailed(
1132 result, element_qname);
1133 0 goto exit;
1134 }
1135
1136 0 result = globus_soap_message_deserialize_element_end(
1137 message_handle,
1138 element_qname);
1139 0 if(result != GLOBUS_SUCCESS)
1140 {
1141 0 result = GlobusSoapMessageErrorDeserializeFailed(
1142 result, element_qname);
1143 0 goto fail_deserialize;
1144 }
1145
1146 0 *ip = instance;
1147
1148 0 goto exit;
1149
1150 0 fail_deserialize:
1151 0 wsrl_CurrentTimeType_destroy_contents(
1152 &instance->CurrentTime);
1153
1154 0 CurrentTime_destroy:
1155 0 wsrl_TerminationTimeType_destroy(
1156 instance->TerminationTime);
1157 0 instance->TerminationTime = NULL;
1158
1159 0 TerminationTime_destroy_pointer:
1160 0 xsd_anyURI_array_destroy_contents(
1161 &instance->QueryExpressionDialect);
1162
1163 0 QueryExpressionDialect_destroy_array:
1164 0 xsd_string_array_destroy_contents(
1165 &instance->Foo);
1166
1167 0 Foo_destroy_array:
1168
1169 0 exit:
1170
1171 0 GlobusSoapMessageDebugExit();
1172 0 return result;
1173 }
1174
1175
1176 globus_result_t
1177 widget_WidgetType_array_init_contents(
1178 widget_WidgetType_array * array)
1179 0 {
1180 0 return globus_xsd_generic_array_init_contents(
1181 (globus_xsd_generic_array_t *) array,
1182 &widget_WidgetType_info);
1183 }
1184 /* widget_WidgetType_array_init_contents() */
1185
1186 globus_result_t
1187 widget_WidgetType_array_init(
1188 widget_WidgetType_array ** arr)
1189 0 {
1190 0 return globus_xsd_generic_array_init(
1191 (globus_xsd_generic_array_t **) arr,
1192 &widget_WidgetType_info);
1193 }
1194 /* widget_WidgetType_array_init() */
1195
1196 void
1197 widget_WidgetType_array_destroy_contents(
1198 widget_WidgetType_array * array)
1199 0 {
1200 0 globus_xsd_generic_array_destroy_contents(
1201 (globus_xsd_generic_array_t *) array);
1202 0 }
1203 /* widget_WidgetType_array_destroy_contents() */
1204
1205 void
1206 widget_WidgetType_array_destroy(
1207 widget_WidgetType_array * array)
1208 0 {
1209 0 globus_xsd_generic_array_destroy(
1210 (globus_xsd_generic_array_t *) array);
1211 0 }
1212 /* widget_WidgetType_array_destroy() */
1213
1214 globus_result_t
1215 widget_WidgetType_array_copy(
1216 widget_WidgetType_array ** dest_arr,
1217 const widget_WidgetType_array * src_arr)
1218 0 {
1219 0 return globus_xsd_generic_array_copy(
1220 (globus_xsd_generic_array_t **) dest_arr,
1221 (globus_xsd_generic_array_t *) src_arr);
1222 }
1223 /* widget_WidgetType_array_copy() */
1224
1225 globus_result_t
1226 widget_WidgetType_array_copy_contents(
1227 widget_WidgetType_array * dest_arr,
1228 const widget_WidgetType_array * src_arr)
1229 0 {
1230 0 return globus_xsd_generic_array_copy_contents(
1231 (globus_xsd_generic_array_t *) dest_arr,
1232 (globus_xsd_generic_array_t *) src_arr);
1233 }
1234 /* widget_WidgetType_array_copy_contents() */
1235
1236 widget_WidgetType *
1237 widget_WidgetType_array_push(
1238 widget_WidgetType_array * array)
1239 0 {
1240 /* Some contents initializers don't initialize subelments but to set their
1241 * values to be NULL
1242 */
1243 0 if (array->type_info == NULL)
1244 {
1245 0 array->type_info = &widget_WidgetType_info;
1246 }
1247
1248 0 return globus_xsd_generic_array_push(
1249 (globus_xsd_generic_array_t *) array);
1250 }
1251 /* widget_WidgetType_array_push() */
1252
1253 globus_result_t
1254 widget_WidgetType_array_serialize(
1255 const xsd_QName * element_qname,
1256 const widget_WidgetType_array * array,
1257 globus_soap_message_handle_t message,
1258 globus_xsd_element_options_t options)
1259 0 {
1260 0 return globus_xsd_generic_array_serialize(
1261 element_qname,
1262 (const globus_xsd_generic_array_t *) array,
1263 message,
1264 options);
1265 }
1266 /* widget_WidgetType_array_serialize() */
1267
1268 globus_result_t
1269 widget_WidgetType_array_deserialize(
1270 const xsd_QName * element_qname,
1271 widget_WidgetType_array * array,
1272 globus_soap_message_handle_t message,
1273 globus_xsd_element_options_t options)
1274 0 {
1275 /* Some initializers set the array's contents to NULL */
1276 0 if (array->type_info == NULL)
1277 {
1278 0 array->type_info = &widget_WidgetType_info;
1279 }
1280 0 return globus_xsd_generic_array_deserialize(
1281 element_qname,
1282 (globus_xsd_generic_array_t *) array,
1283 message,
1284 options);