1 /*
2 * Portions of this file Copyright 1999-2005 University of Chicago
3 * Portions of this file Copyright 1999-2005 The University of Southern California.
4 *
5 * This file or a portion of this file is licensed under the
6 * terms of the Globus Toolkit Public License, found at
7 * http://www.globus.org/toolkit/download/license.html.
8 * If you redistribute this file, with or without
9 * modifications, you must include this notice in the file.
10 */
11
12
13 /*
14 * This file is automatically generated by the Globus WSDLtoC converter
15 */
16
17 #include "xsd_QName.h"
18 #include "globus_soap_message.h"
19 #include "globus_xsd_type_info.h"
20 #include "ds_TransformsType.h"
21
22 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
23 xsd_QName ds_TransformsType_qname =
24 {
25 DS_TRANSFORMSTYPE_NS,
26 DS_TRANSFORMSTYPE_LOCAL
27 };
28 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
29
30 globus_result_t
31 ds_TransformsType_serialize_wrapper(
32 xsd_QName * element_qname,
33 void * instance,
34 globus_soap_message_handle_t message_handle,
35 globus_xsd_element_options_t options)
36 0 {
37 0 return ds_TransformsType_serialize(
38 element_qname,
39 (ds_TransformsType *) instance,
40 message_handle, options);
41 }
42
43 globus_result_t
44 ds_TransformsType_deserialize_pointer_wrapper(
45 xsd_QName * element_qname,
46 void ** ip,
47 globus_soap_message_handle_t message_handle,
48 globus_xsd_element_options_t options)
49 0 {
50 0 return ds_TransformsType_deserialize_pointer(
51 element_qname,
52 (ds_TransformsType **) ip,
53 message_handle, options);
54 }
55
56 globus_result_t
57 ds_TransformsType_init_wrapper(void **object)
58 0 {
59 0 return ds_TransformsType_init(
60 (ds_TransformsType **) object);
61 }
62
63 void
64 ds_TransformsType_destroy_wrapper(
65 void * object)
66 0 {
67 0 ds_TransformsType_destroy(
68 (ds_TransformsType *) object);
69 }
70
71 globus_result_t
72 ds_TransformsType_copy_wrapper(
73 void ** dest_obj,
74 void * src_obj)
75 0 {
76 0 return ds_TransformsType_copy(
77 (ds_TransformsType **) dest_obj,
78 (ds_TransformsType *) src_obj);
79 }
80
81 globus_result_t
82 ds_TransformsType_init_contents_wrapper(void *object)
83 0 {
84 0 return ds_TransformsType_init_contents(
85 (ds_TransformsType *) object);
86 }
87
88 void
89 ds_TransformsType_destroy_contents_wrapper(
90 void * object)
91 0 {
92 0 ds_TransformsType_destroy_contents(
93 (ds_TransformsType *) object);
94 }
95
96 globus_result_t
97 ds_TransformsType_copy_contents_wrapper(
98 void * dest_obj,
99 void * src_obj)
100 0 {
101 0 return ds_TransformsType_copy_contents(
102 (ds_TransformsType *) dest_obj,
103 (ds_TransformsType *) src_obj);
104 }
105
106 globus_result_t
107 ds_TransformsType_serialize_contents_wrapper(
108 xsd_QName * element_qname,
109 void * instance,
110 globus_soap_message_handle_t message_handle,
111 globus_xsd_element_options_t options)
112 0 {
113 0 return ds_TransformsType_serialize_contents(
114 element_qname,
115 (ds_TransformsType *) instance,
116 message_handle, options);
117 }
118
119 globus_result_t
120 ds_TransformsType_deserialize_contents_wrapper(
121 xsd_QName * element_qname,
122 void ** instance,
123 globus_soap_message_handle_t message_handle,
124 globus_xsd_element_options_t options)
125 0 {
126 globus_result_t result;
127 GlobusFuncName(ds_TransformsType_deserialize_contents_wrapper);
128 0 GlobusSoapMessageDebugEnter();
129
130 0 if(!*instance)
131 {
132 0 result = ds_TransformsType_init(
133 (ds_TransformsType **)instance);
134 0 if(result != GLOBUS_SUCCESS)
135 {
136 0 goto error;
137 }
138 }
139
140 0 result = ds_TransformsType_deserialize_contents(
141 element_qname,
142 *(ds_TransformsType **)instance,
143 message_handle, options);
144 0 error:
145 0 GlobusSoapMessageDebugExit();
146 0 return result;
147 }
148
149 globus_result_t
150 ds_TransformsType_array_serialize_wrapper(
151 xsd_QName * element,
152 void * instance,
153 globus_soap_message_handle_t message,
154 globus_xsd_element_options_t options)
155 0 {
156 0 return ds_TransformsType_array_serialize(
157 element,
158 (ds_TransformsType_array *) instance,
159 message, options);
160 }
161
162 globus_result_t
163 ds_TransformsType_array_deserialize_wrapper(
164 xsd_QName * element_qname,
165 void ** inst,
166 globus_soap_message_handle_t message,
167 globus_xsd_element_options_t options)
168 0 {
169 0 if(!*inst)
170 {
171 globus_result_t result;
172
173 0 result = ds_TransformsType_array_init(
174 (ds_TransformsType_array **)inst);
175 0 if(result != GLOBUS_SUCCESS)
176 {
177 0 return result;
178 }
179 }
180
181 0 return ds_TransformsType_array_deserialize(
182 element_qname,
183 *(ds_TransformsType_array **) inst,
184 message, options);
185 }
186
187 globus_result_t
188 ds_TransformsType_array_init_wrapper(
189 void ** arr)
190 0 {
191 0 return ds_TransformsType_array_init(
192 (ds_TransformsType_array **) arr);
193 }
194
195 void
196 ds_TransformsType_array_destroy_wrapper(
197 void * arr)
198 0 {
199 0 ds_TransformsType_array_destroy(
200 (ds_TransformsType_array *) arr);
201 }
202
203 globus_result_t
204 ds_TransformsType_array_copy_wrapper(
205 void ** dest_arr,
206 void * src_arr)
207 0 {
208 0 return ds_TransformsType_array_copy(
209 (ds_TransformsType_array **) dest_arr,
210 (ds_TransformsType_array *) src_arr);
211 }
212
213 globus_result_t
214 ds_TransformsType_array_init_contents_wrapper(
215 void * arr)
216 0 {
217 0 return ds_TransformsType_array_init_contents(
218 (ds_TransformsType_array *) arr);
219 }
220
221 void
222 ds_TransformsType_array_destroy_contents_wrapper(
223 void * arr)
224 0 {
225 0 ds_TransformsType_array_destroy_contents(
226 (ds_TransformsType_array *) arr);
227 }
228
229 globus_result_t
230 ds_TransformsType_array_copy_contents_wrapper(
231 void * dest_arr,
232 void * src_arr)
233 0 {
234 0 return ds_TransformsType_array_copy_contents(
235 (ds_TransformsType_array *) dest_arr,
236 (ds_TransformsType_array *) src_arr);
237 }
238
239 struct globus_xsd_type_info_s ds_TransformsType_contents_info =
240 {
241 &ds_TransformsType_qname,
242 ds_TransformsType_serialize_contents_wrapper,
243 ds_TransformsType_deserialize_contents_wrapper,
244 ds_TransformsType_init_wrapper,
245 ds_TransformsType_destroy_wrapper,
246 ds_TransformsType_copy_wrapper,
247 ds_TransformsType_init_contents_wrapper,
248 ds_TransformsType_destroy_contents_wrapper,
249 ds_TransformsType_copy_contents_wrapper,
250 sizeof(ds_TransformsType),
251 NULL,
252 NULL,
253 NULL
254 };
255
256 struct globus_xsd_type_info_s ds_TransformsType_array_info =
257 {
258 &ds_TransformsType_qname,
259 ds_TransformsType_array_serialize_wrapper,
260 ds_TransformsType_array_deserialize_wrapper,
261 ds_TransformsType_array_init_wrapper,
262 ds_TransformsType_array_destroy_wrapper,
263 ds_TransformsType_array_copy_wrapper,
264 ds_TransformsType_array_init_contents_wrapper,
265 ds_TransformsType_array_destroy_contents_wrapper,
266 ds_TransformsType_array_copy_contents_wrapper,
267 sizeof(ds_TransformsType),
268 ds_TransformsType_array_push_wrapper,
269 NULL,
270 NULL
271 };
272
273 struct globus_xsd_type_info_s ds_TransformsType_info =
274 {
275 &ds_TransformsType_qname,
276 ds_TransformsType_serialize_wrapper,
277 ds_TransformsType_deserialize_pointer_wrapper,
278 ds_TransformsType_init_wrapper,
279 ds_TransformsType_destroy_wrapper,
280 ds_TransformsType_copy_wrapper,
281 ds_TransformsType_init_contents_wrapper,
282 ds_TransformsType_destroy_contents_wrapper,
283 ds_TransformsType_copy_contents_wrapper,
284 sizeof(ds_TransformsType),
285 NULL,
286 &ds_TransformsType_contents_info,
287 &ds_TransformsType_array_info
288 };
289
290 globus_result_t
291 ds_TransformsType_init_contents(
292 ds_TransformsType * instance)
293 0 {
294 0 globus_result_t result = GLOBUS_SUCCESS;
295 GlobusFuncName(ds_TransformsType_init_contents);
296 0 GlobusSoapMessageDebugEnter();
297
298 0 memset(instance, 0, sizeof(ds_TransformsType));
299
300 0 GlobusSoapMessageDebugExit();
301 0 return result;
302 }
303
304 globus_result_t
305 ds_TransformsType_init(
306 ds_TransformsType ** object)
307 0 {
308 ds_TransformsType * instance;
309 0 globus_result_t result = GLOBUS_SUCCESS;
310 GlobusFuncName(ds_TransformsType_init);
311 0 GlobusSoapMessageDebugEnter();
312
313 0 instance = globus_malloc(sizeof(ds_TransformsType));
314 0 if(!instance)
315 {
316 0 result = GlobusSoapMessageErrorOutOfMemory;
317 0 goto exit;
318 }
319
320 0 memset(instance, 0, sizeof(ds_TransformsType));
321
322 0 *object = instance;
323
324 0 exit:
325 0 GlobusSoapMessageDebugExit();
326 0 return result;
327 }
328
329 void
330 ds_TransformsType_destroy(
331 ds_TransformsType * instance)
332 0 {
333 GlobusFuncName(ds_TransformsType_destroy);
334 0 GlobusSoapMessageDebugEnter();
335
336 0 if(!instance)
337 {
338 0 goto exit;
339 }
340
341 0 ds_TransformsType_destroy_contents(instance);
342 0 globus_free(instance);
343
344 0 exit:
345
346 0 GlobusSoapMessageDebugExit();
347 }
348
349 void
350 ds_TransformsType_destroy_contents(
351 ds_TransformsType * instance)
352 0 {
353 GlobusFuncName(ds_TransformsType_destroy_contents);
354 0 GlobusSoapMessageDebugEnter();
355
356 0 if(instance)
357 {
358
359
360 0 ds_TransformType_array_destroy_contents(&instance->Transform);
361
362 }
363
364 0 GlobusSoapMessageDebugExit();
365 }
366
367 globus_result_t
368 ds_TransformsType_copy(
369 ds_TransformsType ** dest_obj,
370 const ds_TransformsType * src_obj)
371 0 {
372 0 globus_result_t result = GLOBUS_SUCCESS;
373 ds_TransformsType * instance;
374 GlobusFuncName(ds_TransformsType_copy);
375
376 0 GlobusSoapMessageDebugEnter();
377
378 0 instance = malloc(sizeof(ds_TransformsType));
379 0 if (instance == NULL)
380 {
381 0 GlobusSoapMessageDebugExit();
382 0 return GlobusSoapMessageErrorOutOfMemory;
383 }
384
385 0 result = ds_TransformsType_copy_contents(instance, src_obj);
386 0 if(result != GLOBUS_SUCCESS)
387 {
388 0 globus_free(instance);
389 0 GlobusSoapMessageDebugExit();
390 0 return GlobusSoapMessageErrorOutOfMemory;
391 }
392
393 0 *dest_obj = instance;
394 0 GlobusSoapMessageDebugExit();
395 0 return result;
396 }
397
398 globus_result_t
399 ds_TransformsType_copy_contents(
400 ds_TransformsType * instance,
401 const ds_TransformsType * src_obj)
402 0 {
403 0 globus_result_t result = GLOBUS_SUCCESS;
404 GlobusFuncName(ds_TransformsType_copy_contents);
405
406 0 GlobusSoapMessageDebugEnter();
407
408
409 0 result = ds_TransformType_array_copy_contents(
410 &instance->Transform,
411 &src_obj->Transform);
412 0 if(result != GLOBUS_SUCCESS)
413 {
414 0 result = GlobusSoapMessageErrorCopyFailed(
415 result, NULL, &ds_TransformType_qname);
416 goto Transform_destroy_array;
417 }
418
419 goto exit;
420
421 fail_deserialize:
422 ds_TransformType_array_destroy_contents(
423 &instance->Transform);
424
425 0 Transform_destroy_array:
426
427
428 0 exit:
429
430 0 GlobusSoapMessageDebugExit();
431 0 return result;
432 }
433
434
435
436 globus_result_t
437 ds_TransformsType_serialize_contents(
438 xsd_QName * element_qname, /* ignored */
439 ds_TransformsType * inst,
440 globus_soap_message_handle_t message_handle,
441 globus_xsd_element_options_t options)
442 0 {
443 0 globus_result_t result = GLOBUS_SUCCESS;
444 GlobusFuncName(ds_TransformsType_serialize_contents);
445 0 GlobusSoapMessageDebugEnter();
446
447 0 result = ds_TransformsType_serialize(
448 NULL,
449 inst,
450 message_handle,
451 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
452 0 if(result != GLOBUS_SUCCESS)
453 {
454 0 result = GlobusSoapMessageErrorSerializeFailed(
455 result, NULL, element_qname);
456 goto exit;
457 }
458
459 0 exit:
460
461 0 GlobusSoapMessageDebugExit();
462 0 return result;
463 }
464
465
466
467 globus_result_t
468 ds_TransformsType_serialize(
469 xsd_QName * element_qname,
470 ds_TransformsType * instance,
471 globus_soap_message_handle_t message_handle,
472 globus_xsd_element_options_t options)
473 0 {
474 0 globus_result_t result = GLOBUS_SUCCESS;
475 xsd_QName subelement;
476 0 globus_list_t * any_attr_keys = NULL;
477 0 globus_list_t * any_attr_keys_iterator = NULL;
478 0 xsd_QName * type_attr = NULL;
479 0 char * prefix = NULL;
480 int prefix_created;
481 0 int define_prefix = 0;
482 0 int save_options = options;
483
484 GlobusFuncName(ds_TransformsType_serialize);
485 0 GlobusSoapMessageDebugEnter();
486
487
488 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
489 {
490 /* serialize ds_TransformsType element */
491
492 0 result = globus_soap_message_invoke_ns_callouts(
493 message_handle,
494 element_qname,
495 GLOBUS_SOAP_MESSAGE_CALLOUT_NS_SET,
496 &options);
497 0 if(result != GLOBUS_SUCCESS)
498 {
499 0 result = GlobusSoapMessageErrorSerializeFailed(
500 result, NULL, element_qname);
501 0 goto exit;
502 }
503
504 0 result = globus_soap_message_element_ns_set(
505 message_handle,
506 element_qname->Namespace,
507 &options);
508 0 if(result != GLOBUS_SUCCESS)
509 {
510 0 result = GlobusSoapMessageErrorSerializeFailed(
511 result, NULL, element_qname);
512 0 goto exit;
513 }
514
515 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
516 !globus_soap_message_serialize_is_c14n_subset(message_handle))
517 {
518 0 result = globus_soap_message_attribute_ns_set(
519 message_handle,
520 "http://www.w3.org/2001/XMLSchema-instance",
521 &options);
522 0 if(result != GLOBUS_SUCCESS)
523 {
524 0 result = GlobusSoapMessageErrorSerializeFailed(
525 result, NULL, element_qname);
526 0 goto exit;
527 }
528
529 0 result = globus_soap_message_attribute_ns_set(
530 message_handle,
531 ds_TransformsType_qname.Namespace,
532 &options);
533 0 if(result != GLOBUS_SUCCESS)
534 {
535 0 result = GlobusSoapMessageErrorSerializeFailed(
536 result, NULL, element_qname);
537 0 goto exit;
538 }
539 }
540
541 0 result = globus_soap_message_invoke_callouts(
542 message_handle,
543 element_qname,
544 GLOBUS_SOAP_MESSAGE_CALLOUT_BEGIN);
545 0 if(result != GLOBUS_SUCCESS)
546 {
547 0 result = GlobusSoapMessageErrorSerializeFailed(
548 result, NULL, element_qname);
549 0 goto exit;
550 }
551
552 0 result = globus_soap_message_serialize_element(
553 message_handle,
554 element_qname,
555 options,
556 &ds_TransformsType_qname);
557 0 if(result != GLOBUS_SUCCESS)
558 {
559 0 result = GlobusSoapMessageErrorSerializeFailed(
560 result, NULL, element_qname);
561 0 goto exit;
562 }
563
564 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
565 !globus_soap_message_serialize_is_c14n_subset(message_handle))
566 {
567 0 xsd_QName_init(&type_attr);
568
569 0 type_attr->local = globus_libc_strdup("type");
570 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
571 }
572
573 /* serialize namespaces */
574
575 0 result = globus_soap_message_invoke_ns_callouts(
576 message_handle,
577 element_qname,
578 GLOBUS_SOAP_MESSAGE_CALLOUT_NS_ADD,
579 &options);
580 0 if(result != GLOBUS_SUCCESS)
581 {
582 0 result = GlobusSoapMessageErrorSerializeFailed(
583 result, NULL, element_qname);
584 0 goto exit;
585 }
586
587 0 result = globus_soap_message_element_ns_add(
588 message_handle,
589 element_qname->Namespace,
590 &options);
591 0 if(result != GLOBUS_SUCCESS)
592 {
593 0 result = GlobusSoapMessageErrorSerializeFailed(
594 result, NULL, element_qname);
595 0 goto exit;
596 }
597
598 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
599 !globus_soap_message_serialize_is_c14n_subset(message_handle))
600 {
601 0 result = globus_soap_message_attribute_ns_add(
602 message_handle,
603 "http://www.w3.org/2001/XMLSchema-instance",
604 &options);
605 0 if(result != GLOBUS_SUCCESS)
606 {
607 0 result = GlobusSoapMessageErrorSerializeFailed(
608 result, NULL, element_qname);
609 0 goto exit;
610 }
611
612 0 result = globus_soap_message_attribute_ns_add(
613 message_handle,
614 ds_TransformsType_qname.Namespace,
615 &options);
616 0 if(result != GLOBUS_SUCCESS)
617 {
618 0 result = GlobusSoapMessageErrorSerializeFailed(
619 result, NULL, element_qname);
620 0 goto exit;
621 }
622 }
623
624 /* serialize attributes */
625
626 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
627 !globus_soap_message_serialize_is_c14n_subset(message_handle))
628 {
629 0 result = globus_soap_message_serialize_QName_attribute(
630 message_handle,
631 type_attr,
632 &ds_TransformsType_qname);
633 0 if(result != GLOBUS_SUCCESS)
634 {
635 0 result = GlobusSoapMessageErrorSerializeFailed(
636 result, NULL, element_qname);
637 0 goto exit;
638 }
639 }
640
641
642 0 result = globus_soap_message_invoke_callouts(
643 message_handle,
644 element_qname,
645 GLOBUS_SOAP_MESSAGE_CALLOUT_ATTR);
646 0 if(result != GLOBUS_SUCCESS)
647 {
648 0 result = GlobusSoapMessageErrorSerializeFailed(
649 result, NULL, element_qname);
650 0 goto exit;
651 }
652 }
653
654 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
655 {
656 0 result = globus_soap_message_serialize_element_begin_close(
657 message_handle);
658 0 if(result != GLOBUS_SUCCESS)
659 {
660 0 result = GlobusSoapMessageErrorSerializeFailed(
661 result, NULL, element_qname);
662 0 goto exit;
663 }
664 }
665 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
666
667 /* serialize contents of type */
668
669 0 subelement.local = "Transform";
670 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
671
672 0 result = GlobusXSDArrayCheckLowerBounds(
673 1,
674 instance->Transform.length,
675 "Transform");
676 0 if(result != GLOBUS_SUCCESS)
677 {
678 0 result = GlobusSoapMessageErrorSerializeFailed(
679 result, NULL, &ds_TransformType_qname);
680 0 goto exit;
681 }
682
683 0 result = ds_TransformType_array_serialize(
684 &subelement,
685 &instance->Transform,
686 message_handle,
687 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
688 0 if(result != GLOBUS_SUCCESS)
689 {
690 0 result = GlobusSoapMessageErrorSerializeFailed(
691 result, NULL, &ds_TransformType_qname);
692 0 goto exit;
693 }
694
695 0 options = save_options;
696
697 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
698 {
699 /* add end element */
700 0 result = globus_soap_message_serialize_element_end(
701 message_handle,
702 element_qname,
703 options,
704 &ds_TransformsType_qname);
705 0 if(result != GLOBUS_SUCCESS)
706 {
707 0 result = GlobusSoapMessageErrorSerializeFailed(
708 result, NULL, element_qname);
709 0 goto exit;
710 }
711
712 0 globus_soap_message_element_ns_remove(
713 message_handle,
714 element_qname->Namespace,
715 &options);
716
717 /* remove namespace/prefix mappings for these types */
718
719 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
720 !globus_soap_message_serialize_is_c14n_subset(message_handle))
721 {
722 0 globus_soap_message_attribute_ns_remove(
723 message_handle,
724 "http://www.w3.org/2001/XMLSchema-instance",
725 &options);
726
727 0 globus_soap_message_attribute_ns_remove(
728 message_handle,
729 ds_TransformsType_qname.Namespace,
730 &options);
731 }
732
733 0 result = globus_soap_message_invoke_ns_callouts(
734 message_handle,
735 element_qname,
736 GLOBUS_SOAP_MESSAGE_CALLOUT_NS_REMOVE,
737 &options);
738 0 if(result != GLOBUS_SUCCESS)
739 {
740 0 result = GlobusSoapMessageErrorSerializeFailed(
741 result, NULL, element_qname);
742 0 goto exit;
743 }
744
745 0 result = globus_soap_message_invoke_callouts(
746 message_handle,
747 element_qname,
748 GLOBUS_SOAP_MESSAGE_CALLOUT_END);
749 0 if(result != GLOBUS_SUCCESS)
750 {
751 0 result = GlobusSoapMessageErrorSerializeFailed(
752 result, NULL, element_qname);
753 goto exit;
754 }
755 }
756
757 0 exit:
758 0 if (type_attr)
759 {
760 0 xsd_QName_destroy(type_attr);
761 }
762
763 0 if(any_attr_keys)
764 {
765 0 globus_list_free(any_attr_keys);
766 }
767
768 0 GlobusSoapMessageDebugExit();
769 0 return result;
770 }
771
772
773
774 globus_result_t
775 ds_TransformsType_deserialize_contents(
776 xsd_QName * element_qname, /* ignored */
777 ds_TransformsType * inst,
778 globus_soap_message_handle_t message_handle,
779 globus_xsd_element_options_t options)
780 0 {
781 0 globus_result_t result = GLOBUS_SUCCESS;
782 GlobusFuncName(ds_TransformsType_deserialize_contents);
783 0 GlobusSoapMessageDebugEnter();
784
785 0 result = ds_TransformsType_deserialize(
786 NULL,
787 inst,
788 message_handle,
789 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
790 0 if(result != GLOBUS_SUCCESS)
791 {
792 0 result = GlobusSoapMessageErrorDeserializeFailed(
793 result, element_qname);
794 goto exit;
795 }
796
797 0 exit:
798
799 0 GlobusSoapMessageDebugExit();
800 0 return result;
801 }
802
803
804
805 globus_result_t
806 ds_TransformsType_deserialize(
807 xsd_QName * element_qname,
808 ds_TransformsType * instance,
809 globus_soap_message_handle_t message_handle,
810 globus_xsd_element_options_t options)
811 0 {
812 0 globus_result_t result = GLOBUS_SUCCESS;
813 xsd_QName subelement;
814 GlobusFuncName(ds_TransformsType_deserialize);
815 0 GlobusSoapMessageDebugEnter();
816
817
818 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
819 {
820 0 result = globus_soap_message_deserialize_element(
821 message_handle, element_qname);
822 0 if(result != GLOBUS_SUCCESS)
823 {
824 0 result = GlobusSoapMessageErrorDeserializeFailed(
825 result, element_qname);
826 0 goto exit;
827 }
828
829
830 0 result = globus_soap_message_deserialize_element_begin_close(
831 message_handle);
832 0 if(result != GLOBUS_SUCCESS)
833 {
834 0 result = GlobusSoapMessageErrorDeserializeFailed(
835 result, element_qname);
836 0 goto fail_deserialize;
837 }
838 }
839
840 0 subelement.local = "Transform";
841 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
842
843 0 result = ds_TransformType_array_deserialize(
844 &subelement,
845 &instance->Transform,
846 message_handle,
847 0);
848 0 if(result != GLOBUS_SUCCESS)
849 {
850 0 result = GlobusSoapMessageErrorDeserializeFailed(
851 result,
852 (&subelement));
853 0 goto Transform_destroy_array;
854 }
855
856 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
857 {
858 0 result = globus_soap_message_deserialize_element_end(
859 message_handle,
860 element_qname);
861 0 if(result != GLOBUS_SUCCESS)
862 {
863 0 result = GlobusSoapMessageErrorDeserializeFailed(
864 result, element_qname);
865 goto fail_deserialize;
866 }
867 }
868
869 goto exit;
870
871 0 fail_deserialize:
872 0 ds_TransformType_array_destroy_contents(
873 &instance->Transform);
874
875 0 Transform_destroy_array:
876
877
878 0 exit:
879
880 0 GlobusSoapMessageDebugExit();
881 0 return result;
882 }
883
884
885
886 globus_result_t
887 ds_TransformsType_deserialize_pointer(
888 xsd_QName * element_qname,
889 ds_TransformsType ** ip,
890 globus_soap_message_handle_t message_handle,
891 globus_xsd_element_options_t options)
892 0 {
893 0 ds_TransformsType * instance = NULL;
894 0 globus_result_t result = GLOBUS_SUCCESS;
895 xsd_QName subelement;
896 0 int found_attrs = 0;
897 0 int empty_element = 0;
898 GlobusFuncName(ds_TransformsType_deserialize_pointer);
899 0 GlobusSoapMessageDebugEnter();
900
901 0 *ip = NULL;
902
903 0 result = globus_soap_message_deserialize_element(
904 message_handle, element_qname);
905 0 if(result != GLOBUS_SUCCESS &&
906 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
907 GlobusSoapMessageStatusFailedElementCheck(result) ||
908 GlobusSoapMessageStatusFailedWithTextCheck(result)))
909 {
910 0 *ip = NULL;
911 0 result = GLOBUS_SUCCESS;
912 0 goto exit;
913 }
914
915 0 if(result != GLOBUS_SUCCESS)
916 {
917 0 result = GlobusSoapMessageErrorDeserializeFailed(
918 result, element_qname);
919 0 goto exit;
920 }
921
922 0 if(globus_soap_message_deserialize_element_is_empty(
923 message_handle))
924 {
925 0 empty_element = 1;
926 }
927
928
929
930 0 result = ds_TransformsType_init(&instance);
931 0 if(result != GLOBUS_SUCCESS)
932 {
933 0 result = GlobusSoapMessageErrorDeserializeFailed(
934 result, element_qname);
935 0 goto exit;
936 }
937
938
939 0 if(found_attrs == 0 &&
940 globus_soap_message_deserialize_element_is_nil(message_handle))
941 {
942 0 ds_TransformsType_destroy(instance);
943
944 0 result = globus_soap_message_deserialize_element_end(
945 message_handle,
946 element_qname);
947 0 if(result != GLOBUS_SUCCESS)
948 {
949 0 result = GlobusSoapMessageErrorDeserializeFailed(
950 result, element_qname);
951 0 goto exit;
952 }
953
954 0 *ip = NULL;
955 0 globus_object_free(globus_error_get(result));
956 0 result = GLOBUS_SUCCESS;
957 0 goto exit;
958 }
959
960
961 0 if(empty_element)
962 {
963 0 result = globus_soap_message_deserialize_element_end(
964 message_handle,
965 element_qname);
966 0 if(result != GLOBUS_SUCCESS)
967 {
968 0 result = GlobusSoapMessageErrorDeserializeFailed(
969 result, element_qname);
970 0 goto fail_deserialize;
971 }
972
973 0 *ip = instance;
974 0 goto exit;
975 }
976
977 0 result = globus_soap_message_deserialize_element_begin_close(
978 message_handle);
979 0 if(result != GLOBUS_SUCCESS)
980 {
981 0 result = GlobusSoapMessageErrorDeserializeFailed(
982 result, element_qname);
983 0 goto exit;
984 }
985
986
987 0 subelement.local = "Transform";
988 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
989
990 0 result = ds_TransformType_array_deserialize(
991 &subelement,
992 &instance->Transform,
993 message_handle,
994 0);
995 0 if(result != GLOBUS_SUCCESS)
996 {
997 0 result = GlobusSoapMessageErrorDeserializeFailed(
998 result,
999 (&subelement));
1000 0 goto Transform_destroy_array;
1001 }
1002
1003
1004 0 result = globus_soap_message_deserialize_element_end(
1005 message_handle,
1006 element_qname);
1007 0 if(result != GLOBUS_SUCCESS)
1008 {
1009 0 result = GlobusSoapMessageErrorDeserializeFailed(
1010 result, element_qname);
1011 0 goto fail_deserialize;
1012 }
1013
1014 0 *ip = instance;
1015
1016 0 goto exit;
1017
1018 0 fail_deserialize:
1019 0 ds_TransformType_array_destroy_contents(
1020 &instance->Transform);
1021
1022 0 Transform_destroy_array:
1023
1024 0 exit:
1025
1026 0 GlobusSoapMessageDebugExit();
1027 0 return result;
1028 }
1029
1030
1031 globus_result_t
1032 ds_TransformsType_array_init_contents(
1033 ds_TransformsType_array * array)
1034 0 {
1035 GlobusFuncName(ds_TransformsType_array_init_contents);
1036 0 GlobusSoapMessageDebugEnter();
1037
1038 0 memset(array, 0, sizeof(ds_TransformsType_array));
1039
1040 0 GlobusSoapMessageDebugExit();
1041 0 return GLOBUS_SUCCESS;
1042 }
1043
1044 globus_result_t
1045 ds_TransformsType_array_init(
1046 ds_TransformsType_array ** arr)
1047 0 {
1048 ds_TransformsType_array * array;
1049 globus_result_t result;
1050 GlobusFuncName(ds_TransformsType_array_init);
1051 0 GlobusSoapMessageDebugEnter();
1052
1053 0 array = (ds_TransformsType_array *)
1054 globus_malloc(sizeof(ds_TransformsType_array));
1055 0 if(!array)
1056 {
1057 0 result = GlobusSoapMessageErrorOutOfMemory;
1058 0 goto exit;
1059 }
1060
1061 0 result = ds_TransformsType_array_init_contents(array);
1062 0 if(result != GLOBUS_SUCCESS)
1063 {
1064 0 globus_free(array);
1065 0 array = NULL;
1066
1067 }
1068
1069 0 *arr = array;
1070
1071 0 exit:
1072 0 GlobusSoapMessageDebugExit();
1073 0 return result;
1074 }
1075
1076 void
1077 ds_TransformsType_array_destroy_contents(
1078 ds_TransformsType_array * array)
1079 0 {
1080 0 int i = 0;
1081 GlobusFuncName(ds_TransformsType_array_destroy_contents);
1082 0 GlobusSoapMessageDebugEnter();
1083
1084 0 for(; i < array->length; ++i)
1085 {
1086 0 ds_TransformsType_destroy_contents(&array->elements[i]);
1087 }
1088
1089 0 if(array->elements)
1090 {
1091 0 globus_free(array->elements);
1092 0 array->elements = NULL;
1093 }
1094 0 array->length = 0;
1095
1096 0 GlobusSoapMessageDebugExit();
1097 }
1098
1099 void
1100 ds_TransformsType_array_destroy(
1101 ds_TransformsType_array * array)
1102 0 {
1103 GlobusFuncName(ds_TransformsType_array_destroy);
1104 0 GlobusSoapMessageDebugEnter();
1105
1106 0 ds_TransformsType_array_destroy_contents(array);
1107 0 globus_free(array);
1108
1109 0 GlobusSoapMessageDebugExit();
1110 }
1111
1112 globus_result_t
1113 ds_TransformsType_array_copy(
1114 ds_TransformsType_array ** dest_arr,
1115 const ds_TransformsType_array * src_arr)
1116 0 {
1117 ds_TransformsType_array * array;
1118 globus_result_t result;
1119 GlobusFuncName(ds_TransformsType_array_copy);
1120 0 GlobusSoapMessageDebugEnter();
1121
1122 0 array = (ds_TransformsType_array *) globus_malloc(
1123 sizeof(ds_TransformsType_array));
1124 0 if(!array)
1125 {
1126 0 result = GlobusSoapMessageErrorOutOfMemory;
1127 0 GlobusSoapMessageDebugExit();
1128 0 return result;
1129 }
1130
1131 0 result = ds_TransformsType_array_copy_contents(array, src_arr);
1132 0 if(result != GLOBUS_SUCCESS)
1133 {
1134 0 globus_free(array);
1135 0 GlobusSoapMessageDebugExit();
1136 0 return result;
1137 }
1138
1139 0 *dest_arr = array;
1140
1141 0 GlobusSoapMessageDebugExit();
1142 0 return GLOBUS_SUCCESS;
1143 }
1144
1145 globus_result_t
1146 ds_TransformsType_array_copy_contents(
1147 ds_TransformsType_array * dest_arr,
1148 const ds_TransformsType_array * src_arr)
1149 0 {
1150 int i;
1151 0 globus_result_t result = GLOBUS_SUCCESS;
1152 GlobusFuncName(ds_TransformsType_array_copy_contents);
1153 0 GlobusSoapMessageDebugEnter();
1154
1155 0 dest_arr->length = src_arr->length;
1156 0 if(dest_arr->length > 0)
1157 {
1158 0 dest_arr->elements = (ds_TransformsType *) malloc(
1159 sizeof(ds_TransformsType) * dest_arr->length);
1160 0 if(!dest_arr->elements)
1161 {
1162 0 result = GlobusSoapMessageErrorOutOfMemory;
1163 0 GlobusSoapMessageDebugExit();
1164 0 return result;
1165 }
1166 }
1167 else
1168 {
1169 0 dest_arr->elements = NULL;
1170 }
1171
1172 0 for(i = 0; i < dest_arr->length; i++)
1173 {
1174 0 result = ds_TransformsType_copy_contents(
1175 &dest_arr->elements[i], &src_arr->elements[i]);
1176 0 if(result != GLOBUS_SUCCESS)
1177 {
1178 0 while(i--)
1179 {
1180 0 ds_TransformsType_destroy_contents(&dest_arr->elements[i]);
1181 }
1182
1183 0 globus_free(dest_arr->elements);
1184 0 dest_arr->elements = NULL;
1185 0 dest_arr->length = 0;
1186 0 break;
1187 }
1188 }
1189
1190 0 GlobusSoapMessageDebugExit();
1191 0 return result;
1192 }
1193
1194 ds_TransformsType *
1195 ds_TransformsType_array_push(
1196 ds_TransformsType_array * array)
1197 0 {
1198 GlobusFuncName(ds_TransformsType_array_push);
1199 0 GlobusSoapMessageDebugEnter();
1200
1201 0 array->elements = realloc(array->elements,
1202 sizeof(ds_TransformsType) *
1203 (array->length + 1));
1204 0 memset(&array->elements[array->length], 0, sizeof(ds_TransformsType));
1205 0 array->length++;
1206
1207 0 GlobusSoapMessageDebugExit();
1208 0 return (&array->elements[array->length - 1]);
1209 }
1210
1211 void *
1212 ds_TransformsType_array_push_wrapper(
1213 void * array)
1214 0 {
1215 0 return (void *) ds_TransformsType_array_push((ds_TransformsType_array *) array);
1216 }
1217
1218 globus_result_t
1219 ds_TransformsType_array_serialize(
1220 xsd_QName * element_qname,
1221 ds_TransformsType_array * array,
1222 globus_soap_message_handle_t message,
1223 globus_xsd_element_options_t options)
1224 0 {
1225 0 globus_result_t result = GLOBUS_SUCCESS;
1226 0 int i = 0;
1227 GlobusFuncName(ds_TransformsType_array_serialize);
1228 0 GlobusSoapMessageDebugEnter();
1229
1230 0 for(; i < array->length; ++i)
1231 {
1232 0 result = ds_TransformsType_serialize(
1233 element_qname,
1234 &array->elements[i],
1235 message,
1236 options);
1237 0 if(result != GLOBUS_SUCCESS)
1238 {
1239 0 goto exit;
1240 }
1241 }
1242
1243 0 exit:
1244
1245 0 GlobusSoapMessageDebugExit();
1246 0 return result;
1247 }
1248
1249 globus_result_t
1250 ds_TransformsType_array_deserialize(
1251 xsd_QName * element_qname,
1252 ds_TransformsType_array * array,
1253 globus_soap_message_handle_t message,
1254 globus_xsd_element_options_t options)
1255 0 {
1256 0 globus_result_t result = GLOBUS_SUCCESS;
1257 0 int i = 0;
1258 int pre_length;
1259 GlobusFuncName(ds_TransformsType_array_deserialize);
1260 0 GlobusSoapMessageDebugEnter();
1261
1262 0 pre_length = array->length;
1263
1264 0 for(i = 0; i < pre_length; ++i)
1265 {
1266 0 result = ds_TransformsType_deserialize(
1267 element_qname,
1268 &array->elements[i],
1269 message,
1270 options);
1271 0 if(result != GLOBUS_SUCCESS)
1272 {
1273 0 if(GlobusSoapMessageStatusFailedElementCheck(result) ||
1274 GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1275 GlobusSoapMessageStatusFailedWithTextCheck(result))
1276 {
1277 0 result = GLOBUS_SUCCESS;
1278 0 break;
1279 }
1280
1281 0 result = GlobusSoapMessageErrorDeserializeFailed(
1282 result, element_qname);
1283 0 goto exit;
1284 }
1285 }
1286
1287 0 while(result == GLOBUS_SUCCESS)
1288 {
1289 ds_TransformsType next;
1290 0 memset(&next, 0, sizeof(ds_TransformsType));
1291
1292 0 result = ds_TransformsType_deserialize(
1293 element_qname,
1294 &next,
1295 message,
1296 options);
1297 0 if(result != GLOBUS_SUCCESS)
1298 {
1299 0 if(GlobusSoapMessageStatusFailedElementCheck(result) ||
1300 GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1301 GlobusSoapMessageStatusFailedWithTextCheck(result))
1302 {
1303 0 result = GLOBUS_SUCCESS;
1304 0 break;
1305 }
1306
1307 0 result = GlobusSoapMessageErrorDeserializeFailed(
1308 result, element_qname);
1309 0 goto exit;
1310 }
1311
1312 0 array->elements = realloc(
1313 array->elements,
1314 (array->length + 1) * sizeof(ds_TransformsType));
1315 0 if(!array->elements)
1316 {
1317 0 result = GlobusSoapMessageErrorOutOfMemory;
1318 0 goto exit;
1319 }
1320 0 array->elements[array->length] = next;
1321 0 array->length++;
1322 0 ++i;
1323 }
1324
1325 0 exit:
1326
1327 0 if(result != GLOBUS_SUCCESS)
1328 {
1329 0 int di = 0;
1330 0 for(; di < i; ++di)
1331 {
1332 0 ds_TransformsType_destroy_contents(
1333 &array->elements[di]);
1334 0 memset(&array->elements[di], 0, sizeof(ds_TransformsType));
1335 }
1336 }
1337
1338 0 GlobusSoapMessageDebugExit();
1339 0 return result;