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 "globus_soap_message.h"
23 #include "ServiceGroupTestService.h"
24 #include "ServiceGroupTestService_skeleton.h"
25 #include "ServiceGroupTestService_internal_skeleton.h"
26 #include "version.h"
27 #include "globus_soap_message_fault.h"
28 #include "globus_ws_addressing.h"
29 #include "globus_wsrf_resource.h"
30 #include "globus_wsrf_core_tools.h"
31
32 static
33 int
34 ServiceGroupTestService_activate(void);
35
36 static
37 int
38 ServiceGroupTestService_deactivate(void);
39
40 GlobusExtensionDefineModule(ServiceGroupTestService) =
41 {
42 "ServiceGroupTestService",
43 ServiceGroupTestService_activate,
44 ServiceGroupTestService_deactivate,
45 NULL,
46 NULL,
47 &local_version
48 };
49
50 0 GlobusDebugDefine(SERVICEGROUPTESTSERVICE);
51
52 xsd_QName ServiceGroupTestService_service_qname =
53 {
54 "http://www.globus.org/namespaces/2007/06/ServiceGroupTest/service",
55 "ServiceGroupTestService"
56 };
57
58 globus_service_descriptor_t ServiceGroupTestService_descriptor =
59 {
60 &ServiceGroupTestService_service_qname,
61 GLOBUS_SERVICE_ENGINE_MODULE_PATH_PREFIX "/" SERVICEGROUPTESTSERVICE_BASE_PATH,
62 NULL,
63 NULL,
64 NULL,
65 globus_resource_id_get_as_string
66 };
67
68
69 xsd_QName ServiceGroupTestPortType_Add_op_qname =
70 {
71 "http://localhost:8080/wsrf/services/ServiceGroupTestService"
72 "Add"
73 };
74
75 xsd_QName ServiceGroupTestPortType_Add_input_qname =
76 {
77 "http://docs.oasis-open.org/wsrf/sg-2",
78 "Add"
79 };
80
81 typedef globus_result_t (* Add_invoke_func_t) (
82 globus_service_engine_t engine,
83 globus_soap_message_handle_t message,
84 globus_service_descriptor_t * descriptor,
85 wssg_AddType * input,
86 wssg_AddResponseType * output,
87 xsd_any * fault);
88
89 typedef struct Add_callback_handle_s
90 {
91 globus_service_engine_t engine;
92 globus_soap_message_handle_t message;
93 globus_operation_invoke_callback_func_t callback;
94 void * args;
95 } Add_callback_handle_t;
96
97 static
98 void
99 Add_deserialize_callback(
100 void * handle)
101 6 {
102 Add_callback_handle_t * callback_handle;
103 6 globus_result_t result = GLOBUS_SUCCESS;
104 struct globus_soap_message_fault_s soap_fault;
105 Add_invoke_func_t invoke_function;
106 6 wssg_AddType * input = NULL;
107 GlobusFuncName(Add_deserialize_callback);
108 6 ServiceGroupTestServiceDebugEnter();
109
110 6 callback_handle = (Add_callback_handle_t *) handle;
111
112 6 result = globus_operation_table_get_operation(
113 ServiceGroupTestService_descriptor.operations,
114 "Add",
115 (void **)&invoke_function);
116 6 if(result != GLOBUS_SUCCESS)
117 {
118 0 goto exit;
119 }
120
121 6 result = wssg_AddType_init(
122 &input);
123 6 if(result != GLOBUS_SUCCESS)
124 {
125 0 goto exit;
126 }
127
128 6 result = wssg_AddType_deserialize(
129 &ServiceGroupTestPortType_Add_input_qname,
130 input,
131 callback_handle->message,
132 0);
133 6 if(result != GLOBUS_SUCCESS)
134 {
135 0 goto free_exit;
136 }
137
138 6 result = globus_soap_message_handle_set_attr(
139 callback_handle->message,
140 "AddOperationInputParameter",
141 wssg_AddType_info.copy,
142 wssg_AddType_info.destroy,
143 (void *)input);
144 if(result != GLOBUS_SUCCESS)
145 {
146 6 goto free_exit;
147 }
148
149 6 free_exit:
150 6 wssg_AddType_destroy(input);
151
152 6 exit:
153 6 callback_handle->callback(
154 result,
155 callback_handle->args);
156
157 6 free(callback_handle);
158 6 ServiceGroupTestServiceDebugExit();
159 6 }
160 /* Add_deserialize_callback() */
161
162 static
163 globus_result_t
164 Add_deserialize(
165 globus_service_engine_t engine,
166 globus_soap_message_handle_t message,
167 globus_operation_invoke_callback_func_t invoke_callback,
168 void * args)
169 6 {
170 Add_callback_handle_t * callback_handle;
171 6 globus_result_t result = GLOBUS_SUCCESS;
172 GlobusFuncName(Add_deserialize);
173 6 ServiceGroupTestServiceDebugEnter();
174
175 6 callback_handle = malloc(sizeof(Add_callback_handle_t));
176 6 globus_assert_string(callback_handle,
177 "Memory allocation failed "
178 "for Add callback handle");
179
180 6 callback_handle->engine = engine;
181 6 callback_handle->message = message;
182 6 callback_handle->callback = invoke_callback;
183 6 callback_handle->args = args;
184
185 6 result = globus_callback_register_oneshot(
186 NULL,
187 &globus_i_reltime_zero,
188 Add_deserialize_callback,
189 callback_handle);
190
191 6 ServiceGroupTestServiceDebugExit();
192 6 return result;
193 }
194
195 static
196 void
197 Add_invoke_callback(
198 void * handle)
199 6 {
200 Add_callback_handle_t * callback_handle;
201 6 globus_result_t result = GLOBUS_SUCCESS;
202 struct globus_soap_message_fault_s soap_fault;
203 Add_invoke_func_t invoke_function;
204 wssg_AddType * input;
205 wssg_AddResponseType output;
206 xsd_QName element_qname;
207 xsd_any fault;
208
209 GlobusFuncName(Add_invoke_callback);
210 6 ServiceGroupTestServiceDebugEnter();
211
212 6 callback_handle = (Add_callback_handle_t *) handle;
213
214 6 input = globus_soap_message_handle_get_attr(
215 callback_handle->message,
216 "AddOperationInputParameter");
217 6 globus_assert(input);
218
219 6 result = globus_operation_table_get_operation(
220 ServiceGroupTestService_descriptor.operations,
221 "Add",
222 (void **)&invoke_function);
223 6 if(result != GLOBUS_SUCCESS)
224 {
225 0 goto fault_exit;
226 }
227
228
229 6 result = wssg_AddResponseType_init_contents(
230 &output);
231 6 if(result != GLOBUS_SUCCESS)
232 {
233 0 goto fault_exit;
234 }
235 6 result = xsd_any_init_contents(&fault);
236 6 if(result != GLOBUS_SUCCESS)
237 {
238 0 goto fault_exit;
239 }
240 6 result = invoke_function(
241 callback_handle->engine,
242 callback_handle->message,
243 &ServiceGroupTestService_descriptor,
244 input,
245 &output,
246 &fault);
247
248
249 6 fault_exit:
250
251 6 if(fault.value && fault.element)
252 {
253 0 result = globus_service_session_begin_response(
254 callback_handle->message);
255 0 if(result != GLOBUS_SUCCESS)
256 {
257 0 goto exit;
258 }
259
260 0 soap_fault.faultcode = "Server";
261 0 soap_fault.faultstring =
262 "An error occurred while processing the message";
263 0 soap_fault.faultactor = NULL;
264 0 soap_fault.detail = &fault;
265
266 0 result = globus_service_session_serialize_fault_response(
267 callback_handle->message, &soap_fault);
268 0 if(result != GLOBUS_SUCCESS)
269 {
270 0 goto exit;
271 }
272
273 0 xsd_any_destroy_contents(soap_fault.detail);
274
275 0 globus_soap_message_handle_set_attr(
276 callback_handle->message,
277 WSADDR_ACTION_RESPONSE_KEY,
278 globus_soap_message_attr_copy_string,
279 globus_libc_free,
280 WSADDRESSING_FAULT_NS);
281 }
282 6 else if(result != GLOBUS_SUCCESS)
283 {
284 globus_result_t local_result;
285 0 local_result = globus_service_session_begin_response(
286 callback_handle->message);
287 0 if(local_result != GLOBUS_SUCCESS)
288 {
289 0 result = local_result;
290 0 goto exit;
291 }
292
293 0 soap_fault.faultcode = "Server";
294 0 soap_fault.faultstring = globus_error_print_friendly(
295 globus_error_get(result));
296 0 result = GLOBUS_SUCCESS;
297 0 soap_fault.faultactor = NULL;
298 0 soap_fault.detail = NULL;
299 0 result = globus_service_session_serialize_fault_response(
300 callback_handle->message, &soap_fault);
301 0 if(result != GLOBUS_SUCCESS)
302 {
303 0 goto exit;
304 }
305
306 0 globus_soap_message_handle_set_attr(
307 callback_handle->message,
308 WSADDR_ACTION_RESPONSE_KEY,
309 globus_soap_message_attr_copy_string,
310 globus_libc_free,
311 WSADDRESSING_FAULT_NS);
312 }
313 else
314 {
315 6 result = globus_service_session_begin_response(
316 callback_handle->message);
317 6 if(result != GLOBUS_SUCCESS)
318 {
319 0 goto exit;
320 }
321
322 6 element_qname.local = "AddResponse";
323 6 element_qname.Namespace = "http://docs.oasis-open.org/wsrf/sg-2";
324
325 6 result = wssg_AddResponseType_serialize(
326 &element_qname,
327 &output,
328 callback_handle->message,
329 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
330 6 if(result != GLOBUS_SUCCESS)
331 {
332 0 goto exit;
333 }
334
335 6 result = globus_service_session_end_response(
336 callback_handle->message);
337 6 if(result != GLOBUS_SUCCESS)
338 {
339 0 goto exit;
340 }
341
342 6 wssg_AddResponseType_destroy_contents(
343 &output);
344
345 6 globus_soap_message_handle_set_attr(
346 callback_handle->message,
347 WSADDR_ACTION_RESPONSE_KEY,
348 globus_soap_message_attr_copy_string,
349 globus_libc_free,
350 "http://docs.oasis-open.org/wsrf/sgw-2/ServiceGroupRegistration/AddResponse");
351 }
352
353 6 exit:
354
355 6 callback_handle->callback(
356 result,
357 callback_handle->args);
358
359 6 globus_libc_free(callback_handle);
360
361 6 ServiceGroupTestServiceDebugExit();
362 6 }
363
364 static
365 globus_result_t
366 Add_invoke(
367 globus_service_engine_t engine,
368 globus_soap_message_handle_t message,
369 globus_service_response_t * response,
370 globus_operation_invoke_callback_func_t invoke_callback,
371 void * args)
372 6 {
373 Add_callback_handle_t * callback_handle;
374 6 globus_result_t result = GLOBUS_SUCCESS;
375 GlobusFuncName(ServiceGroupTestPortType_Add);
376 6 ServiceGroupTestServiceDebugEnter();
377
378 6 callback_handle = malloc(sizeof(Add_callback_handle_t));
379 6 if(!callback_handle)
380 {
381 0 result = GlobusSoapMessageErrorOutOfMemory;
382 0 goto exit;
383 }
384 6 callback_handle->engine = engine;
385 6 callback_handle->message = message;
386 6 callback_handle->callback = invoke_callback;
387 6 callback_handle->args = args;
388
389 6 result = globus_callback_register_oneshot(
390 NULL,
391 &globus_i_reltime_zero,
392 Add_invoke_callback,
393 callback_handle);
394
395 6 exit:
396 6 ServiceGroupTestServiceDebugExit();
397 6 return result;
398 }
399
400 static
401 globus_service_operation_descriptor_t
402 Add_operation_descriptor =
403 {
404 Add_deserialize,
405 Add_invoke,
406 };
407
408 static
409 globus_operation_provider_descriptor_t Add_descriptor =
410 {
411 &ServiceGroupTestPortType_Add_op_qname,
412 "Add",
413 (void *)ServiceGroupTestPortType_Add_impl,
414 NULL
415 };
416
417
418 xsd_QName ServiceGroupTestPortType_GetCurrentMessage_op_qname =
419 {
420 "http://localhost:8080/wsrf/services/ServiceGroupTestService"
421 "GetCurrentMessage"
422 };
423
424 xsd_QName ServiceGroupTestPortType_GetCurrentMessage_input_qname =
425 {
426 "http://docs.oasis-open.org/wsn/b-2",
427 "GetCurrentMessage"
428 };
429
430 typedef globus_result_t (* GetCurrentMessage_invoke_func_t) (
431 globus_service_engine_t engine,
432 globus_soap_message_handle_t message,
433 globus_service_descriptor_t * descriptor,
434 wsnt_GetCurrentMessageType * input,
435 wsnt_GetCurrentMessageResponseType * output,
436 xsd_any * fault);
437
438 typedef struct GetCurrentMessage_callback_handle_s
439 {
440 globus_service_engine_t engine;
441 globus_soap_message_handle_t message;
442 globus_operation_invoke_callback_func_t callback;
443 void * args;
444 } GetCurrentMessage_callback_handle_t;
445
446 static
447 void
448 GetCurrentMessage_deserialize_callback(
449 void * handle)
450 0 {
451 GetCurrentMessage_callback_handle_t * callback_handle;
452 0 globus_result_t result = GLOBUS_SUCCESS;
453 struct globus_soap_message_fault_s soap_fault;
454 GetCurrentMessage_invoke_func_t invoke_function;
455 0 wsnt_GetCurrentMessageType * input = NULL;
456 GlobusFuncName(GetCurrentMessage_deserialize_callback);
457 0 ServiceGroupTestServiceDebugEnter();
458
459 0 callback_handle = (GetCurrentMessage_callback_handle_t *) handle;
460
461 0 result = globus_operation_table_get_operation(
462 ServiceGroupTestService_descriptor.operations,
463 "GetCurrentMessage",
464 (void **)&invoke_function);
465 0 if(result != GLOBUS_SUCCESS)
466 {
467 0 goto exit;
468 }
469
470 0 result = wsnt_GetCurrentMessageType_init(
471 &input);
472 0 if(result != GLOBUS_SUCCESS)
473 {
474 0 goto exit;
475 }
476
477 0 result = wsnt_GetCurrentMessageType_deserialize(
478 &ServiceGroupTestPortType_GetCurrentMessage_input_qname,
479 input,
480 callback_handle->message,
481 0);
482 0 if(result != GLOBUS_SUCCESS)
483 {
484 0 goto free_exit;
485 }
486
487 0 result = globus_soap_message_handle_set_attr(
488 callback_handle->message,
489 "GetCurrentMessageOperationInputParameter",
490 wsnt_GetCurrentMessageType_info.copy,
491 wsnt_GetCurrentMessageType_info.destroy,
492 (void *)input);
493 if(result != GLOBUS_SUCCESS)
494 {
495 0 goto free_exit;
496 }
497
498 0 free_exit:
499 0 wsnt_GetCurrentMessageType_destroy(input);
500
501 0 exit:
502 0 callback_handle->callback(
503 result,
504 callback_handle->args);
505
506 0 free(callback_handle);
507 0 ServiceGroupTestServiceDebugExit();
508 0 }
509 /* GetCurrentMessage_deserialize_callback() */
510
511 static
512 globus_result_t
513 GetCurrentMessage_deserialize(
514 globus_service_engine_t engine,
515 globus_soap_message_handle_t message,
516 globus_operation_invoke_callback_func_t invoke_callback,
517 void * args)
518 0 {
519 GetCurrentMessage_callback_handle_t * callback_handle;
520 0 globus_result_t result = GLOBUS_SUCCESS;
521 GlobusFuncName(GetCurrentMessage_deserialize);
522 0 ServiceGroupTestServiceDebugEnter();
523
524 0 callback_handle = malloc(sizeof(GetCurrentMessage_callback_handle_t));
525 0 globus_assert_string(callback_handle,
526 "Memory allocation failed "
527 "for GetCurrentMessage callback handle");
528
529 0 callback_handle->engine = engine;
530 0 callback_handle->message = message;
531 0 callback_handle->callback = invoke_callback;
532 0 callback_handle->args = args;
533
534 0 result = globus_callback_register_oneshot(
535 NULL,
536 &globus_i_reltime_zero,
537 GetCurrentMessage_deserialize_callback,
538 callback_handle);
539
540 0 ServiceGroupTestServiceDebugExit();
541 0 return result;
542 }
543
544 static
545 void
546 GetCurrentMessage_invoke_callback(
547 void * handle)
548 0 {
549 GetCurrentMessage_callback_handle_t * callback_handle;
550 0 globus_result_t result = GLOBUS_SUCCESS;
551 struct globus_soap_message_fault_s soap_fault;
552 GetCurrentMessage_invoke_func_t invoke_function;
553 wsnt_GetCurrentMessageType * input;
554 wsnt_GetCurrentMessageResponseType output;
555 xsd_QName element_qname;
556 xsd_any fault;
557
558 GlobusFuncName(GetCurrentMessage_invoke_callback);
559 0 ServiceGroupTestServiceDebugEnter();
560
561 0 callback_handle = (GetCurrentMessage_callback_handle_t *) handle;
562
563 0 input = globus_soap_message_handle_get_attr(
564 callback_handle->message,
565 "GetCurrentMessageOperationInputParameter");
566 0 globus_assert(input);
567
568 0 result = globus_operation_table_get_operation(
569 ServiceGroupTestService_descriptor.operations,
570 "GetCurrentMessage",
571 (void **)&invoke_function);
572 0 if(result != GLOBUS_SUCCESS)
573 {
574 0 goto fault_exit;
575 }
576
577
578 0 result = wsnt_GetCurrentMessageResponseType_init_contents(
579 &output);
580 0 if(result != GLOBUS_SUCCESS)
581 {
582 0 goto fault_exit;
583 }
584 0 result = xsd_any_init_contents(&fault);
585 0 if(result != GLOBUS_SUCCESS)
586 {
587 0 goto fault_exit;
588 }
589 0 result = invoke_function(
590 callback_handle->engine,
591 callback_handle->message,
592 &ServiceGroupTestService_descriptor,
593 input,
594 &output,
595 &fault);
596
597
598 0 fault_exit:
599
600 0 if(fault.value && fault.element)
601 {
602 0 result = globus_service_session_begin_response(
603 callback_handle->message);
604 0 if(result != GLOBUS_SUCCESS)
605 {
606 0 goto exit;
607 }
608
609 0 soap_fault.faultcode = "Server";
610 0 soap_fault.faultstring =
611 "An error occurred while processing the message";
612 0 soap_fault.faultactor = NULL;
613 0 soap_fault.detail = &fault;
614
615 0 result = globus_service_session_serialize_fault_response(
616 callback_handle->message, &soap_fault);
617 0 if(result != GLOBUS_SUCCESS)
618 {
619 0 goto exit;
620 }
621
622 0 xsd_any_destroy_contents(soap_fault.detail);
623
624 0 globus_soap_message_handle_set_attr(
625 callback_handle->message,
626 WSADDR_ACTION_RESPONSE_KEY,
627 globus_soap_message_attr_copy_string,
628 globus_libc_free,
629 WSADDRESSING_FAULT_NS);
630 }
631 0 else if(result != GLOBUS_SUCCESS)
632 {
633 globus_result_t local_result;
634 0 local_result = globus_service_session_begin_response(
635 callback_handle->message);
636 0 if(local_result != GLOBUS_SUCCESS)
637 {
638 0 result = local_result;
639 0 goto exit;
640 }
641
642 0 soap_fault.faultcode = "Server";
643 0 soap_fault.faultstring = globus_error_print_friendly(
644 globus_error_get(result));
645 0 result = GLOBUS_SUCCESS;
646 0 soap_fault.faultactor = NULL;
647 0 soap_fault.detail = NULL;
648 0 result = globus_service_session_serialize_fault_response(
649 callback_handle->message, &soap_fault);
650 0 if(result != GLOBUS_SUCCESS)
651 {
652 0 goto exit;
653 }
654
655 0 globus_soap_message_handle_set_attr(
656 callback_handle->message,
657 WSADDR_ACTION_RESPONSE_KEY,
658 globus_soap_message_attr_copy_string,
659 globus_libc_free,
660 WSADDRESSING_FAULT_NS);
661 }
662 else
663 {
664 0 result = globus_service_session_begin_response(
665 callback_handle->message);
666 0 if(result != GLOBUS_SUCCESS)
667 {
668 0 goto exit;
669 }
670
671 0 element_qname.local = "GetCurrentMessageResponse";
672 0 element_qname.Namespace = "http://docs.oasis-open.org/wsn/b-2";
673
674 0 result = wsnt_GetCurrentMessageResponseType_serialize(
675 &element_qname,
676 &output,
677 callback_handle->message,
678 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
679 0 if(result != GLOBUS_SUCCESS)
680 {
681 0 goto exit;
682 }
683
684 0 result = globus_service_session_end_response(
685 callback_handle->message);
686 0 if(result != GLOBUS_SUCCESS)
687 {
688 0 goto exit;
689 }
690
691 0 wsnt_GetCurrentMessageResponseType_destroy_contents(
692 &output);
693
694 0 globus_soap_message_handle_set_attr(
695 callback_handle->message,
696 WSADDR_ACTION_RESPONSE_KEY,
697 globus_soap_message_attr_copy_string,
698 globus_libc_free,
699 "http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/GetCurrentMessageResponse");
700 }
701
702 0 exit:
703
704 0 callback_handle->callback(
705 result,
706 callback_handle->args);
707
708 0 globus_libc_free(callback_handle);
709
710 0 ServiceGroupTestServiceDebugExit();
711 0 }
712
713 static
714 globus_result_t
715 GetCurrentMessage_invoke(
716 globus_service_engine_t engine,
717 globus_soap_message_handle_t message,
718 globus_service_response_t * response,
719 globus_operation_invoke_callback_func_t invoke_callback,
720 void * args)
721 0 {
722 GetCurrentMessage_callback_handle_t * callback_handle;
723 0 globus_result_t result = GLOBUS_SUCCESS;
724 GlobusFuncName(ServiceGroupTestPortType_GetCurrentMessage);
725 0 ServiceGroupTestServiceDebugEnter();
726
727 0 callback_handle = malloc(sizeof(GetCurrentMessage_callback_handle_t));
728 0 if(!callback_handle)
729 {
730 0 result = GlobusSoapMessageErrorOutOfMemory;
731 0 goto exit;
732 }
733 0 callback_handle->engine = engine;
734 0 callback_handle->message = message;
735 0 callback_handle->callback = invoke_callback;
736 0 callback_handle->args = args;
737
738 0 result = globus_callback_register_oneshot(
739 NULL,
740 &globus_i_reltime_zero,
741 GetCurrentMessage_invoke_callback,
742 callback_handle);
743
744 0 exit:
745 0 ServiceGroupTestServiceDebugExit();
746 0 return result;
747 }
748
749 static
750 globus_service_operation_descriptor_t
751 GetCurrentMessage_operation_descriptor =
752 {
753 GetCurrentMessage_deserialize,
754 GetCurrentMessage_invoke,
755 };
756
757 static
758 globus_operation_provider_descriptor_t GetCurrentMessage_descriptor =
759 {
760 &ServiceGroupTestPortType_GetCurrentMessage_op_qname,
761 "GetCurrentMessage",
762 (void *)ServiceGroupTestPortType_GetCurrentMessage_impl,
763 NULL
764 };
765
766
767 xsd_QName ServiceGroupTestPortType_Subscribe_op_qname =
768 {
769 "http://localhost:8080/wsrf/services/ServiceGroupTestService"
770 "Subscribe"
771 };
772
773 xsd_QName ServiceGroupTestPortType_Subscribe_input_qname =
774 {
775 "http://docs.oasis-open.org/wsn/b-2",
776 "Subscribe"
777 };
778
779 typedef globus_result_t (* Subscribe_invoke_func_t) (
780 globus_service_engine_t engine,
781 globus_soap_message_handle_t message,
782 globus_service_descriptor_t * descriptor,
783 wsnt_SubscribeType * input,
784 wsnt_SubscribeResponseType * output,
785 xsd_any * fault);
786
787 typedef struct Subscribe_callback_handle_s
788 {
789 globus_service_engine_t engine;
790 globus_soap_message_handle_t message;
791 globus_operation_invoke_callback_func_t callback;
792 void * args;
793 } Subscribe_callback_handle_t;
794
795 static
796 void
797 Subscribe_deserialize_callback(
798 void * handle)
799 4 {
800 Subscribe_callback_handle_t * callback_handle;
801 4 globus_result_t result = GLOBUS_SUCCESS;
802 struct globus_soap_message_fault_s soap_fault;
803 Subscribe_invoke_func_t invoke_function;
804 4 wsnt_SubscribeType * input = NULL;
805 GlobusFuncName(Subscribe_deserialize_callback);
806 4 ServiceGroupTestServiceDebugEnter();
807
808 4 callback_handle = (Subscribe_callback_handle_t *) handle;
809
810 4 result = globus_operation_table_get_operation(
811 ServiceGroupTestService_descriptor.operations,
812 "Subscribe",
813 (void **)&invoke_function);
814 4 if(result != GLOBUS_SUCCESS)
815 {
816 0 goto exit;
817 }
818
819 4 result = wsnt_SubscribeType_init(
820 &input);
821 4 if(result != GLOBUS_SUCCESS)
822 {
823 0 goto exit;
824 }
825
826 4 result = wsnt_SubscribeType_deserialize(
827 &ServiceGroupTestPortType_Subscribe_input_qname,
828 input,
829 callback_handle->message,
830 0);
831 4 if(result != GLOBUS_SUCCESS)
832 {
833 0 goto free_exit;
834 }
835
836 4 result = globus_soap_message_handle_set_attr(
837 callback_handle->message,
838 "SubscribeOperationInputParameter",
839 wsnt_SubscribeType_info.copy,
840 wsnt_SubscribeType_info.destroy,
841 (void *)input);
842 if(result != GLOBUS_SUCCESS)
843 {
844 4 goto free_exit;
845 }
846
847 4 free_exit:
848 4 wsnt_SubscribeType_destroy(input);
849
850 4 exit:
851 4 callback_handle->callback(
852 result,
853 callback_handle->args);
854
855 4 free(callback_handle);
856 4 ServiceGroupTestServiceDebugExit();
857 4 }
858 /* Subscribe_deserialize_callback() */
859
860 static
861 globus_result_t
862 Subscribe_deserialize(
863 globus_service_engine_t engine,
864 globus_soap_message_handle_t message,
865 globus_operation_invoke_callback_func_t invoke_callback,
866 void * args)
867 4 {
868 Subscribe_callback_handle_t * callback_handle;
869 4 globus_result_t result = GLOBUS_SUCCESS;
870 GlobusFuncName(Subscribe_deserialize);
871 4 ServiceGroupTestServiceDebugEnter();
872
873 4 callback_handle = malloc(sizeof(Subscribe_callback_handle_t));
874 4 globus_assert_string(callback_handle,
875 "Memory allocation failed "
876 "for Subscribe callback handle");
877
878 4 callback_handle->engine = engine;
879 4 callback_handle->message = message;
880 4 callback_handle->callback = invoke_callback;
881 4 callback_handle->args = args;
882
883 4 result = globus_callback_register_oneshot(
884 NULL,
885 &globus_i_reltime_zero,
886 Subscribe_deserialize_callback,
887 callback_handle);
888
889 4 ServiceGroupTestServiceDebugExit();
890 4 return result;
891 }
892
893 static
894 void
895 Subscribe_invoke_callback(
896 void * handle)
897 4 {
898 Subscribe_callback_handle_t * callback_handle;
899 4 globus_result_t result = GLOBUS_SUCCESS;
900 struct globus_soap_message_fault_s soap_fault;
901 Subscribe_invoke_func_t invoke_function;
902 wsnt_SubscribeType * input;
903 wsnt_SubscribeResponseType output;
904 xsd_QName element_qname;
905 xsd_any fault;
906
907 GlobusFuncName(Subscribe_invoke_callback);
908 4 ServiceGroupTestServiceDebugEnter();
909
910 4 callback_handle = (Subscribe_callback_handle_t *) handle;
911
912 4 input = globus_soap_message_handle_get_attr(
913 callback_handle->message,
914 "SubscribeOperationInputParameter");
915 4 globus_assert(input);
916
917 4 result = globus_operation_table_get_operation(
918 ServiceGroupTestService_descriptor.operations,
919 "Subscribe",
920 (void **)&invoke_function);
921 4 if(result != GLOBUS_SUCCESS)
922 {
923 0 goto fault_exit;
924 }
925
926
927 4 result = wsnt_SubscribeResponseType_init_contents(
928 &output);
929 4 if(result != GLOBUS_SUCCESS)
930 {
931 0 goto fault_exit;
932 }
933 4 result = xsd_any_init_contents(&fault);
934 4 if(result != GLOBUS_SUCCESS)
935 {
936 0 goto fault_exit;
937 }
938 4 result = invoke_function(
939 callback_handle->engine,
940 callback_handle->message,
941 &ServiceGroupTestService_descriptor,
942 input,
943 &output,
944 &fault);
945
946
947 4 fault_exit:
948
949 4 if(fault.value && fault.element)
950 {
951 0 result = globus_service_session_begin_response(
952 callback_handle->message);
953 0 if(result != GLOBUS_SUCCESS)
954 {
955 0 goto exit;
956 }
957
958 0 soap_fault.faultcode = "Server";
959 0 soap_fault.faultstring =
960 "An error occurred while processing the message";
961 0 soap_fault.faultactor = NULL;
962 0 soap_fault.detail = &fault;
963
964 0 result = globus_service_session_serialize_fault_response(
965 callback_handle->message, &soap_fault);
966 0 if(result != GLOBUS_SUCCESS)
967 {
968 0 goto exit;
969 }
970
971 0 xsd_any_destroy_contents(soap_fault.detail);
972
973 0 globus_soap_message_handle_set_attr(
974 callback_handle->message,
975 WSADDR_ACTION_RESPONSE_KEY,
976 globus_soap_message_attr_copy_string,
977 globus_libc_free,
978 WSADDRESSING_FAULT_NS);
979 }
980 4 else if(result != GLOBUS_SUCCESS)
981 {
982 globus_result_t local_result;
983 0 local_result = globus_service_session_begin_response(
984 callback_handle->message);
985 0 if(local_result != GLOBUS_SUCCESS)
986 {
987 0 result = local_result;
988 0 goto exit;
989 }
990
991 0 soap_fault.faultcode = "Server";
992 0 soap_fault.faultstring = globus_error_print_friendly(
993 globus_error_get(result));
994 0 result = GLOBUS_SUCCESS;
995 0 soap_fault.faultactor = NULL;
996 0 soap_fault.detail = NULL;
997 0 result = globus_service_session_serialize_fault_response(
998 callback_handle->message, &soap_fault);
999 0 if(result != GLOBUS_SUCCESS)
1000 {
1001 0 goto exit;
1002 }
1003
1004 0 globus_soap_message_handle_set_attr(
1005 callback_handle->message,
1006 WSADDR_ACTION_RESPONSE_KEY,
1007 globus_soap_message_attr_copy_string,
1008 globus_libc_free,
1009 WSADDRESSING_FAULT_NS);
1010 }
1011 else
1012 {
1013 4 result = globus_service_session_begin_response(
1014 callback_handle->message);
1015 4 if(result != GLOBUS_SUCCESS)
1016 {
1017 0 goto exit;
1018 }
1019
1020 4 element_qname.local = "SubscribeResponse";
1021 4 element_qname.Namespace = "http://docs.oasis-open.org/wsn/b-2";
1022
1023 4 result = wsnt_SubscribeResponseType_serialize(
1024 &element_qname,
1025 &output,
1026 callback_handle->message,
1027 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
1028 4 if(result != GLOBUS_SUCCESS)
1029 {
1030 0 goto exit;
1031 }
1032
1033 4 result = globus_service_session_end_response(
1034 callback_handle->message);
1035 4 if(result != GLOBUS_SUCCESS)
1036 {
1037 0 goto exit;
1038 }
1039
1040 4 wsnt_SubscribeResponseType_destroy_contents(
1041 &output);
1042
1043 4 globus_soap_message_handle_set_attr(
1044 callback_handle->message,
1045 WSADDR_ACTION_RESPONSE_KEY,
1046 globus_soap_message_attr_copy_string,
1047 globus_libc_free,
1048 "http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeResponse");
1049 }
1050
1051 4 exit:
1052
1053 4 callback_handle->callback(
1054 result,
1055 callback_handle->args);
1056
1057 4 globus_libc_free(callback_handle);
1058
1059 4 ServiceGroupTestServiceDebugExit();
1060 4 }
1061
1062 static
1063 globus_result_t
1064 Subscribe_invoke(
1065 globus_service_engine_t engine,
1066 globus_soap_message_handle_t message,
1067 globus_service_response_t * response,
1068 globus_operation_invoke_callback_func_t invoke_callback,
1069 void * args)
1070 4 {
1071 Subscribe_callback_handle_t * callback_handle;
1072 4 globus_result_t result = GLOBUS_SUCCESS;
1073 GlobusFuncName(ServiceGroupTestPortType_Subscribe);
1074 4 ServiceGroupTestServiceDebugEnter();
1075
1076 4 callback_handle = malloc(sizeof(Subscribe_callback_handle_t));
1077 4 if(!callback_handle)
1078 {
1079 0 result = GlobusSoapMessageErrorOutOfMemory;
1080 0 goto exit;
1081 }
1082 4 callback_handle->engine = engine;
1083 4 callback_handle->message = message;
1084 4 callback_handle->callback = invoke_callback;
1085 4 callback_handle->args = args;
1086
1087 4 result = globus_callback_register_oneshot(
1088 NULL,
1089 &globus_i_reltime_zero,
1090 Subscribe_invoke_callback,
1091 callback_handle);
1092
1093 4 exit:
1094 4 ServiceGroupTestServiceDebugExit();
1095 4 return result;
1096 }
1097
1098 static
1099 globus_service_operation_descriptor_t
1100 Subscribe_operation_descriptor =
1101 {
1102 Subscribe_deserialize,
1103 Subscribe_invoke,
1104 };
1105
1106 static
1107 globus_operation_provider_descriptor_t Subscribe_descriptor =
1108 {
1109 &ServiceGroupTestPortType_Subscribe_op_qname,
1110 "Subscribe",
1111 (void *)ServiceGroupTestPortType_Subscribe_impl,
1112 NULL
1113 };
1114
1115
1116 xsd_QName ServiceGroupTestPortType_GetResourceProperty_op_qname =
1117 {
1118 "http://localhost:8080/wsrf/services/ServiceGroupTestService"
1119 "GetResourceProperty"
1120 };
1121
1122 xsd_QName ServiceGroupTestPortType_GetResourceProperty_input_qname =
1123 {
1124 "http://docs.oasis-open.org/wsrf/rp-2",
1125 "GetResourceProperty"
1126 };
1127
1128 typedef globus_result_t (* GetResourceProperty_invoke_func_t) (
1129 globus_service_engine_t engine,
1130 globus_soap_message_handle_t message,
1131 globus_service_descriptor_t * descriptor,
1132 xsd_QName * input,
1133 wsrp_GetResourcePropertyResponseType * output,
1134 xsd_any * fault);
1135
1136 typedef struct GetResourceProperty_callback_handle_s
1137 {
1138 globus_service_engine_t engine;
1139 globus_soap_message_handle_t message;
1140 globus_operation_invoke_callback_func_t callback;
1141 void * args;
1142 } GetResourceProperty_callback_handle_t;
1143
1144 static
1145 void
1146 GetResourceProperty_deserialize_callback(
1147 void * handle)
1148 10 {
1149 GetResourceProperty_callback_handle_t * callback_handle;
1150 10 globus_result_t result = GLOBUS_SUCCESS;
1151 struct globus_soap_message_fault_s soap_fault;
1152 GetResourceProperty_invoke_func_t invoke_function;
1153 10 xsd_QName * input = NULL;
1154 GlobusFuncName(GetResourceProperty_deserialize_callback);
1155 10 ServiceGroupTestServiceDebugEnter();
1156
1157 10 callback_handle = (GetResourceProperty_callback_handle_t *) handle;
1158
1159 10 result = globus_operation_table_get_operation(
1160 ServiceGroupTestService_descriptor.operations,
1161 "GetResourceProperty",
1162 (void **)&invoke_function);
1163 10 if(result != GLOBUS_SUCCESS)
1164 {
1165 0 goto exit;
1166 }
1167
1168 10 result = xsd_QName_init(
1169 &input);
1170 10 if(result != GLOBUS_SUCCESS)
1171 {
1172 0 goto exit;
1173 }
1174
1175 10 result = xsd_QName_deserialize(
1176 &ServiceGroupTestPortType_GetResourceProperty_input_qname,
1177 input,
1178 callback_handle->message,
1179 0);
1180 10 if(result != GLOBUS_SUCCESS)
1181 {
1182 0 goto free_exit;
1183 }
1184
1185 10 result = globus_soap_message_handle_set_attr(
1186 callback_handle->message,
1187 "GetResourcePropertyOperationInputParameter",
1188 xsd_QName_info.copy,
1189 xsd_QName_info.destroy,
1190 (void *)input);
1191 if(result != GLOBUS_SUCCESS)
1192 {
1193 10 goto free_exit;
1194 }
1195
1196 10 free_exit:
1197 10 xsd_QName_destroy(input);
1198
1199 10 exit:
1200 10 callback_handle->callback(
1201 result,
1202 callback_handle->args);
1203
1204 10 free(callback_handle);
1205 10 ServiceGroupTestServiceDebugExit();
1206 10 }
1207 /* GetResourceProperty_deserialize_callback() */
1208
1209 static
1210 globus_result_t
1211 GetResourceProperty_deserialize(
1212 globus_service_engine_t engine,
1213 globus_soap_message_handle_t message,
1214 globus_operation_invoke_callback_func_t invoke_callback,
1215 void * args)
1216 10 {
1217 GetResourceProperty_callback_handle_t * callback_handle;
1218 10 globus_result_t result = GLOBUS_SUCCESS;
1219 GlobusFuncName(GetResourceProperty_deserialize);
1220 10 ServiceGroupTestServiceDebugEnter();
1221
1222 10 callback_handle = malloc(sizeof(GetResourceProperty_callback_handle_t));
1223 10 globus_assert_string(callback_handle,
1224 "Memory allocation failed "
1225 "for GetResourceProperty callback handle");
1226
1227 10 callback_handle->engine = engine;
1228 10 callback_handle->message = message;
1229 10 callback_handle->callback = invoke_callback;
1230 10 callback_handle->args = args;
1231
1232 10 result = globus_callback_register_oneshot(
1233 NULL,
1234 &globus_i_reltime_zero,
1235 GetResourceProperty_deserialize_callback,
1236 callback_handle);
1237
1238 10 ServiceGroupTestServiceDebugExit();
1239 10 return result;
1240 }
1241
1242 static
1243 void
1244 GetResourceProperty_invoke_callback(
1245 void * handle)
1246 10 {
1247 GetResourceProperty_callback_handle_t * callback_handle;
1248 10 globus_result_t result = GLOBUS_SUCCESS;
1249 struct globus_soap_message_fault_s soap_fault;
1250 GetResourceProperty_invoke_func_t invoke_function;
1251 xsd_QName * input;
1252 wsrp_GetResourcePropertyResponseType output;
1253 xsd_QName element_qname;
1254 xsd_any fault;
1255
1256 GlobusFuncName(GetResourceProperty_invoke_callback);
1257 10 ServiceGroupTestServiceDebugEnter();
1258
1259 10 callback_handle = (GetResourceProperty_callback_handle_t *) handle;
1260
1261 10 input = globus_soap_message_handle_get_attr(
1262 callback_handle->message,
1263 "GetResourcePropertyOperationInputParameter");
1264 10 globus_assert(input);
1265
1266 10 result = globus_operation_table_get_operation(
1267 ServiceGroupTestService_descriptor.operations,
1268 "GetResourceProperty",
1269 (void **)&invoke_function);
1270 10 if(result != GLOBUS_SUCCESS)
1271 {
1272 0 goto fault_exit;
1273 }
1274
1275
1276 10 result = wsrp_GetResourcePropertyResponseType_init_contents(
1277 &output);
1278 10 if(result != GLOBUS_SUCCESS)
1279 {
1280 0 goto fault_exit;
1281 }
1282 10 result = xsd_any_init_contents(&fault);
1283 10 if(result != GLOBUS_SUCCESS)
1284 {
1285 0 goto fault_exit;
1286 }
1287 10 result = invoke_function(
1288 callback_handle->engine,
1289 callback_handle->message,
1290 &ServiceGroupTestService_descriptor,
1291 input,
1292 &output,
1293 &fault);
1294
1295
1296 10 fault_exit:
1297
1298 10 if(fault.value && fault.element)
1299 {
1300 0 result = globus_service_session_begin_response(
1301 callback_handle->message);
1302 0 if(result != GLOBUS_SUCCESS)
1303 {
1304 0 goto exit;
1305 }
1306
1307 0 soap_fault.faultcode = "Server";
1308 0 soap_fault.faultstring =
1309 "An error occurred while processing the message";
1310 0 soap_fault.faultactor = NULL;
1311 0 soap_fault.detail = &fault;
1312
1313 0 result = globus_service_session_serialize_fault_response(
1314 callback_handle->message, &soap_fault);
1315 0 if(result != GLOBUS_SUCCESS)
1316 {
1317 0 goto exit;
1318 }
1319
1320 0 xsd_any_destroy_contents(soap_fault.detail);
1321
1322 0 globus_soap_message_handle_set_attr(
1323 callback_handle->message,
1324 WSADDR_ACTION_RESPONSE_KEY,
1325 globus_soap_message_attr_copy_string,
1326 globus_libc_free,
1327 WSADDRESSING_FAULT_NS);
1328 }
1329 10 else if(result != GLOBUS_SUCCESS)
1330 {
1331 globus_result_t local_result;
1332 0 local_result = globus_service_session_begin_response(
1333 callback_handle->message);
1334 0 if(local_result != GLOBUS_SUCCESS)
1335 {
1336 0 result = local_result;
1337 0 goto exit;
1338 }
1339
1340 0 soap_fault.faultcode = "Server";
1341 0 soap_fault.faultstring = globus_error_print_friendly(
1342 globus_error_get(result));
1343 0 result = GLOBUS_SUCCESS;
1344 0 soap_fault.faultactor = NULL;
1345 0 soap_fault.detail = NULL;
1346 0 result = globus_service_session_serialize_fault_response(
1347 callback_handle->message, &soap_fault);
1348 0 if(result != GLOBUS_SUCCESS)
1349 {
1350 0 goto exit;
1351 }
1352
1353 0 globus_soap_message_handle_set_attr(
1354 callback_handle->message,
1355 WSADDR_ACTION_RESPONSE_KEY,
1356 globus_soap_message_attr_copy_string,
1357 globus_libc_free,
1358 WSADDRESSING_FAULT_NS);
1359 }
1360 else
1361 {
1362 10 result = globus_service_session_begin_response(
1363 callback_handle->message);
1364 10 if(result != GLOBUS_SUCCESS)
1365 {
1366 0 goto exit;
1367 }
1368
1369 10 element_qname.local = "GetResourcePropertyResponse";
1370 10 element_qname.Namespace = "http://docs.oasis-open.org/wsrf/rp-2";
1371
1372 10 result = wsrp_GetResourcePropertyResponseType_serialize(
1373 &element_qname,
1374 &output,
1375 callback_handle->message,
1376 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
1377 10 if(result != GLOBUS_SUCCESS)
1378 {
1379 0 goto exit;
1380 }
1381
1382 10 result = globus_service_session_end_response(
1383 callback_handle->message);
1384 10 if(result != GLOBUS_SUCCESS)
1385 {
1386 0 goto exit;
1387 }
1388
1389 10 wsrp_GetResourcePropertyResponseType_destroy_contents(
1390 &output);
1391
1392 10 globus_soap_message_handle_set_attr(
1393 callback_handle->message,
1394 WSADDR_ACTION_RESPONSE_KEY,
1395 globus_soap_message_attr_copy_string,
1396 globus_libc_free,
1397 "http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyResponse");
1398 }
1399
1400 10 exit:
1401
1402 10 callback_handle->callback(
1403 result,
1404 callback_handle->args);
1405
1406 10 globus_libc_free(callback_handle);
1407
1408 10 ServiceGroupTestServiceDebugExit();
1409 10 }
1410
1411 static
1412 globus_result_t
1413 GetResourceProperty_invoke(
1414 globus_service_engine_t engine,
1415 globus_soap_message_handle_t message,
1416 globus_service_response_t * response,
1417 globus_operation_invoke_callback_func_t invoke_callback,
1418 void * args)
1419 10 {
1420 GetResourceProperty_callback_handle_t * callback_handle;
1421 10 globus_result_t result = GLOBUS_SUCCESS;
1422 GlobusFuncName(ServiceGroupTestPortType_GetResourceProperty);
1423 10 ServiceGroupTestServiceDebugEnter();
1424
1425 10 callback_handle = malloc(sizeof(GetResourceProperty_callback_handle_t));
1426 10 if(!callback_handle)
1427 {
1428 0 result = GlobusSoapMessageErrorOutOfMemory;
1429 0 goto exit;
1430 }
1431 10 callback_handle->engine = engine;
1432 10 callback_handle->message = message;
1433 10 callback_handle->callback = invoke_callback;
1434 10 callback_handle->args = args;
1435
1436 10 result = globus_callback_register_oneshot(
1437 NULL,
1438 &globus_i_reltime_zero,
1439 GetResourceProperty_invoke_callback,
1440 callback_handle);
1441
1442 10 exit:
1443 10 ServiceGroupTestServiceDebugExit();
1444 10 return result;
1445 }
1446
1447 static
1448 globus_service_operation_descriptor_t
1449 GetResourceProperty_operation_descriptor =
1450 {
1451 GetResourceProperty_deserialize,
1452 GetResourceProperty_invoke,
1453 };
1454
1455 static
1456 globus_operation_provider_descriptor_t GetResourceProperty_descriptor =
1457 {
1458 &ServiceGroupTestPortType_GetResourceProperty_op_qname,
1459 "GetResourceProperty",
1460 (void *)ServiceGroupTestPortType_GetResourceProperty_impl,
1461 NULL
1462 };
1463
1464
1465 xsd_QName ServiceGroupTestPortType_CreateServiceGroup_op_qname =
1466 {
1467 "http://localhost:8080/wsrf/services/ServiceGroupTestService"
1468 "CreateServiceGroup"
1469 };
1470
1471 xsd_QName ServiceGroupTestPortType_CreateServiceGroup_input_qname =
1472 {
1473 "http://www.globus.org/namespaces/2007/06/ServiceGroupTest",
1474 "CreateServiceGroup"
1475 };
1476
1477 typedef globus_result_t (* CreateServiceGroup_invoke_func_t) (
1478 globus_service_engine_t engine,
1479 globus_soap_message_handle_t message,
1480 globus_service_descriptor_t * descriptor,
1481 sgtest_CreateServiceGroupType * input,
1482 sgtest_CreateServiceGroupResponseType * output,
1483 xsd_any * fault);
1484
1485 typedef struct CreateServiceGroup_callback_handle_s
1486 {
1487 globus_service_engine_t engine;
1488 globus_soap_message_handle_t message;
1489 globus_operation_invoke_callback_func_t callback;
1490 void * args;
1491 } CreateServiceGroup_callback_handle_t;
1492
1493 static
1494 void
1495 CreateServiceGroup_deserialize_callback(
1496 void * handle)
1497 8 {
1498 CreateServiceGroup_callback_handle_t * callback_handle;
1499 8 globus_result_t result = GLOBUS_SUCCESS;
1500 struct globus_soap_message_fault_s soap_fault;
1501 CreateServiceGroup_invoke_func_t invoke_function;
1502 8 sgtest_CreateServiceGroupType * input = NULL;
1503 GlobusFuncName(CreateServiceGroup_deserialize_callback);
1504 8 ServiceGroupTestServiceDebugEnter();
1505
1506 8 callback_handle = (CreateServiceGroup_callback_handle_t *) handle;
1507
1508 8 result = globus_operation_table_get_operation(
1509 ServiceGroupTestService_descriptor.operations,
1510 "CreateServiceGroup",
1511 (void **)&invoke_function);
1512 8 if(result != GLOBUS_SUCCESS)
1513 {
1514 0 goto exit;
1515 }
1516
1517 8 result = sgtest_CreateServiceGroupType_init(
1518 &input);
1519 8 if(result != GLOBUS_SUCCESS)
1520 {
1521 0 goto exit;
1522 }
1523
1524 8 result = sgtest_CreateServiceGroupType_deserialize(
1525 &ServiceGroupTestPortType_CreateServiceGroup_input_qname,
1526 input,
1527 callback_handle->message,
1528 0);
1529 8 if(result != GLOBUS_SUCCESS)
1530 {
1531 0 goto free_exit;
1532 }
1533
1534 8 result = globus_soap_message_handle_set_attr(
1535 callback_handle->message,
1536 "CreateServiceGroupOperationInputParameter",
1537 sgtest_CreateServiceGroupType_info.copy,
1538 sgtest_CreateServiceGroupType_info.destroy,
1539 (void *)input);
1540 if(result != GLOBUS_SUCCESS)
1541 {
1542 8 goto free_exit;
1543 }
1544
1545 8 free_exit:
1546 8 sgtest_CreateServiceGroupType_destroy(input);
1547
1548 8 exit:
1549 8 callback_handle->callback(
1550 result,
1551 callback_handle->args);
1552
1553 8 free(callback_handle);
1554 8 ServiceGroupTestServiceDebugExit();
1555 8 }
1556 /* CreateServiceGroup_deserialize_callback() */
1557
1558 static
1559 globus_result_t
1560 CreateServiceGroup_deserialize(
1561 globus_service_engine_t engine,
1562 globus_soap_message_handle_t message,
1563 globus_operation_invoke_callback_func_t invoke_callback,
1564 void * args)
1565 8 {
1566 CreateServiceGroup_callback_handle_t * callback_handle;
1567 8 globus_result_t result = GLOBUS_SUCCESS;
1568 GlobusFuncName(CreateServiceGroup_deserialize);
1569 8 ServiceGroupTestServiceDebugEnter();
1570
1571 8 callback_handle = malloc(sizeof(CreateServiceGroup_callback_handle_t));
1572 8 globus_assert_string(callback_handle,
1573 "Memory allocation failed "
1574 "for CreateServiceGroup callback handle");
1575
1576 8 callback_handle->engine = engine;
1577 8 callback_handle->message = message;
1578 8 callback_handle->callback = invoke_callback;
1579 8 callback_handle->args = args;
1580
1581 8 result = globus_callback_register_oneshot(
1582 NULL,
1583 &globus_i_reltime_zero,
1584 CreateServiceGroup_deserialize_callback,
1585 callback_handle);
1586
1587 8 ServiceGroupTestServiceDebugExit();
1588 8 return result;
1589 }
1590
1591 static
1592 void
1593 CreateServiceGroup_invoke_callback(
1594 void * handle)
1595 8 {
1596 CreateServiceGroup_callback_handle_t * callback_handle;
1597 8 globus_result_t result = GLOBUS_SUCCESS;
1598 struct globus_soap_message_fault_s soap_fault;
1599 CreateServiceGroup_invoke_func_t invoke_function;
1600 sgtest_CreateServiceGroupType * input;
1601 sgtest_CreateServiceGroupResponseType output;
1602 xsd_QName element_qname;
1603 xsd_any fault;
1604
1605 GlobusFuncName(CreateServiceGroup_invoke_callback);
1606 8 ServiceGroupTestServiceDebugEnter();
1607
1608 8 callback_handle = (CreateServiceGroup_callback_handle_t *) handle;
1609
1610 8 input = globus_soap_message_handle_get_attr(
1611 callback_handle->message,
1612 "CreateServiceGroupOperationInputParameter");
1613 8 globus_assert(input);
1614
1615 8 result = globus_operation_table_get_operation(
1616 ServiceGroupTestService_descriptor.operations,
1617 "CreateServiceGroup",
1618 (void **)&invoke_function);
1619 8 if(result != GLOBUS_SUCCESS)
1620 {
1621 0 goto fault_exit;
1622 }
1623
1624
1625 8 result = sgtest_CreateServiceGroupResponseType_init_contents(
1626 &output);
1627 8 if(result != GLOBUS_SUCCESS)
1628 {
1629 0 goto fault_exit;
1630 }
1631 8 result = xsd_any_init_contents(&fault);
1632 8 if(result != GLOBUS_SUCCESS)
1633 {
1634 0 goto fault_exit;
1635 }
1636 8 result = invoke_function(
1637 callback_handle->engine,
1638 callback_handle->message,
1639 &ServiceGroupTestService_descriptor,
1640 input,
1641 &output,
1642 &fault);
1643
1644
1645 8 fault_exit:
1646
1647 8 if(fault.value && fault.element)
1648 {
1649 0 result = globus_service_session_begin_response(
1650 callback_handle->message);
1651 0 if(result != GLOBUS_SUCCESS)
1652 {
1653 0 goto exit;
1654 }
1655
1656 0 soap_fault.faultcode = "Server";
1657 0 soap_fault.faultstring =
1658 "An error occurred while processing the message";
1659 0 soap_fault.faultactor = NULL;
1660 0 soap_fault.detail = &fault;
1661
1662 0 result = globus_service_session_serialize_fault_response(
1663 callback_handle->message, &soap_fault);
1664 0 if(result != GLOBUS_SUCCESS)
1665 {
1666 0 goto exit;
1667 }
1668
1669 0 xsd_any_destroy_contents(soap_fault.detail);
1670
1671 0 globus_soap_message_handle_set_attr(
1672 callback_handle->message,
1673 WSADDR_ACTION_RESPONSE_KEY,
1674 globus_soap_message_attr_copy_string,
1675 globus_libc_free,
1676 WSADDRESSING_FAULT_NS);
1677 }
1678 8 else if(result != GLOBUS_SUCCESS)
1679 {
1680 globus_result_t local_result;
1681 0 local_result = globus_service_session_begin_response(
1682 callback_handle->message);
1683 0 if(local_result != GLOBUS_SUCCESS)
1684 {
1685 0 result = local_result;
1686 0 goto exit;
1687 }
1688
1689 0 soap_fault.faultcode = "Server";
1690 0 soap_fault.faultstring = globus_error_print_friendly(
1691 globus_error_get(result));
1692 0 result = GLOBUS_SUCCESS;
1693 0 soap_fault.faultactor = NULL;
1694 0 soap_fault.detail = NULL;
1695 0 result = globus_service_session_serialize_fault_response(
1696 callback_handle->message, &soap_fault);
1697 0 if(result != GLOBUS_SUCCESS)
1698 {
1699 0 goto exit;
1700 }
1701
1702 0 globus_soap_message_handle_set_attr(
1703 callback_handle->message,
1704 WSADDR_ACTION_RESPONSE_KEY,
1705 globus_soap_message_attr_copy_string,
1706 globus_libc_free,
1707 WSADDRESSING_FAULT_NS);
1708 }
1709 else
1710 {
1711 8 result = globus_service_session_begin_response(
1712 callback_handle->message);
1713 8 if(result != GLOBUS_SUCCESS)
1714 {
1715 0 goto exit;
1716 }
1717
1718 8 element_qname.local = "CreateServiceGroupResponse";
1719 8 element_qname.Namespace = "http://www.globus.org/namespaces/2007/06/ServiceGroupTest";
1720
1721 8 result = sgtest_CreateServiceGroupResponseType_serialize(
1722 &element_qname,
1723 &output,
1724 callback_handle->message,
1725 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
1726 8 if(result != GLOBUS_SUCCESS)
1727 {
1728 0 goto exit;
1729 }
1730
1731 8 result = globus_service_session_end_response(
1732 callback_handle->message);
1733 8 if(result != GLOBUS_SUCCESS)
1734 {
1735 0 goto exit;
1736 }
1737
1738 8 sgtest_CreateServiceGroupResponseType_destroy_contents(
1739 &output);
1740
1741 8 globus_soap_message_handle_set_attr(
1742 callback_handle->message,
1743 WSADDR_ACTION_RESPONSE_KEY,
1744 globus_soap_message_attr_copy_string,
1745 globus_libc_free,
1746 "http://www.globus.org/namespaces/2007/06/ServiceGroupTest/ServiceGroupTestPortType/CreateServiceGroupResponse");
1747 }
1748
1749 8 exit:
1750
1751 8 callback_handle->callback(
1752 result,
1753 callback_handle->args);
1754
1755 8 globus_libc_free(callback_handle);
1756
1757 8 ServiceGroupTestServiceDebugExit();
1758 8 }
1759
1760 static
1761 globus_result_t
1762 CreateServiceGroup_invoke(
1763 globus_service_engine_t engine,
1764 globus_soap_message_handle_t message,
1765 globus_service_response_t * response,
1766 globus_operation_invoke_callback_func_t invoke_callback,
1767 void * args)
1768 8 {
1769 CreateServiceGroup_callback_handle_t * callback_handle;
1770 8 globus_result_t result = GLOBUS_SUCCESS;
1771 GlobusFuncName(ServiceGroupTestPortType_CreateServiceGroup);
1772 8 ServiceGroupTestServiceDebugEnter();
1773
1774 8 callback_handle = malloc(sizeof(CreateServiceGroup_callback_handle_t));
1775 8 if(!callback_handle)
1776 {
1777 0 result = GlobusSoapMessageErrorOutOfMemory;
1778 0 goto exit;
1779 }
1780 8 callback_handle->engine = engine;
1781 8 callback_handle->message = message;
1782 8 callback_handle->callback = invoke_callback;
1783 8 callback_handle->args = args;
1784
1785 8 result = globus_callback_register_oneshot(
1786 NULL,
1787 &globus_i_reltime_zero,
1788 CreateServiceGroup_invoke_callback,
1789 callback_handle);
1790
1791 8 exit:
1792 8 ServiceGroupTestServiceDebugExit();
1793 8 return result;
1794 }
1795
1796 static
1797 globus_service_operation_descriptor_t
1798 CreateServiceGroup_operation_descriptor =
1799 {
1800 CreateServiceGroup_deserialize,
1801 CreateServiceGroup_invoke,
1802 };
1803
1804 static
1805 globus_operation_provider_descriptor_t CreateServiceGroup_descriptor =
1806 {
1807 &ServiceGroupTestPortType_CreateServiceGroup_op_qname,
1808 "CreateServiceGroup",
1809 (void *)ServiceGroupTestPortType_CreateServiceGroup_impl,
1810 NULL
1811 };
1812
1813
1814
1815 static xsd_QName ServiceGroupTestService_l_wsrp_GetResourceProperty_qname;
1816 static xsd_QName ServiceGroupTestService_l_wsrp_GetMultipleResourceProperties_qname;
1817 static xsd_QName ServiceGroupTestService_l_wsrp_SetResourceProperties_qname;
1818 static xsd_QName ServiceGroupTestService_l_wsrp_QueryResourceProperties_qname;
1819 static xsd_QName ServiceGroupTestService_l_wsrl_Destroy_qname;
1820 static xsd_QName ServiceGroupTestService_l_wsrl_SetTerminationTime_qname;
1821 static xsd_QName ServiceGroupTestService_l_wsnt_Subscribe_qname;
1822 static xsd_QName ServiceGroupTestService_l_wsnt_GetCurrentMessage_qname;
1823
1824 static
1825 int
1826 ServiceGroupTestService_activate()
1827 50 {
1828 50 globus_result_t result = GLOBUS_SUCCESS;
1829 50 int rc = 0;
1830 GlobusFuncName(ServiceGroupTestService_activate);
1831
1832 50 rc = globus_module_activate(GLOBUS_COMMON_MODULE);
1833 50 if(rc != GLOBUS_SUCCESS)
1834 {
1835 0 return rc;
1836 }
1837
1838 50 GlobusDebugInit(SERVICEGROUPTESTSERVICE, INFO DEBUG TRACE WARN ERROR);
1839
1840 50 rc = globus_module_activate(GLOBUS_SOAP_MESSAGE_MODULE);
1841 50 if(rc != GLOBUS_SUCCESS)
1842 {
1843 0 return rc;
1844 }
1845
1846 50 ServiceGroupTestServiceDebugEnter();
1847
1848 50 result = globus_module_activate(GLOBUS_WSRF_RESOURCE_MODULE);
1849 50 if (result != GLOBUS_SUCCESS)
1850 {
1851 0 rc = (int) result;
1852 0 goto exit;
1853 }
1854
1855 50 result = globus_module_activate(GLOBUS_WSRF_CORE_TOOLS_MODULE);
1856 50 if (result != GLOBUS_SUCCESS)
1857 {
1858 0 rc = (int) result;
1859 0 goto exit;
1860 }
1861
1862 50 rc = globus_extension_activate(
1863 "globus_wsrp_GetResourceProperty_provider");
1864 50 if(rc != GLOBUS_SUCCESS)
1865 {
1866 0 goto deactivate_resource_out;
1867 }
1868
1869 50 rc = globus_extension_activate(
1870 "globus_wsrp_GetMultipleResourceProperties_provider");
1871 50 if (rc != GLOBUS_SUCCESS)
1872 {
1873 0 goto deactivate_getrp;
1874 }
1875
1876 50 rc = globus_extension_activate(
1877 "globus_wsrp_SetResourceProperties_provider");
1878 50 if (rc != GLOBUS_SUCCESS)
1879 {
1880 0 goto deactivate_getmrp;
1881 }
1882
1883 50 rc = globus_extension_activate(
1884 "globus_wsrp_QueryResourceProperties_provider");
1885 50 if (rc != GLOBUS_SUCCESS)
1886 {
1887 0 goto deactivate_setrp;
1888 }
1889
1890 50 rc = globus_extension_activate(
1891 "globus_wsrl_ImmediateResourceTermination_provider");
1892 50 if (rc != GLOBUS_SUCCESS)
1893 {
1894 0 goto deactivate_queryrp;
1895 }
1896
1897 50 rc = globus_extension_activate(
1898 "globus_wsrl_ScheduledResourceTermination_provider");
1899 50 if (rc != GLOBUS_SUCCESS)
1900 {
1901 0 goto deactivate_irt;
1902 }
1903
1904 50 rc = globus_extension_activate(
1905 "globus_wsnt_NotificationProducer_provider");
1906 50 if (rc != GLOBUS_SUCCESS)
1907 {
1908 0 goto deactivate_srt;
1909 }
1910
1911 50 if(GLOBUS_GLOBAL_TYPE_REGISTRY != NULL)
1912 {
1913 50 result = ServiceGroupTestService_registry_add_types(
1914 GLOBUS_GLOBAL_TYPE_REGISTRY);
1915 50 if(result != GLOBUS_SUCCESS)
1916 {
1917 0 rc = (int) result;
1918 0 goto deactivate_nrt;
1919 }
1920 }
1921
1922 50 rc = globus_hashtable_init(
1923 &ServiceGroupTestService_descriptor.op_mapper,
1924 10,
1925 xsd_QName_hash,
1926 xsd_QName_keyeq);
1927 50 if(rc != GLOBUS_SUCCESS)
1928 {
1929 0 goto clear_global_registry;
1930 }
1931
1932 50 globus_mutex_init(&ServiceGroupTestService_descriptor.mutex, NULL);
1933
1934 50 rc = globus_hashtable_insert(
1935 &ServiceGroupTestService_descriptor.op_mapper,
1936 (void *)&ServiceGroupTestPortType_Add_input_qname,
1937 (void *)&Add_operation_descriptor);
1938 50 if(rc != GLOBUS_SUCCESS)
1939 {
1940 0 goto remove_Add_op;
1941 }
1942
1943 50 rc = globus_hashtable_insert(
1944 &ServiceGroupTestService_descriptor.op_mapper,
1945 (void *)&ServiceGroupTestPortType_GetCurrentMessage_input_qname,
1946 (void *)&GetCurrentMessage_operation_descriptor);
1947 50 if(rc != GLOBUS_SUCCESS)
1948 {
1949 0 goto remove_GetCurrentMessage_op;
1950 }
1951
1952 50 rc = globus_hashtable_insert(
1953 &ServiceGroupTestService_descriptor.op_mapper,
1954 (void *)&ServiceGroupTestPortType_Subscribe_input_qname,
1955 (void *)&Subscribe_operation_descriptor);
1956 50 if(rc != GLOBUS_SUCCESS)
1957 {
1958 0 goto remove_Subscribe_op;
1959 }
1960
1961 50 rc = globus_hashtable_insert(
1962 &ServiceGroupTestService_descriptor.op_mapper,
1963 (void *)&ServiceGroupTestPortType_GetResourceProperty_input_qname,
1964 (void *)&GetResourceProperty_operation_descriptor);
1965 50 if(rc != GLOBUS_SUCCESS)
1966 {
1967 0 goto remove_GetResourceProperty_op;
1968 }
1969
1970 50 rc = globus_hashtable_insert(
1971 &ServiceGroupTestService_descriptor.op_mapper,
1972 (void *)&ServiceGroupTestPortType_CreateServiceGroup_input_qname,
1973 (void *)&CreateServiceGroup_operation_descriptor);
1974 50 if(rc != GLOBUS_SUCCESS)
1975 {
1976 0 goto remove_CreateServiceGroup_op;
1977 }
1978
1979
1980 50 result = globus_operation_table_init(
1981 &ServiceGroupTestService_descriptor.operations,
1982 ServiceGroupTestService_service_qname.Namespace);
1983 50 if(result != GLOBUS_SUCCESS)
1984 {
1985 0 rc = (int) result;
1986 0 goto remove_all_ops;
1987 }
1988
1989
1990 50 result = globus_extension_registry_add(
1991 GLOBUS_OPERATION_PROVIDER_REGISTRY,
1992 (void *)&ServiceGroupTestPortType_Add_op_qname,
1993 GlobusExtensionMyModule(ServiceGroupTestService),
1994 (void *)&Add_descriptor);
1995 50 if(result != GLOBUS_SUCCESS)
1996 {
1997 0 rc = (int) result;
1998 0 goto remove_Add_op_provider;
1999 }
2000
2001 50 result = globus_operation_table_add_default_provider(
2002 ServiceGroupTestService_descriptor.operations,
2003 &ServiceGroupTestPortType_Add_op_qname,
2004 &Add_descriptor);
2005 50 if(result != GLOBUS_SUCCESS)
2006 {
2007 0 rc = (int) result;
2008 0 goto remove_Add_op_provider;
2009 }
2010
2011 50 result = globus_extension_registry_add(
2012 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2013 (void *)&ServiceGroupTestPortType_GetCurrentMessage_op_qname,
2014 GlobusExtensionMyModule(ServiceGroupTestService),
2015 (void *)&GetCurrentMessage_descriptor);
2016 50 if(result != GLOBUS_SUCCESS)
2017 {
2018 0 rc = (int) result;
2019 0 goto remove_GetCurrentMessage_op_provider;
2020 }
2021
2022 50 result = globus_operation_table_add_default_provider(
2023 ServiceGroupTestService_descriptor.operations,
2024 &ServiceGroupTestPortType_GetCurrentMessage_op_qname,
2025 &GetCurrentMessage_descriptor);
2026 50 if(result != GLOBUS_SUCCESS)
2027 {
2028 0 rc = (int) result;
2029 0 goto remove_GetCurrentMessage_op_provider;
2030 }
2031
2032 50 result = globus_extension_registry_add(
2033 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2034 (void *)&ServiceGroupTestPortType_Subscribe_op_qname,
2035 GlobusExtensionMyModule(ServiceGroupTestService),
2036 (void *)&Subscribe_descriptor);
2037 50 if(result != GLOBUS_SUCCESS)
2038 {
2039 0 rc = (int) result;
2040 0 goto remove_Subscribe_op_provider;
2041 }
2042
2043 50 result = globus_operation_table_add_default_provider(
2044 ServiceGroupTestService_descriptor.operations,
2045 &ServiceGroupTestPortType_Subscribe_op_qname,
2046 &Subscribe_descriptor);
2047 50 if(result != GLOBUS_SUCCESS)
2048 {
2049 0 rc = (int) result;
2050 0 goto remove_Subscribe_op_provider;
2051 }
2052
2053 50 result = globus_extension_registry_add(
2054 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2055 (void *)&ServiceGroupTestPortType_GetResourceProperty_op_qname,
2056 GlobusExtensionMyModule(ServiceGroupTestService),
2057 (void *)&GetResourceProperty_descriptor);
2058 50 if(result != GLOBUS_SUCCESS)
2059 {
2060 0 rc = (int) result;
2061 0 goto remove_GetResourceProperty_op_provider;
2062 }
2063
2064 50 result = globus_operation_table_add_default_provider(
2065 ServiceGroupTestService_descriptor.operations,
2066 &ServiceGroupTestPortType_GetResourceProperty_op_qname,
2067 &GetResourceProperty_descriptor);
2068 50 if(result != GLOBUS_SUCCESS)
2069 {
2070 0 rc = (int) result;
2071 0 goto remove_GetResourceProperty_op_provider;
2072 }
2073
2074 50 result = globus_extension_registry_add(
2075 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2076 (void *)&ServiceGroupTestPortType_CreateServiceGroup_op_qname,
2077 GlobusExtensionMyModule(ServiceGroupTestService),
2078 (void *)&CreateServiceGroup_descriptor);
2079 50 if(result != GLOBUS_SUCCESS)
2080 {
2081 0 rc = (int) result;
2082 0 goto remove_CreateServiceGroup_op_provider;
2083 }
2084
2085 50 result = globus_operation_table_add_default_provider(
2086 ServiceGroupTestService_descriptor.operations,
2087 &ServiceGroupTestPortType_CreateServiceGroup_op_qname,
2088 &CreateServiceGroup_descriptor);
2089 50 if(result != GLOBUS_SUCCESS)
2090 {
2091 0 rc = (int) result;
2092 0 goto remove_CreateServiceGroup_op_provider;
2093 }
2094
2095 50 result = globus_operation_table_add_provider(
2096 ServiceGroupTestService_descriptor.operations,
2097 &ServiceGroupTestService_l_wsrp_GetResourceProperty_qname);
2098 50 if (result != GLOBUS_SUCCESS)
2099 {
2100 0 rc = (int) result;
2101 0 goto remove_op_providers;
2102 }
2103
2104 50 result = globus_operation_table_add_provider(
2105 ServiceGroupTestService_descriptor.operations,
2106 &ServiceGroupTestService_l_wsrp_GetMultipleResourceProperties_qname);
2107 50 if (result != GLOBUS_SUCCESS)
2108 {
2109 0 rc = (int) result;
2110
2111 0 goto remove_op_providers;
2112 }
2113
2114 50 result = globus_operation_table_add_provider(
2115 ServiceGroupTestService_descriptor.operations,
2116 &ServiceGroupTestService_l_wsrp_SetResourceProperties_qname);
2117 50 if (result != GLOBUS_SUCCESS)
2118 {
2119 0 rc = (int) result;
2120
2121 0 goto remove_op_providers;
2122 }
2123
2124 50 result = globus_operation_table_add_provider(
2125 ServiceGroupTestService_descriptor.operations,
2126 &ServiceGroupTestService_l_wsrp_QueryResourceProperties_qname);
2127 50 if (result != GLOBUS_SUCCESS)
2128 {
2129 0 rc = (int) result;
2130
2131 0 goto remove_op_providers;
2132 }
2133
2134 50 result = globus_operation_table_add_provider(
2135 ServiceGroupTestService_descriptor.operations,
2136 &ServiceGroupTestService_l_wsrl_Destroy_qname);
2137 50 if (result != GLOBUS_SUCCESS)
2138 {
2139 0 rc = (int) result;
2140
2141 0 goto remove_op_providers;
2142 }
2143
2144 50 result = globus_operation_table_add_provider(
2145 ServiceGroupTestService_descriptor.operations,
2146 &ServiceGroupTestService_l_wsrl_SetTerminationTime_qname);
2147 50 if (result != GLOBUS_SUCCESS)
2148 {
2149 0 rc = (int) result;
2150
2151 0 goto remove_op_providers;
2152 }
2153
2154 50 result = globus_operation_table_add_provider(
2155 ServiceGroupTestService_descriptor.operations,
2156 &ServiceGroupTestService_l_wsnt_Subscribe_qname);
2157 50 if (result != GLOBUS_SUCCESS)
2158 {
2159 0 rc = (int) result;
2160
2161 0 goto remove_op_providers;
2162 }
2163
2164 50 result = globus_operation_table_add_provider(
2165 ServiceGroupTestService_descriptor.operations,
2166 &ServiceGroupTestService_l_wsnt_GetCurrentMessage_qname);
2167 50 if (result != GLOBUS_SUCCESS)
2168 {
2169 0 rc = (int) result;
2170
2171 0 goto remove_op_providers;
2172 }
2173
2174 50 rc = globus_extension_registry_add(
2175 GLOBUS_SERVICE_REGISTRY,
2176 (void *)ServiceGroupTestService_descriptor.path,
2177 GlobusExtensionMyModule(ServiceGroupTestService),
2178 &ServiceGroupTestService_descriptor);
2179 50 if(rc != GLOBUS_SUCCESS)
2180 {
2181 0 goto remove_op_providers;
2182 }
2183
2184 50 result = ServiceGroupTestService_init(&ServiceGroupTestService_descriptor);
2185 50 if(result != GLOBUS_SUCCESS)
2186 {
2187 0 rc = (int) result;
2188 0 goto service_extension_remove;
2189 }
2190
2191 50 goto exit;
2192
2193 0 service_extension_remove:
2194 0 globus_extension_registry_remove(
2195 GLOBUS_SERVICE_REGISTRY,
2196 (void *)ServiceGroupTestService_descriptor.path);
2197 0 remove_op_providers:
2198
2199 0 globus_extension_registry_remove(
2200 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2201 (void *)&ServiceGroupTestPortType_Add_op_qname);
2202 0 remove_Add_op_provider:
2203
2204 0 globus_extension_registry_remove(
2205 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2206 (void *)&ServiceGroupTestPortType_GetCurrentMessage_op_qname);
2207 0 remove_GetCurrentMessage_op_provider:
2208
2209 0 globus_extension_registry_remove(
2210 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2211 (void *)&ServiceGroupTestPortType_Subscribe_op_qname);
2212 0 remove_Subscribe_op_provider:
2213
2214 0 globus_extension_registry_remove(
2215 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2216 (void *)&ServiceGroupTestPortType_GetResourceProperty_op_qname);
2217 0 remove_GetResourceProperty_op_provider:
2218
2219 0 globus_extension_registry_remove(
2220 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2221 (void *)&ServiceGroupTestPortType_CreateServiceGroup_op_qname);
2222 0 remove_CreateServiceGroup_op_provider:
2223
2224 0 destroy_op_table:
2225 0 globus_operation_table_destroy(ServiceGroupTestService_descriptor.operations);
2226 0 remove_all_ops:
2227
2228 0 globus_hashtable_remove(
2229 &ServiceGroupTestService_descriptor.op_mapper,
2230 (void *)&ServiceGroupTestPortType_Add_input_qname);
2231 0 remove_Add_op:
2232
2233 0 globus_hashtable_remove(
2234 &ServiceGroupTestService_descriptor.op_mapper,
2235 (void *)&ServiceGroupTestPortType_GetCurrentMessage_input_qname);
2236 0 remove_GetCurrentMessage_op:
2237
2238 0 globus_hashtable_remove(
2239 &ServiceGroupTestService_descriptor.op_mapper,
2240 (void *)&ServiceGroupTestPortType_Subscribe_input_qname);
2241 0 remove_Subscribe_op:
2242
2243 0 globus_hashtable_remove(
2244 &ServiceGroupTestService_descriptor.op_mapper,
2245 (void *)&ServiceGroupTestPortType_GetResourceProperty_input_qname);
2246 0 remove_GetResourceProperty_op:
2247
2248 0 globus_hashtable_remove(
2249 &ServiceGroupTestService_descriptor.op_mapper,
2250 (void *)&ServiceGroupTestPortType_CreateServiceGroup_input_qname);
2251 0 remove_CreateServiceGroup_op:
2252
2253 0 destroy_mutex:
2254 0 globus_mutex_destroy(&ServiceGroupTestService_descriptor.mutex);
2255 0 clear_service_registry:
2256 0 destroy_service_registry:
2257 0 destroy_op_mapper:
2258 0 globus_hashtable_destroy(&ServiceGroupTestService_descriptor.op_mapper);
2259 0 clear_global_registry:
2260 0 if(GLOBUS_GLOBAL_TYPE_REGISTRY != NULL)
2261 {
2262 0 ServiceGroupTestService_registry_remove_types(
2263 GLOBUS_GLOBAL_TYPE_REGISTRY);
2264 }
2265 0 deactivate_nrt:
2266 0 globus_extension_deactivate(
2267 "globus_wsnt_NotificationProducer_provider");
2268 0 deactivate_srt:
2269 0 globus_extension_deactivate(
2270 "globus_wsrl_ScheduledResourceTermination_provider");
2271 0 deactivate_irt:
2272 0 globus_extension_deactivate(
2273 "globus_wsrl_ImmediateResourceTermination_provider");
2274 0 deactivate_queryrp:
2275 0 globus_extension_deactivate(
2276 "globus_wsrp_QueryResourceProperties_provider");
2277 0 deactivate_setrp:
2278 0 globus_extension_deactivate("globus_wsrp_SetResourceProperties_provider");
2279 0 deactivate_getmrp:
2280 0 globus_extension_deactivate("globus_wsrp_GetMultipleResourceProperties_provider");
2281 0 deactivate_getrp:
2282 0 globus_extension_deactivate("globus_wsrp_GetResourceProperty_provider");
2283 0 deactivate_resource_out:
2284 0 globus_module_deactivate(GLOBUS_WSRF_RESOURCE_MODULE);
2285
2286 50 exit:
2287 50 ServiceGroupTestServiceDebugExit();
2288 50 return rc;
2289 }
2290
2291 static
2292 int
2293 ServiceGroupTestService_deactivate()
2294 42 {
2295 42 globus_result_t result = GLOBUS_SUCCESS;
2296 42 int rc = 0;
2297
2298 42 result = ServiceGroupTestService_finalize(&ServiceGroupTestService_descriptor);
2299 42 if(result != GLOBUS_SUCCESS)
2300 {
2301 0 return GLOBUS_FAILURE;
2302 }
2303
2304 42 globus_extension_registry_remove(
2305 GLOBUS_SERVICE_REGISTRY,
2306 (void *)ServiceGroupTestService_descriptor.path);
2307
2308 42 globus_extension_registry_remove(
2309 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2310 (void *)&ServiceGroupTestPortType_Add_op_qname);
2311
2312 42 globus_extension_registry_remove(
2313 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2314 (void *)&ServiceGroupTestPortType_GetCurrentMessage_op_qname);
2315
2316 42 globus_extension_registry_remove(
2317 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2318 (void *)&ServiceGroupTestPortType_Subscribe_op_qname);
2319
2320 42 globus_extension_registry_remove(
2321 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2322 (void *)&ServiceGroupTestPortType_GetResourceProperty_op_qname);
2323
2324 42 globus_extension_registry_remove(
2325 GLOBUS_OPERATION_PROVIDER_REGISTRY,
2326 (void *)&ServiceGroupTestPortType_CreateServiceGroup_op_qname);
2327
2328 42 globus_operation_table_destroy(ServiceGroupTestService_descriptor.operations);
2329
2330
2331 42 globus_hashtable_remove(
2332 &ServiceGroupTestService_descriptor.op_mapper,
2333 (void *)&ServiceGroupTestPortType_Add_input_qname);
2334
2335 42 globus_hashtable_remove(
2336 &ServiceGroupTestService_descriptor.op_mapper,
2337 (void *)&ServiceGroupTestPortType_GetCurrentMessage_input_qname);
2338
2339 42 globus_hashtable_remove(
2340 &ServiceGroupTestService_descriptor.op_mapper,
2341 (void *)&ServiceGroupTestPortType_Subscribe_input_qname);
2342
2343 42 globus_hashtable_remove(
2344 &ServiceGroupTestService_descriptor.op_mapper,
2345 (void *)&ServiceGroupTestPortType_GetResourceProperty_input_qname);
2346
2347 42 globus_hashtable_remove(
2348 &ServiceGroupTestService_descriptor.op_mapper,
2349 (void *)&ServiceGroupTestPortType_CreateServiceGroup_input_qname);
2350
2351
2352 42 globus_mutex_destroy(&ServiceGroupTestService_descriptor.mutex);
2353
2354
2355 42 globus_hashtable_destroy(&ServiceGroupTestService_descriptor.op_mapper);
2356
2357 42 if(GLOBUS_GLOBAL_TYPE_REGISTRY != NULL)
2358 {
2359 42 ServiceGroupTestService_registry_remove_types(
2360 GLOBUS_GLOBAL_TYPE_REGISTRY);
2361 }
2362
2363 42 globus_extension_deactivate(
2364 "globus_wsnt_NotificationProducer_provider");
2365 42 globus_extension_deactivate(
2366 "globus_wsrl_ScheduledResourceTermination_provider");
2367 42 globus_extension_deactivate(
2368 "globus_wsrl_ImmediateResourceTermination_provider");
2369 42 globus_extension_deactivate(
2370 "globus_wsrp_QueryResourceProperties_provider");
2371 42 globus_extension_deactivate("globus_wsrp_SetResourceProperties_provider");
2372 42 globus_extension_deactivate(
2373 "globus_wsrp_GetMultipleResourceProperties_provider");
2374 42 globus_extension_deactivate("globus_wsrp_GetResourceProperty_provider");
2375 42 globus_module_deactivate(GLOBUS_WSRF_RESOURCE_MODULE);
2376
2377 42 rc = globus_module_deactivate(GLOBUS_SOAP_MESSAGE_MODULE);
2378 42 if(rc != GLOBUS_SUCCESS)
2379 {
2380 0 return rc;
2381 }
2382
2383 42 GlobusDebugDestroy(SERVICEGROUPTESTSERVICE);
2384
2385 42 rc = globus_module_deactivate(GLOBUS_COMMON_MODULE);
2386 42 if(rc != GLOBUS_SUCCESS)
2387 {
2388 0 return rc;
2389 }
2390
2391 42 return rc;
2392 }
2393
2394 #define WSRP_PROVIDER_NS "http://docs.oasis-open.org/wsrf/rpw-2/providers"
2395
2396 static xsd_QName ServiceGroupTestService_l_wsrp_GetResourceProperty_qname =
2397 {
2398 WSRP_PROVIDER_NS,
2399 "GetResourceProperty"
2400 };
2401
2402 static xsd_QName ServiceGroupTestService_l_wsrp_GetMultipleResourceProperties_qname =
2403 {
2404 WSRP_PROVIDER_NS,
2405 "GetMultipleResourceProperties"
2406 };
2407
2408 static xsd_QName ServiceGroupTestService_l_wsrp_SetResourceProperties_qname =
2409 {
2410 WSRP_PROVIDER_NS,
2411 "SetResourceProperties"
2412 };
2413
2414 static xsd_QName ServiceGroupTestService_l_wsrp_QueryResourceProperties_qname =
2415 {
2416 WSRP_PROVIDER_NS,
2417 "QueryResourceProperties"
2418 };
2419
2420 #define WSRL_PROVIDER_NS "http://docs.oasis-open.org/wsrf/rlw-2/providers"
2421
2422 static xsd_QName ServiceGroupTestService_l_wsrl_Destroy_qname =
2423 {
2424 WSRL_PROVIDER_NS,
2425 "Destroy"
2426 };
2427
2428 static xsd_QName ServiceGroupTestService_l_wsrl_SetTerminationTime_qname =
2429 {
2430 WSRL_PROVIDER_NS,
2431 "SetTerminationTime"
2432 };
2433
2434 #define WSNT_PROVIDER_NS "http://docs.oasis-open.org/wsn/bw-2/providers"
2435
2436 static xsd_QName ServiceGroupTestService_l_wsnt_Subscribe_qname =
2437 {
2438 WSNT_PROVIDER_NS,
2439 "Subscribe"
2440 };
2441
2442 static xsd_QName ServiceGroupTestService_l_wsnt_GetCurrentMessage_qname =
2443 {
2444 WSNT_PROVIDER_NS,
2445 "GetCurrentMessage"