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 "ds_KeyInfoType.h"
26 #include "globus_xsd_generic_array.h"
27
28 xsd_QName ds_KeyInfoType_choice_qname =
29 {
30 "http://www.w3.org/2000/09/xmldsig#",
31 "KeyInfoType_choice"
32 };
33
34 static
35 globus_result_t
36 ds_KeyInfoType_choice_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 ds_KeyInfoType_choice_serialize(
43 element_qname,
44 (ds_KeyInfoType_choice *) instance,
45 message_handle, options);
46 }
47
48 static
49 globus_result_t
50 ds_KeyInfoType_choice_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 ds_KeyInfoType_choice_deserialize_pointer(
57 element_qname,
58 (ds_KeyInfoType_choice **) ip,
59 message_handle, options);
60 }
61
62 static
63 globus_result_t
64 ds_KeyInfoType_choice_init_wrapper(void **object)
65 0 {
66 0 return ds_KeyInfoType_choice_init(
67 (ds_KeyInfoType_choice **) object);
68 }
69
70 static
71 void
72 ds_KeyInfoType_choice_destroy_wrapper(
73 void * object)
74 0 {
75 0 ds_KeyInfoType_choice_destroy(
76 (ds_KeyInfoType_choice *) object);
77 0 }
78
79 static
80 globus_result_t
81 ds_KeyInfoType_choice_copy_wrapper(
82 void ** dest_obj,
83 const void * src_obj)
84 0 {
85 0 return ds_KeyInfoType_choice_copy(
86 (ds_KeyInfoType_choice **) dest_obj,
87 (ds_KeyInfoType_choice *) src_obj);
88 }
89
90 static
91 globus_result_t
92 ds_KeyInfoType_choice_init_contents_wrapper(void *object)
93 0 {
94 0 return ds_KeyInfoType_choice_init_contents(
95 (ds_KeyInfoType_choice *) object);
96 }
97
98 static
99 void
100 ds_KeyInfoType_choice_destroy_contents_wrapper(
101 void * object)
102 0 {
103 0 ds_KeyInfoType_choice_destroy_contents(
104 (ds_KeyInfoType_choice *) object);
105 0 }
106
107 static
108 globus_result_t
109 ds_KeyInfoType_choice_copy_contents_wrapper(
110 void * dest_obj,
111 const void * src_obj)
112 0 {
113 0 return ds_KeyInfoType_choice_copy_contents(
114 (ds_KeyInfoType_choice *) dest_obj,
115 (ds_KeyInfoType_choice *) src_obj);
116 }
117
118 static
119 globus_result_t
120 ds_KeyInfoType_choice_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 ds_KeyInfoType_choice_serialize_contents(
127 element_qname,
128 (const ds_KeyInfoType_choice *) instance,
129 message_handle, options);
130 }
131
132 static
133 globus_result_t
134 ds_KeyInfoType_choice_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(ds_KeyInfoType_choice_deserialize_contents_wrapper);
142 0 GlobusSoapMessageDebugEnter();
143
144 0 if(!*instance)
145 {
146 0 result = ds_KeyInfoType_choice_init(
147 (ds_KeyInfoType_choice **)instance);
148 0 if(result != GLOBUS_SUCCESS)
149 {
150 0 goto error;
151 }
152 }
153
154 0 result = ds_KeyInfoType_choice_deserialize_contents(
155 element_qname,
156 *(ds_KeyInfoType_choice **)instance,
157 message_handle, options);
158 0 error:
159 0 GlobusSoapMessageDebugExit();
160 0 return result;
161 }
162
163 static
164 globus_result_t
165 ds_KeyInfoType_choice_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 ds_KeyInfoType_choice_array_serialize(
172 element,
173 (ds_KeyInfoType_choice_array *) instance,
174 message, options);
175 }
176
177 static
178 globus_result_t
179 ds_KeyInfoType_choice_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 = ds_KeyInfoType_choice_array_init(
190 (ds_KeyInfoType_choice_array **)inst);
191 0 if(result != GLOBUS_SUCCESS)
192 {
193 0 return result;
194 }
195 }
196
197 0 return ds_KeyInfoType_choice_array_deserialize(
198 element_qname,
199 *(ds_KeyInfoType_choice_array **) inst,
200 message, options);
201 }
202
203 static
204 globus_result_t
205 ds_KeyInfoType_choice_array_init_wrapper(
206 void ** arr)
207 0 {
208 0 return ds_KeyInfoType_choice_array_init(
209 (ds_KeyInfoType_choice_array **) arr);
210 }
211
212 static
213 void
214 ds_KeyInfoType_choice_array_destroy_wrapper(
215 void * arr)
216 0 {
217 0 ds_KeyInfoType_choice_array_destroy(
218 (ds_KeyInfoType_choice_array *) arr);
219 0 }
220
221 static
222 globus_result_t
223 ds_KeyInfoType_choice_array_copy_wrapper(
224 void ** dest_arr,
225 const void * src_arr)
226 0 {
227 0 return ds_KeyInfoType_choice_array_copy(
228 (ds_KeyInfoType_choice_array **) dest_arr,
229 (const ds_KeyInfoType_choice_array *) src_arr);
230 }
231
232 static
233 globus_result_t
234 ds_KeyInfoType_choice_array_init_contents_wrapper(
235 void * arr)
236 0 {
237 0 return ds_KeyInfoType_choice_array_init_contents(
238 (ds_KeyInfoType_choice_array *) arr);
239 }
240
241 static
242 void
243 ds_KeyInfoType_choice_array_destroy_contents_wrapper(
244 void * arr)
245 0 {
246 0 ds_KeyInfoType_choice_array_destroy_contents(
247 (ds_KeyInfoType_choice_array *) arr);
248 0 }
249
250 static
251 globus_result_t
252 ds_KeyInfoType_choice_array_copy_contents_wrapper(
253 void * dest_arr,
254 const void * src_arr)
255 0 {
256 0 return ds_KeyInfoType_choice_array_copy_contents(
257 (ds_KeyInfoType_choice_array *) dest_arr,
258 (const ds_KeyInfoType_choice_array *) src_arr);
259 }
260
261 static
262 void *
263 ds_KeyInfoType_choice_array_push_wrapper(
264 void * array)
265 0 {
266 0 return (void *) ds_KeyInfoType_choice_array_push(
267 (ds_KeyInfoType_choice_array *) array);
268 }
269
270 struct globus_xsd_type_info_s ds_KeyInfoType_choice_array_info =
271 {
272 &ds_KeyInfoType_choice_qname,
273 ds_KeyInfoType_choice_array_serialize_wrapper,
274 ds_KeyInfoType_choice_array_deserialize_wrapper,
275 ds_KeyInfoType_choice_array_init_wrapper,
276 ds_KeyInfoType_choice_array_destroy_wrapper,
277 ds_KeyInfoType_choice_array_copy_wrapper,
278 ds_KeyInfoType_choice_array_init_contents_wrapper,
279 ds_KeyInfoType_choice_array_destroy_contents_wrapper,
280 ds_KeyInfoType_choice_array_copy_contents_wrapper,
281 sizeof(ds_KeyInfoType_choice),
282 ds_KeyInfoType_choice_array_push_wrapper,
283 NULL,
284 NULL
285 };
286
287 struct globus_xsd_type_info_s ds_KeyInfoType_choice_contents_info =
288 {
289 &ds_KeyInfoType_choice_qname,
290 ds_KeyInfoType_choice_serialize_contents_wrapper,
291 ds_KeyInfoType_choice_deserialize_contents_wrapper,
292 ds_KeyInfoType_choice_init_wrapper,
293 ds_KeyInfoType_choice_destroy_wrapper,
294 ds_KeyInfoType_choice_copy_wrapper,
295 ds_KeyInfoType_choice_init_contents_wrapper,
296 ds_KeyInfoType_choice_destroy_contents_wrapper,
297 ds_KeyInfoType_choice_copy_contents_wrapper,
298 sizeof(ds_KeyInfoType_choice),
299 NULL,
300 NULL,
301 NULL
302 };
303
304 struct globus_xsd_type_info_s ds_KeyInfoType_choice_info =
305 {
306 &ds_KeyInfoType_choice_qname,
307 ds_KeyInfoType_choice_serialize_wrapper,
308 ds_KeyInfoType_choice_deserialize_pointer_wrapper,
309 ds_KeyInfoType_choice_init_wrapper,
310 ds_KeyInfoType_choice_destroy_wrapper,
311 ds_KeyInfoType_choice_copy_wrapper,
312 ds_KeyInfoType_choice_init_contents_wrapper,
313 ds_KeyInfoType_choice_destroy_contents_wrapper,
314 ds_KeyInfoType_choice_copy_contents_wrapper,
315 sizeof(ds_KeyInfoType_choice),
316 NULL,
317 &ds_KeyInfoType_choice_contents_info,
318 &ds_KeyInfoType_choice_array_info
319 };
320
321 globus_result_t
322 ds_KeyInfoType_choice_init_contents(
323 ds_KeyInfoType_choice * instance)
324 0 {
325 0 globus_result_t result = GLOBUS_SUCCESS;
326 GlobusFuncName(ds_KeyInfoType_choice_init_contents);
327 0 GlobusSoapMessageDebugEnter();
328
329 0 memset(instance, 0, sizeof(ds_KeyInfoType));
330
331 0 GlobusSoapMessageDebugExit();
332 0 return result;
333 }
334
335 globus_result_t
336 ds_KeyInfoType_choice_init(
337 ds_KeyInfoType_choice ** object)
338 0 {
339 ds_KeyInfoType_choice * instance;
340 0 globus_result_t result = GLOBUS_SUCCESS;
341 GlobusFuncName(ds_KeyInfoType_choice_init);
342 0 GlobusSoapMessageDebugEnter();
343
344 0 instance = globus_malloc(sizeof(ds_KeyInfoType_choice));
345 0 if(!instance)
346 {
347 0 result = GlobusSoapMessageErrorOutOfMemory;
348 0 goto exit;
349 }
350
351 0 memset(instance, 0, sizeof(ds_KeyInfoType_choice));
352
353 0 *object = instance;
354
355 0 exit:
356 0 GlobusSoapMessageDebugExit();
357 0 return result;
358 }
359
360 void
361 ds_KeyInfoType_choice_destroy(
362 ds_KeyInfoType_choice * instance)
363 0 {
364 GlobusFuncName(ds_KeyInfoType_choice_destroy);
365 0 GlobusSoapMessageDebugEnter();
366
367 0 if(!instance)
368 {
369 0 goto exit;
370 }
371
372 0 ds_KeyInfoType_choice_destroy_contents(instance);
373 0 free(instance);
374
375 0 exit:
376
377 0 GlobusSoapMessageDebugExit();
378 0 }
379
380
381
382 void
383 ds_KeyInfoType_choice_destroy_contents(
384 ds_KeyInfoType_choice * instance)
385 0 {
386 GlobusFuncName(ds_KeyInfoType_choice_destroy_contents);
387 0 GlobusSoapMessageDebugEnter();
388
389 0 switch(instance->type)
390 {
391
392 case ds_KeyInfoType_KeyName:
393
394 0 xsd_string_destroy_contents(
395 &instance->value.KeyName);
396 0 break;
397
398 case ds_KeyInfoType_KeyValue:
399
400 0 ds_KeyValueType_destroy_contents(
401 &instance->value.KeyValue);
402 0 break;
403
404 case ds_KeyInfoType_RetrievalMethod:
405
406 0 ds_RetrievalMethodType_destroy_contents(
407 &instance->value.RetrievalMethod);
408 0 break;
409
410 case ds_KeyInfoType_X509Data:
411
412 0 ds_X509DataType_destroy_contents(
413 &instance->value.X509Data);
414 0 break;
415
416 case ds_KeyInfoType_PGPData:
417
418 0 ds_PGPDataType_destroy_contents(
419 &instance->value.PGPData);
420 0 break;
421
422 case ds_KeyInfoType_SPKIData:
423
424 0 ds_SPKIDataType_destroy_contents(
425 &instance->value.SPKIData);
426 0 break;
427
428 case ds_KeyInfoType_MgmtData:
429
430 0 xsd_string_destroy_contents(
431 &instance->value.MgmtData);
432 0 break;
433
434 case ds_KeyInfoType_any:
435
436 0 xsd_any_destroy_contents(
437 &instance->value.any);
438 break;
439
440 default:
441 break;
442 }
443
444 0 instance->type = ds_KeyInfoType_undefined;
445
446 0 GlobusSoapMessageDebugExit();
447 0 }
448
449 globus_result_t
450 ds_KeyInfoType_choice_copy(
451 ds_KeyInfoType_choice ** dest_obj,
452 const ds_KeyInfoType_choice * src_obj)
453 0 {
454 0 globus_result_t result = GLOBUS_SUCCESS;
455 ds_KeyInfoType_choice * instance;
456 GlobusFuncName(ds_KeyInfoType_choice_copy);
457
458 0 GlobusSoapMessageDebugEnter();
459
460 0 instance = malloc(sizeof(ds_KeyInfoType_choice));
461 0 if (instance == NULL)
462 {
463 0 GlobusSoapMessageDebugExit();
464 0 return GlobusSoapMessageErrorOutOfMemory;
465 }
466
467 0 result = ds_KeyInfoType_choice_copy_contents(instance, src_obj);
468 0 if(result != GLOBUS_SUCCESS)
469 {
470 0 globus_free(instance);
471 0 GlobusSoapMessageDebugExit();
472 0 return GlobusSoapMessageErrorOutOfMemory;
473 }
474
475 0 *dest_obj = instance;
476 0 GlobusSoapMessageDebugExit();
477 0 return result;
478 }
479
480
481
482 globus_result_t
483 ds_KeyInfoType_choice_copy_contents(
484 ds_KeyInfoType_choice * instance,
485 const ds_KeyInfoType_choice * src_obj)
486 0 {
487 xsd_QName subelement;
488 0 globus_result_t result = GLOBUS_SUCCESS;
489 GlobusFuncName(ds_KeyInfoType_choice_copy_contents);
490
491 0 GlobusSoapMessageDebugEnter();
492
493 0 switch(src_obj->type)
494 {
495
496 case ds_KeyInfoType_KeyName:
497 0 instance->type = ds_KeyInfoType_KeyName;
498 0 result = xsd_string_copy_contents(
499 &instance->value.KeyName,
500 &src_obj->value.KeyName);
501 0 if(result != GLOBUS_SUCCESS)
502 {
503 0 result = GlobusSoapMessageErrorSerializeFailed(
504 result, NULL, &ds_KeyInfoType_choice_qname);
505 0 goto exit;
506 }
507
508 0 break;
509
510 case ds_KeyInfoType_KeyValue:
511 0 instance->type = ds_KeyInfoType_KeyValue;
512 0 result = ds_KeyValueType_copy_contents(
513 &instance->value.KeyValue,
514 &src_obj->value.KeyValue);
515 0 if(result != GLOBUS_SUCCESS)
516 {
517 0 result = GlobusSoapMessageErrorSerializeFailed(
518 result, NULL, &ds_KeyInfoType_choice_qname);
519 0 goto exit;
520 }
521
522 0 break;
523
524 case ds_KeyInfoType_RetrievalMethod:
525 0 instance->type = ds_KeyInfoType_RetrievalMethod;
526 0 result = ds_RetrievalMethodType_copy_contents(
527 &instance->value.RetrievalMethod,
528 &src_obj->value.RetrievalMethod);
529 0 if(result != GLOBUS_SUCCESS)
530 {
531 0 result = GlobusSoapMessageErrorSerializeFailed(
532 result, NULL, &ds_KeyInfoType_choice_qname);
533 0 goto exit;
534 }
535
536 0 break;
537
538 case ds_KeyInfoType_X509Data:
539 0 instance->type = ds_KeyInfoType_X509Data;
540 0 result = ds_X509DataType_copy_contents(
541 &instance->value.X509Data,
542 &src_obj->value.X509Data);
543 0 if(result != GLOBUS_SUCCESS)
544 {
545 0 result = GlobusSoapMessageErrorSerializeFailed(
546 result, NULL, &ds_KeyInfoType_choice_qname);
547 0 goto exit;
548 }
549
550 0 break;
551
552 case ds_KeyInfoType_PGPData:
553 0 instance->type = ds_KeyInfoType_PGPData;
554 0 result = ds_PGPDataType_copy_contents(
555 &instance->value.PGPData,
556 &src_obj->value.PGPData);
557 0 if(result != GLOBUS_SUCCESS)
558 {
559 0 result = GlobusSoapMessageErrorSerializeFailed(
560 result, NULL, &ds_KeyInfoType_choice_qname);
561 0 goto exit;
562 }
563
564 0 break;
565
566 case ds_KeyInfoType_SPKIData:
567 0 instance->type = ds_KeyInfoType_SPKIData;
568 0 result = ds_SPKIDataType_copy_contents(
569 &instance->value.SPKIData,
570 &src_obj->value.SPKIData);
571 0 if(result != GLOBUS_SUCCESS)
572 {
573 0 result = GlobusSoapMessageErrorSerializeFailed(
574 result, NULL, &ds_KeyInfoType_choice_qname);
575 0 goto exit;
576 }
577
578 0 break;
579
580 case ds_KeyInfoType_MgmtData:
581 0 instance->type = ds_KeyInfoType_MgmtData;
582 0 result = xsd_string_copy_contents(
583 &instance->value.MgmtData,
584 &src_obj->value.MgmtData);
585 0 if(result != GLOBUS_SUCCESS)
586 {
587 0 result = GlobusSoapMessageErrorSerializeFailed(
588 result, NULL, &ds_KeyInfoType_choice_qname);
589 0 goto exit;
590 }
591
592 0 break;
593
594 case ds_KeyInfoType_any:
595 0 instance->type = ds_KeyInfoType_any;
596 0 result = xsd_any_copy_contents(
597 &instance->value.any,
598 &src_obj->value.any);
599 0 if(result != GLOBUS_SUCCESS)
600 {
601 0 result = GlobusSoapMessageErrorSerializeFailed(
602 result, NULL, &ds_KeyInfoType_choice_qname);
603 0 goto exit;
604 }
605
606 break;
607
608 default:
609 break;
610 }
611
612 0 exit:
613
614 0 GlobusSoapMessageDebugExit();
615 0 return result;
616 }
617
618
619
620
621
622 globus_result_t
623 ds_KeyInfoType_choice_serialize_contents(
624 const xsd_QName * element_qname, /* ignored */
625 const ds_KeyInfoType_choice * instance,
626 globus_soap_message_handle_t message_handle,
627 globus_xsd_element_options_t options)
628 0 {
629 xsd_QName subelement;
630 0 globus_result_t result = GLOBUS_SUCCESS;
631 GlobusFuncName(ds_KeyInfoType_choice_serialize_contents);
632 0 GlobusSoapMessageDebugEnter();
633
634 0 switch(instance->type)
635 {
636
637 case ds_KeyInfoType_KeyName:
638
639 0 subelement.local = "KeyName";
640 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
641 0 result = xsd_string_serialize(
642 &subelement,
643 &instance->value.KeyName,
644 message_handle,
645 options);
646 0 if(result != GLOBUS_SUCCESS)
647 {
648 0 result = GlobusSoapMessageErrorSerializeFailed(
649 result, NULL, &ds_KeyInfoType_choice_qname);
650 0 goto exit;
651 }
652
653 0 break;
654
655 case ds_KeyInfoType_KeyValue:
656
657 0 subelement.local = "KeyValue";
658 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
659 0 result = ds_KeyValueType_serialize(
660 &subelement,
661 &instance->value.KeyValue,
662 message_handle,
663 options);
664 0 if(result != GLOBUS_SUCCESS)
665 {
666 0 result = GlobusSoapMessageErrorSerializeFailed(
667 result, NULL, &ds_KeyInfoType_choice_qname);
668 0 goto exit;
669 }
670
671 0 break;
672
673 case ds_KeyInfoType_RetrievalMethod:
674
675 0 subelement.local = "RetrievalMethod";
676 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
677 0 result = ds_RetrievalMethodType_serialize(
678 &subelement,
679 &instance->value.RetrievalMethod,
680 message_handle,
681 options);
682 0 if(result != GLOBUS_SUCCESS)
683 {
684 0 result = GlobusSoapMessageErrorSerializeFailed(
685 result, NULL, &ds_KeyInfoType_choice_qname);
686 0 goto exit;
687 }
688
689 0 break;
690
691 case ds_KeyInfoType_X509Data:
692
693 0 subelement.local = "X509Data";
694 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
695 0 result = ds_X509DataType_serialize(
696 &subelement,
697 &instance->value.X509Data,
698 message_handle,
699 options);
700 0 if(result != GLOBUS_SUCCESS)
701 {
702 0 result = GlobusSoapMessageErrorSerializeFailed(
703 result, NULL, &ds_KeyInfoType_choice_qname);
704 0 goto exit;
705 }
706
707 0 break;
708
709 case ds_KeyInfoType_PGPData:
710
711 0 subelement.local = "PGPData";
712 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
713 0 result = ds_PGPDataType_serialize(
714 &subelement,
715 &instance->value.PGPData,
716 message_handle,
717 options);
718 0 if(result != GLOBUS_SUCCESS)
719 {
720 0 result = GlobusSoapMessageErrorSerializeFailed(
721 result, NULL, &ds_KeyInfoType_choice_qname);
722 0 goto exit;
723 }
724
725 0 break;
726
727 case ds_KeyInfoType_SPKIData:
728
729 0 subelement.local = "SPKIData";
730 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
731 0 result = ds_SPKIDataType_serialize(
732 &subelement,
733 &instance->value.SPKIData,
734 message_handle,
735 options);
736 0 if(result != GLOBUS_SUCCESS)
737 {
738 0 result = GlobusSoapMessageErrorSerializeFailed(
739 result, NULL, &ds_KeyInfoType_choice_qname);
740 0 goto exit;
741 }
742
743 0 break;
744
745 case ds_KeyInfoType_MgmtData:
746
747 0 subelement.local = "MgmtData";
748 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
749 0 result = xsd_string_serialize(
750 &subelement,
751 &instance->value.MgmtData,
752 message_handle,
753 options);
754 0 if(result != GLOBUS_SUCCESS)
755 {
756 0 result = GlobusSoapMessageErrorSerializeFailed(
757 result, NULL, &ds_KeyInfoType_choice_qname);
758 0 goto exit;
759 }
760
761 0 break;
762
763 case ds_KeyInfoType_any:
764
765 0 subelement.local = "any";
766 0 subelement.Namespace = "http://www.w3.org/2001/XMLSchema";
767 0 result = xsd_any_serialize(
768 &subelement,
769 &instance->value.any,
770 message_handle,
771 options);
772 0 if(result != GLOBUS_SUCCESS)
773 {
774 0 result = GlobusSoapMessageErrorSerializeFailed(
775 result, NULL, &ds_KeyInfoType_choice_qname);
776 0 goto exit;
777 }
778
779 break;
780
781 default:
782 break;
783 }
784
785 0 exit:
786
787 0 GlobusSoapMessageDebugExit();
788 0 return result;
789 }
790
791
792
793 globus_result_t
794 ds_KeyInfoType_choice_serialize(
795 const xsd_QName * element_qname,
796 const ds_KeyInfoType_choice * instance,
797 globus_soap_message_handle_t message_handle,
798 globus_xsd_element_options_t options)
799 0 {
800 0 globus_result_t result = GLOBUS_SUCCESS;
801 GlobusFuncName(ds_KeyInfoType_choice_serialize);
802 0 GlobusSoapMessageDebugEnter();
803
804 0 result = ds_KeyInfoType_choice_serialize_contents(
805 element_qname,
806 instance,
807 message_handle,
808 options);
809 0 if(result != GLOBUS_SUCCESS)
810 {
811 0 result = GlobusSoapMessageErrorSerializeFailed(
812 result, NULL, &ds_KeyInfoType_choice_qname);
813 0 goto exit;
814 }
815
816 0 exit:
817 0 GlobusSoapMessageDebugExit();
818 0 return result;
819 }
820
821
822
823
824
825 globus_result_t
826 ds_KeyInfoType_choice_deserialize_contents(
827 const xsd_QName * element_qname, /* ignored */
828 ds_KeyInfoType_choice * instance,
829 globus_soap_message_handle_t message_handle,
830 globus_xsd_element_options_t options)
831 0 {
832 0 globus_result_t result = GLOBUS_SUCCESS;
833 GlobusFuncName(ds_KeyInfoType_choice_deserialize_contents);
834 0 GlobusSoapMessageDebugEnter();
835
836 0 result = ds_KeyInfoType_choice_deserialize(
837 NULL,
838 instance,
839 message_handle,
840 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
841 0 if(result != GLOBUS_SUCCESS)
842 {
843 0 result = GlobusSoapMessageErrorDeserializeFailed(
844 result, element_qname);
845 0 goto exit;
846 }
847
848 0 exit:
849
850 0 GlobusSoapMessageDebugExit();
851 0 return result;
852 }
853
854
855
856 globus_result_t
857 ds_KeyInfoType_choice_deserialize(
858 const xsd_QName * element_qname,
859 ds_KeyInfoType_choice * instance,
860 globus_soap_message_handle_t message_handle,
861 globus_xsd_element_options_t options)
862 0 {
863 0 globus_result_t result = GLOBUS_SUCCESS;
864 xsd_QName subelement;
865 0 xsd_QName deselem_qname = { NULL, NULL } ;
866 GlobusFuncName(ds_KeyInfoType_choice_deserialize);
867 0 GlobusSoapMessageDebugEnter();
868
869 0 xsd_QName_init_contents(&deselem_qname);
870
871 0 result = globus_soap_message_deserialize_element_unknown(
872 message_handle, &deselem_qname);
873 0 if(result != GLOBUS_SUCCESS)
874 {
875 0 result = GlobusSoapMessageErrorDeserializeFailed(
876 result, &ds_KeyInfoType_choice_qname);
877 0 goto exit;
878 }
879
880 /*
881 if(globus_soap_message_deserialize_element_is_nil(message_handle))
882 {
883 xsd_QName_destroy_contents(&deselem_qname);
884 result = globus_soap_message_deserialize_element_end(
885 message_handle,
886 element_qname);
887 if(result != GLOBUS_SUCCESS)
888 {
889 result = GlobusSoapMessageErrorDeserializeFailed(
890 result, &ds_KeyInfoType_choice_qname);
891 goto exit;
892 }
893 }
894 */
895
896 0 globus_soap_message_deserialize_push_element(message_handle);
897
898 0 subelement.local = "KeyName";
899 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
900 0 if(xsd_QName_keyeq((void *)&subelement, (void *)&deselem_qname))
901 {
902 0 instance->type=ds_KeyInfoType_KeyName;
903 0 result = xsd_string_deserialize(
904 &subelement,
905 &instance->value.KeyName,
906 message_handle,
907 options);
908 0 if(result != GLOBUS_SUCCESS)
909 {
910 0 result = GlobusSoapMessageErrorDeserializeFailed(
911 result, &ds_KeyInfoType_choice_qname);
912 0 goto KeyName_destroy;
913 }
914
915 0 goto exit;
916 }
917
918 0 subelement.local = "KeyValue";
919 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
920 0 if(xsd_QName_keyeq((void *)&subelement, (void *)&deselem_qname))
921 {
922 0 instance->type=ds_KeyInfoType_KeyValue;
923 0 result = ds_KeyValueType_deserialize(
924 &subelement,
925 &instance->value.KeyValue,
926 message_handle,
927 options);
928 0 if(result != GLOBUS_SUCCESS)
929 {
930 0 result = GlobusSoapMessageErrorDeserializeFailed(
931 result, &ds_KeyInfoType_choice_qname);
932 0 goto KeyValue_destroy;
933 }
934
935 0 goto exit;
936 }
937
938 0 subelement.local = "RetrievalMethod";
939 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
940 0 if(xsd_QName_keyeq((void *)&subelement, (void *)&deselem_qname))
941 {
942 0 instance->type=ds_KeyInfoType_RetrievalMethod;
943 0 result = ds_RetrievalMethodType_deserialize(
944 &subelement,
945 &instance->value.RetrievalMethod,
946 message_handle,
947 options);
948 0 if(result != GLOBUS_SUCCESS)
949 {
950 0 result = GlobusSoapMessageErrorDeserializeFailed(
951 result, &ds_KeyInfoType_choice_qname);
952 0 goto RetrievalMethod_destroy;
953 }
954
955 0 goto exit;
956 }
957
958 0 subelement.local = "X509Data";
959 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
960 0 if(xsd_QName_keyeq((void *)&subelement, (void *)&deselem_qname))
961 {
962 0 instance->type=ds_KeyInfoType_X509Data;
963 0 result = ds_X509DataType_deserialize(
964 &subelement,
965 &instance->value.X509Data,
966 message_handle,
967 options);
968 0 if(result != GLOBUS_SUCCESS)
969 {
970 0 result = GlobusSoapMessageErrorDeserializeFailed(
971 result, &ds_KeyInfoType_choice_qname);
972 0 goto X509Data_destroy;
973 }
974
975 0 goto exit;
976 }
977
978 0 subelement.local = "PGPData";
979 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
980 0 if(xsd_QName_keyeq((void *)&subelement, (void *)&deselem_qname))
981 {
982 0 instance->type=ds_KeyInfoType_PGPData;
983 0 result = ds_PGPDataType_deserialize(
984 &subelement,
985 &instance->value.PGPData,
986 message_handle,
987 options);
988 0 if(result != GLOBUS_SUCCESS)
989 {
990 0 result = GlobusSoapMessageErrorDeserializeFailed(
991 result, &ds_KeyInfoType_choice_qname);
992 0 goto PGPData_destroy;
993 }
994
995 0 goto exit;
996 }
997
998 0 subelement.local = "SPKIData";
999 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1000 0 if(xsd_QName_keyeq((void *)&subelement, (void *)&deselem_qname))
1001 {
1002 0 instance->type=ds_KeyInfoType_SPKIData;
1003 0 result = ds_SPKIDataType_deserialize(
1004 &subelement,
1005 &instance->value.SPKIData,
1006 message_handle,
1007 options);
1008 0 if(result != GLOBUS_SUCCESS)
1009 {
1010 0 result = GlobusSoapMessageErrorDeserializeFailed(
1011 result, &ds_KeyInfoType_choice_qname);
1012 0 goto SPKIData_destroy;
1013 }
1014
1015 0 goto exit;
1016 }
1017
1018 0 subelement.local = "MgmtData";
1019 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1020 0 if(xsd_QName_keyeq((void *)&subelement, (void *)&deselem_qname))
1021 {
1022 0 instance->type=ds_KeyInfoType_MgmtData;
1023 0 result = xsd_string_deserialize(
1024 &subelement,
1025 &instance->value.MgmtData,
1026 message_handle,
1027 options);
1028 0 if(result != GLOBUS_SUCCESS)
1029 {
1030 0 result = GlobusSoapMessageErrorDeserializeFailed(
1031 result, &ds_KeyInfoType_choice_qname);
1032 0 goto MgmtData_destroy;
1033 }
1034
1035 0 goto exit;
1036 }
1037
1038 0 subelement.local = "any";
1039
1040 0 subelement.Namespace = "##other{http://www.w3.org/2000/09/xmldsig#}";
1041
1042
1043 /* try to parse as any element */
1044 0 result = xsd_any_deserialize(
1045 &subelement,
1046 &instance->value.any,
1047 message_handle,
1048 options);
1049 0 if(result != GLOBUS_SUCCESS)
1050 {
1051 0 result = GlobusSoapMessageErrorDeserializeFailed(
1052 result, &ds_KeyInfoType_choice_qname);
1053 0 goto any_destroy;
1054 }
1055 else
1056 {
1057 0 instance->type=ds_KeyInfoType_any;
1058 0 goto exit;
1059 }
1060
1061 instance->type = ds_KeyInfoType_undefined;
1062 result = GlobusSoapMessageErrorDeserializeFailed(
1063 result, &ds_KeyInfoType_choice_qname);
1064
1065 goto exit;
1066
1067 0 deserialize_failed:
1068
1069 0 any_destroy:
1070
1071 0 MgmtData_destroy:
1072
1073 0 SPKIData_destroy:
1074
1075 0 PGPData_destroy:
1076
1077 0 X509Data_destroy:
1078
1079 0 RetrievalMethod_destroy:
1080
1081 0 KeyValue_destroy:
1082
1083 0 KeyName_destroy:
1084
1085 0 exit:
1086
1087 0 xsd_QName_destroy_contents(&deselem_qname);
1088
1089 0 GlobusSoapMessageDebugExit();
1090 0 return result;
1091 }
1092
1093
1094
1095 globus_result_t
1096 ds_KeyInfoType_choice_deserialize_pointer(
1097 const xsd_QName * element_qname,
1098 ds_KeyInfoType_choice ** ip,
1099 globus_soap_message_handle_t message_handle,
1100 globus_xsd_element_options_t options)
1101 0 {
1102 0 ds_KeyInfoType_choice * instance = NULL;
1103 0 globus_result_t result = GLOBUS_SUCCESS;
1104 xsd_QName subelement;
1105 GlobusFuncName(ds_KeyInfoType_choice_deserialize_pointer);
1106 0 GlobusSoapMessageDebugEnter();
1107
1108 0 *ip = NULL;
1109
1110 0 result = ds_KeyInfoType_choice_init(&instance);
1111 0 if(result != GLOBUS_SUCCESS)
1112 {
1113 0 result = GlobusSoapMessageErrorDeserializeFailed(
1114 result, element_qname);
1115 0 goto exit;
1116 }
1117
1118 0 result = ds_KeyInfoType_choice_deserialize(
1119 element_qname,
1120 instance,
1121 message_handle,
1122 options);
1123 0 if(result != GLOBUS_SUCCESS)
1124 {
1125 0 goto exit;
1126 }
1127
1128 0 *ip = instance;
1129
1130 0 exit:
1131
1132 0 GlobusSoapMessageDebugExit();
1133 0 return result;
1134 }
1135
1136
1137
1138 globus_result_t
1139 ds_KeyInfoType_choice_array_init_contents(
1140 ds_KeyInfoType_choice_array * array)
1141 0 {
1142 0 return globus_xsd_generic_array_init_contents(
1143 (globus_xsd_generic_array_t *) array,
1144 &ds_KeyInfoType_choice_array_info);
1145 }
1146 /* ds_KeyInfoType_choice_array_init_contents() */
1147
1148 globus_result_t
1149 ds_KeyInfoType_choice_array_init(
1150 ds_KeyInfoType_choice_array ** arr)
1151 0 {
1152 0 return globus_xsd_generic_array_init(
1153 (globus_xsd_generic_array_t **) arr,
1154 &ds_KeyInfoType_choice_info);
1155 }
1156 /* ds_KeyInfoType_choice_array_init() */
1157
1158 void
1159 ds_KeyInfoType_choice_array_destroy_contents(
1160 ds_KeyInfoType_choice_array * array)
1161 0 {
1162 0 globus_xsd_generic_array_destroy_contents(
1163 (globus_xsd_generic_array_t *) array);
1164 0 }
1165 /* ds_KeyInfoType_choice_array_destroy_contents() */
1166
1167 void
1168 ds_KeyInfoType_choice_array_destroy(
1169 ds_KeyInfoType_choice_array * array)
1170 0 {
1171 0 globus_xsd_generic_array_destroy(
1172 (globus_xsd_generic_array_t *) array);
1173 0 }
1174 /* ds_KeyInfoType_choice_array_destroy() */
1175
1176 globus_result_t
1177 ds_KeyInfoType_choice_array_copy(
1178 ds_KeyInfoType_choice_array ** dest_arr,
1179 const ds_KeyInfoType_choice_array * src_arr)
1180 0 {
1181 0 return globus_xsd_generic_array_copy(
1182 (globus_xsd_generic_array_t **) dest_arr,
1183 (const globus_xsd_generic_array_t *) src_arr);
1184 }
1185 /* ds_KeyInfoType_choice_array_copy() */
1186
1187 globus_result_t
1188 ds_KeyInfoType_choice_array_copy_contents(
1189 ds_KeyInfoType_choice_array * dest_arr,
1190 const ds_KeyInfoType_choice_array * src_arr)
1191 0 {
1192 0 return globus_xsd_generic_array_copy_contents(
1193 (globus_xsd_generic_array_t *) dest_arr,
1194 (const globus_xsd_generic_array_t *) src_arr);
1195 }
1196
1197 ds_KeyInfoType_choice *
1198 ds_KeyInfoType_choice_array_push(
1199 ds_KeyInfoType_choice_array * array)
1200 0 {
1201 /* Some contents initializers don't initialize subelments but to set their
1202 * values to be NULL
1203 */
1204 0 if (array->type_info == NULL)
1205 {
1206 0 array->type_info = &ds_KeyInfoType_choice_info;
1207 }
1208 0 return globus_xsd_generic_array_push(
1209 (globus_xsd_generic_array_t *) array);
1210 }
1211 /* ds_KeyInfoType_choice_array_push() */
1212
1213 globus_result_t
1214 ds_KeyInfoType_choice_array_serialize(
1215 const xsd_QName * element_qname,
1216 const ds_KeyInfoType_choice_array * array,
1217 globus_soap_message_handle_t message,
1218 globus_xsd_element_options_t options)
1219 0 {
1220 0 return globus_xsd_generic_array_serialize(
1221 element_qname,
1222 (const globus_xsd_generic_array_t *) array,
1223 message,
1224 options);
1225 }
1226 /* ds_KeyInfoType_choice_array_serialize() */
1227
1228 globus_result_t
1229 ds_KeyInfoType_choice_array_deserialize(
1230 const xsd_QName * element_qname,
1231 ds_KeyInfoType_choice_array * array,
1232 globus_soap_message_handle_t message,
1233 globus_xsd_element_options_t options)
1234 0 {
1235 /* Some initializers set the array's contents to NULL */
1236 0 if (array->type_info == NULL)
1237 {
1238 0 array->type_info = &ds_KeyInfoType_choice_info;
1239 }
1240 0 return globus_xsd_generic_array_deserialize(
1241 element_qname,
1242 (globus_xsd_generic_array_t *) array,
1243 message,
1244 options);
1245 }