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