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 "globus_soap_message.h"
18 #include "CounterService.h"
19 #include "CounterService_skeleton.h"
20 #include "CounterService_internal_skeleton.h"
21 #include "version.h"
22 #include "globus_soap_message_fault.h"
23 #include "globus_ws_addressing.h"
24 #include "globus_wsrf_resource.h"
25
26 static
27 int
28 CounterService_module_activate();
29
30 static
31 int
32 CounterService_module_deactivate();
33
34 globus_module_descriptor_t CounterService_module =
35 {
36 "CounterService_module",
37 CounterService_module_activate,
38 CounterService_module_deactivate,
39 NULL,
40 NULL,
41 &local_version
42 };
43
44 0 GlobusDebugDefine(COUNTERSERVICE);
45
46 static
47 int
48 CounterService_module_activate()
49 3 {
50 3 int rc = 0;
51
52 3 rc = globus_module_activate(GLOBUS_COMMON_MODULE);
53 3 if(rc != GLOBUS_SUCCESS)
54 {
55 0 return rc;
56 }
57
58 3 GlobusDebugInit(COUNTERSERVICE, INFO DEBUG TRACE WARN ERROR);
59
60 3 rc = globus_module_activate(GLOBUS_SOAP_MESSAGE_MODULE);
61 3 if(rc != GLOBUS_SUCCESS)
62 {
63 0 return rc;
64 }
65
66 3 return rc;
67 }
68
69 static
70 int
71 CounterService_module_deactivate()
72 0 {
73 0 int rc = 0;
74
75 0 rc = globus_module_deactivate(GLOBUS_SOAP_MESSAGE_MODULE);
76 0 if(rc != GLOBUS_SUCCESS)
77 {
78 0 return rc;
79 }
80
81 0 GlobusDebugDestroy(COUNTERSERVICE);
82
83 0 rc = globus_module_deactivate(GLOBUS_COMMON_MODULE);
84 0 if(rc != GLOBUS_SUCCESS)
85 {
86 0 return rc;
87 }
88
89 0 return rc;
90 }
91
92 GlobusExtensionDeclareModule(CounterService);
93
94 xsd_QName CounterService_service_qname =
95 {
96 "http://counter.com/service",
97 "CounterService"
98 };
99
100 globus_service_descriptor_t CounterService_descriptor =
101 {
102 &CounterService_service_qname,
103 GLOBUS_SERVICE_ENGINE_MODULE_PATH_PREFIX "/" COUNTERSERVICE_BASE_PATH,
104 NULL,
105 NULL,
106 NULL,
107 NULL,
108 globus_resource_id_get_as_string,
109 NULL
110 };
111
112 static
113 int
114 CounterService_activate();
115
116 static
117 int
118 CounterService_deactivate();
119
120 GlobusExtensionDefineModule(CounterService) =
121 {
122 "CounterService",
123 CounterService_activate,
124 CounterService_deactivate,
125 NULL,
126 NULL,
127 &local_version
128 };
129
130
131 xsd_QName CounterPortType_GetCurrentMessage_op_qname =
132 {
133 "http://counter.com",
134 "GetCurrentMessage"
135 };
136
137 xsd_QName CounterPortType_GetCurrentMessage_input_qname =
138 {
139 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd",
140 "GetCurrentMessage"
141 };
142
143 typedef globus_result_t (* GetCurrentMessage_init_func_t) (
144 globus_service_engine_t engine,
145 globus_soap_message_handle_t message,
146 wsnt_GetCurrentMessageType * GetCurrentMessage);
147
148 typedef globus_result_t (* GetCurrentMessage_invoke_func_t) (
149 globus_service_engine_t engine,
150 globus_soap_message_handle_t message,
151 globus_service_descriptor_t * descriptor,
152 wsnt_GetCurrentMessageType * GetCurrentMessage,
153 wsnt_GetCurrentMessageResponseType * GetCurrentMessageResponse,
154 const char ** fault_type_name,
155 void ** fault);
156
157 typedef struct GetCurrentMessage_callback_handle_s
158 {
159 globus_service_engine_t engine;
160 globus_soap_message_handle_t message;
161 globus_operation_invoke_callback_func_t callback;
162 void * args;
163 } GetCurrentMessage_callback_handle_t;
164
165
166 const char * CounterPortType_GetCurrentMessage_fault_strings[COUNTERPORTTYPE_GETCURRENTMESSAGE_TOPICNOTSUPPORTEDFAULT] =
167 {
168 "Unknown",
169 "ResourceUnknownFault",
170 "NoCurrentMessageOnTopicFault",
171 "InvalidTopicExpressionFault",
172 "TopicNotSupportedFault"
173 };
174
175 static
176 CounterPortType_GetCurrentMessage_fault_t
177 GetCurrentMessage_lookup_fault_type(
178 const char * fault_name)
179 0 {
180 CounterPortType_GetCurrentMessage_fault_t fault_type;
181 GlobusFuncName(GetCurrentMessage_lookup_fault_type);
182 0 CounterServiceDebugEnter();
183
184 0 globus_assert(fault_name);
185
186 0 if(!strcmp(fault_name, "ResourceUnknownFault"))
187 {
188 0 fault_type = COUNTERPORTTYPE_GETCURRENTMESSAGE_RESOURCEUNKNOWNFAULT;
189 }
190 0 else if(!strcmp(fault_name, "NoCurrentMessageOnTopicFault"))
191 {
192 0 fault_type = COUNTERPORTTYPE_GETCURRENTMESSAGE_NOCURRENTMESSAGEONTOPICFAULT;
193 }
194 0 else if(!strcmp(fault_name, "InvalidTopicExpressionFault"))
195 {
196 0 fault_type = COUNTERPORTTYPE_GETCURRENTMESSAGE_INVALIDTOPICEXPRESSIONFAULT;
197 }
198 0 else if(!strcmp(fault_name, "TopicNotSupportedFault"))
199 {
200 0 fault_type = COUNTERPORTTYPE_GETCURRENTMESSAGE_TOPICNOTSUPPORTEDFAULT;
201 }
202 else
203 {
204 0 fault_type = COUNTERPORTTYPE_GETCURRENTMESSAGE_UNKNOWN_FAULT;
205 }
206
207 0 CounterServiceDebugExit();
208 0 return fault_type;
209 }
210
211
212
213 static
214 void
215 GetCurrentMessage_deserialize_callback(
216 void * handle)
217 0 {
218 GetCurrentMessage_callback_handle_t * callback_handle;
219 0 globus_result_t result = GLOBUS_SUCCESS;
220 struct globus_soap_message_fault_s soap_fault;
221 GetCurrentMessage_init_func_t init_function;
222 GetCurrentMessage_invoke_func_t invoke_function;
223 wsnt_GetCurrentMessageType * GetCurrentMessage;
224 GlobusFuncName(GetCurrentMessage_deserialize_callback);
225 0 CounterServiceDebugEnter();
226
227 0 callback_handle = (GetCurrentMessage_callback_handle_t *) handle;
228
229 0 result = globus_operation_table_get_operation(
230 CounterService_descriptor.operations,
231 "GetCurrentMessage",
232 (void **)&init_function,
233 (void **)&invoke_function);
234 0 if(result != GLOBUS_SUCCESS)
235 {
236 0 goto exit;
237 }
238
239 0 if(CounterService_descriptor.registry)
240 {
241 0 globus_soap_message_handle_set_registry(
242 callback_handle->message,
243 CounterService_descriptor.registry);
244 }
245
246 0 result = wsnt_GetCurrentMessageType_init(
247 &GetCurrentMessage);
248 0 if(result != GLOBUS_SUCCESS)
249 {
250 0 goto exit;
251 }
252
253 0 if(init_function)
254 {
255 /* do service specific initialization stuff */
256 0 result = init_function(
257 callback_handle->engine,
258 callback_handle->message,
259 GetCurrentMessage);
260 0 if(result != GLOBUS_SUCCESS)
261 {
262 0 goto free_exit;
263 }
264 }
265
266 0 result = wsnt_GetCurrentMessageType_deserialize(
267 &CounterPortType_GetCurrentMessage_input_qname,
268 GetCurrentMessage,
269 callback_handle->message,
270 0);
271 0 if(result != GLOBUS_SUCCESS)
272 {
273 0 goto free_exit;
274 }
275
276 0 result = globus_soap_message_handle_set_attr(
277 callback_handle->message,
278 "GetCurrentMessageOperationInputParameter",
279 wsnt_GetCurrentMessageType_copy_wrapper,
280 wsnt_GetCurrentMessageType_destroy_wrapper,
281 (void *)GetCurrentMessage);
282 if(result != GLOBUS_SUCCESS)
283 {
284 goto free_exit;
285 }
286
287 0 free_exit:
288 0 wsnt_GetCurrentMessageType_destroy(GetCurrentMessage);
289
290 0 exit:
291
292 0 callback_handle->callback(
293 result,
294 callback_handle->args);
295 0 free(callback_handle);
296 0 CounterServiceDebugExit();
297 }
298 /* GetCurrentMessage_deserialize_callback() */
299
300 static
301 globus_result_t
302 GetCurrentMessage_deserialize(
303 globus_service_engine_t engine,
304 globus_soap_message_handle_t message,
305 globus_operation_invoke_callback_func_t invoke_callback,
306 void * args)
307 0 {
308 GetCurrentMessage_callback_handle_t * callback_handle;
309 0 globus_result_t result = GLOBUS_SUCCESS;
310 GlobusFuncName(GetCurrentMessage_deserialize);
311 0 CounterServiceDebugEnter();
312
313 0 callback_handle = malloc(sizeof(GetCurrentMessage_callback_handle_t));
314 0 globus_assert_string(callback_handle,
315 "Memory allocation failed "
316 "for GetCurrentMessage callback handle");
317 0 memset(callback_handle, 0, sizeof(GetCurrentMessage_callback_handle_t));
318
319 0 callback_handle->engine = engine;
320 0 callback_handle->message = message;
321 0 callback_handle->callback = invoke_callback;
322 0 callback_handle->args = args;
323
324 0 result = globus_callback_register_oneshot(
325 NULL,
326 &globus_i_reltime_zero,
327 GetCurrentMessage_deserialize_callback,
328 callback_handle);
329
330 0 CounterServiceDebugExit();
331 0 return result;
332 }
333
334 static
335 void
336 GetCurrentMessage_invoke_callback(
337 void * handle)
338 0 {
339 GetCurrentMessage_callback_handle_t * callback_handle;
340 0 globus_result_t result = GLOBUS_SUCCESS;
341 struct globus_soap_message_fault_s soap_fault;
342 GetCurrentMessage_init_func_t init_function;
343 GetCurrentMessage_invoke_func_t invoke_function;
344 wsnt_GetCurrentMessageType * GetCurrentMessage;
345 wsnt_GetCurrentMessageResponseType GetCurrentMessageResponse;
346 xsd_QName element_qname;
347 0 const char * fault_type_name = NULL;
348 0 CounterPortType_GetCurrentMessage_fault_t fault_type = COUNTERPORTTYPE_GETCURRENTMESSAGE_NOFAULT;
349 0 void * fault = NULL;
350
351 GlobusFuncName(GetCurrentMessage_invoke_callback);
352 0 CounterServiceDebugEnter();
353
354 0 callback_handle = (GetCurrentMessage_callback_handle_t *) handle;
355
356 0 GetCurrentMessage = globus_soap_message_handle_get_attr(
357 callback_handle->message,
358 "GetCurrentMessageOperationInputParameter");
359 0 globus_assert(GetCurrentMessage);
360
361 0 result = globus_operation_table_get_operation(
362 CounterService_descriptor.operations,
363 "GetCurrentMessage",
364 (void **)&init_function,
365 (void **)&invoke_function);
366 0 if(result != GLOBUS_SUCCESS)
367 {
368 0 goto fault_exit;
369 }
370
371
372 0 result = wsnt_GetCurrentMessageResponseType_init_contents(
373 &GetCurrentMessageResponse);
374 0 if(result != GLOBUS_SUCCESS)
375 {
376 0 goto fault_exit;
377 }
378
379 0 result = invoke_function(
380 callback_handle->engine,
381 callback_handle->message,
382 &CounterService_descriptor,
383 GetCurrentMessage,
384 &GetCurrentMessageResponse,
385 &fault_type_name,
386 &fault);
387
388 0 fault_exit:
389
390 0 if(fault && fault_type_name)
391 {
392 0 fault_type = GetCurrentMessage_lookup_fault_type(fault_type_name);
393
394 0 result = globus_service_session_begin_response(
395 callback_handle->message);
396 0 if(result != GLOBUS_SUCCESS)
397 {
398 0 goto exit;
399 }
400
401 0 soap_fault.faultcode = "Server";
402 0 soap_fault.faultstring =
403 "An error occurred while processing the message";
404 0 soap_fault.faultactor = NULL;
405
406 0 switch(fault_type)
407 {
408
409 case COUNTERPORTTYPE_GETCURRENTMESSAGE_RESOURCEUNKNOWNFAULT:
410
411 0 xsd_any_init(&soap_fault.detail);
412 0 soap_fault.detail->any_info = &wsnt_ResourceUnknownFaultType_info;
413 0 xsd_QName_init(&soap_fault.detail->element);
414 0 soap_fault.detail->element->local = "ResourceUnknownFault";
415 0 soap_fault.detail->element->Namespace =
416 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
417 0 soap_fault.detail->value = fault;
418 0 break;
419
420 case COUNTERPORTTYPE_GETCURRENTMESSAGE_NOCURRENTMESSAGEONTOPICFAULT:
421
422 0 xsd_any_init(&soap_fault.detail);
423 0 soap_fault.detail->any_info = &wsnt_NoCurrentMessageOnTopicFaultType_info;
424 0 xsd_QName_init(&soap_fault.detail->element);
425 0 soap_fault.detail->element->local = "NoCurrentMessageOnTopicFault";
426 0 soap_fault.detail->element->Namespace =
427 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
428 0 soap_fault.detail->value = fault;
429 0 break;
430
431 case COUNTERPORTTYPE_GETCURRENTMESSAGE_INVALIDTOPICEXPRESSIONFAULT:
432
433 0 xsd_any_init(&soap_fault.detail);
434 0 soap_fault.detail->any_info = &wsnt_InvalidTopicExpressionFaultType_info;
435 0 xsd_QName_init(&soap_fault.detail->element);
436 0 soap_fault.detail->element->local = "InvalidTopicExpressionFault";
437 0 soap_fault.detail->element->Namespace =
438 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
439 0 soap_fault.detail->value = fault;
440 0 break;
441
442 case COUNTERPORTTYPE_GETCURRENTMESSAGE_TOPICNOTSUPPORTEDFAULT:
443
444 0 xsd_any_init(&soap_fault.detail);
445 0 soap_fault.detail->any_info = &wsnt_TopicNotSupportedFaultType_info;
446 0 xsd_QName_init(&soap_fault.detail->element);
447 0 soap_fault.detail->element->local = "TopicNotSupportedFault";
448 0 soap_fault.detail->element->Namespace =
449 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
450 0 soap_fault.detail->value = fault;
451 0 break;
452
453 default:
454 0 result = CounterServiceErrorReturnedUnknownFault("GetCurrentMessage");
455 0 goto exit;
456 }
457
458 0 result = globus_service_session_serialize_fault_response(
459 callback_handle->message, &soap_fault);
460 0 if(result != GLOBUS_SUCCESS)
461 {
462 0 goto exit;
463 }
464
465 0 soap_fault.detail->element->local = NULL;
466 0 soap_fault.detail->element->Namespace = NULL;
467 0 soap_fault.detail->any_info = NULL;
468 0 xsd_any_destroy(soap_fault.detail);
469
470 0 globus_soap_message_handle_set_attr(
471 callback_handle->message,
472 WSADDR_ACTION_RESPONSE_KEY,
473 globus_soap_message_attr_copy_string,
474 globus_libc_free,
475 WSADDRESSING_FAULT_NS);
476 }
477 0 else if(result != GLOBUS_SUCCESS)
478 {
479 globus_result_t local_result;
480 0 local_result = globus_service_session_begin_response(
481 callback_handle->message);
482 0 if(local_result != GLOBUS_SUCCESS)
483 {
484 0 result = local_result;
485 0 goto exit;
486 }
487
488 0 soap_fault.faultcode = "Server";
489 0 soap_fault.faultstring = globus_error_print_friendly(
490 globus_error_get(result));
491 0 result = GLOBUS_SUCCESS;
492 0 soap_fault.faultactor = NULL;
493 0 soap_fault.detail = NULL;
494 0 result = globus_service_session_serialize_fault_response(
495 callback_handle->message, &soap_fault);
496 0 if(result != GLOBUS_SUCCESS)
497 {
498 0 goto exit;
499 }
500
501 0 globus_soap_message_handle_set_attr(
502 callback_handle->message,
503 WSADDR_ACTION_RESPONSE_KEY,
504 globus_soap_message_attr_copy_string,
505 globus_libc_free,
506 WSADDRESSING_FAULT_NS);
507 }
508 else
509 {
510 0 result = globus_service_session_begin_response(
511 callback_handle->message);
512 0 if(result != GLOBUS_SUCCESS)
513 {
514 0 goto exit;
515 }
516
517 0 element_qname.local = "GetCurrentMessageResponse";
518 0 element_qname.Namespace = "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
519
520 0 result = wsnt_GetCurrentMessageResponseType_serialize(
521 &element_qname,
522 &GetCurrentMessageResponse,
523 callback_handle->message,
524 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
525 0 if(result != GLOBUS_SUCCESS)
526 {
527 0 goto exit;
528 }
529
530 0 result = globus_service_session_end_response(
531 callback_handle->message);
532 0 if(result != GLOBUS_SUCCESS)
533 {
534 0 goto exit;
535 }
536
537 0 wsnt_GetCurrentMessageResponseType_destroy_contents(
538 &GetCurrentMessageResponse);
539
540 0 globus_soap_message_handle_set_attr(
541 callback_handle->message,
542 WSADDR_ACTION_RESPONSE_KEY,
543 globus_soap_message_attr_copy_string,
544 globus_libc_free,
545 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/GetCurrentMessageResponse");
546 }
547
548 0 exit:
549
550 0 callback_handle->callback(
551 result,
552 callback_handle->args);
553
554 0 globus_libc_free(callback_handle);
555
556 0 CounterServiceDebugExit();
557 }
558
559 static
560 globus_result_t
561 GetCurrentMessage_invoke(
562 globus_service_engine_t engine,
563 globus_soap_message_handle_t message,
564 globus_service_response_t * response,
565 globus_operation_invoke_callback_func_t invoke_callback,
566 void * args)
567 0 {
568 GetCurrentMessage_callback_handle_t * callback_handle;
569 0 globus_result_t result = GLOBUS_SUCCESS;
570 GlobusFuncName(CounterPortType_GetCurrentMessage);
571 0 CounterServiceDebugEnter();
572
573 0 callback_handle = malloc(sizeof(GetCurrentMessage_callback_handle_t));
574 0 if(!callback_handle)
575 {
576 0 result = GlobusSoapMessageErrorOutOfMemory;
577 0 goto exit;
578 }
579 0 memset(callback_handle, 0, sizeof(GetCurrentMessage_callback_handle_t));
580
581 0 callback_handle->engine = engine;
582 0 callback_handle->message = message;
583 0 callback_handle->callback = invoke_callback;
584 0 callback_handle->args = args;
585
586 0 result = globus_callback_register_oneshot(
587 NULL,
588 &globus_i_reltime_zero,
589 GetCurrentMessage_invoke_callback,
590 callback_handle);
591
592 0 exit:
593 0 CounterServiceDebugExit();
594 0 return result;
595 }
596
597 static
598 globus_service_operation_descriptor_t
599 GetCurrentMessage_operation_descriptor =
600 {
601 GetCurrentMessage_deserialize,
602 GetCurrentMessage_invoke
603 };
604
605 static
606 globus_operation_provider_descriptor_t GetCurrentMessage_descriptor =
607 {
608 &CounterPortType_GetCurrentMessage_op_qname,
609 "GetCurrentMessage",
610 (void *)CounterPortType_GetCurrentMessage_init,
611 (void *)CounterPortType_GetCurrentMessage_impl,
612 NULL
613 };
614
615
616 xsd_QName CounterPortType_Subscribe_op_qname =
617 {
618 "http://counter.com",
619 "Subscribe"
620 };
621
622 xsd_QName CounterPortType_Subscribe_input_qname =
623 {
624 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd",
625 "Subscribe"
626 };
627
628 typedef globus_result_t (* Subscribe_init_func_t) (
629 globus_service_engine_t engine,
630 globus_soap_message_handle_t message,
631 wsnt_SubscribeType * Subscribe);
632
633 typedef globus_result_t (* Subscribe_invoke_func_t) (
634 globus_service_engine_t engine,
635 globus_soap_message_handle_t message,
636 globus_service_descriptor_t * descriptor,
637 wsnt_SubscribeType * Subscribe,
638 wsnt_SubscribeResponseType * SubscribeResponse,
639 const char ** fault_type_name,
640 void ** fault);
641
642 typedef struct Subscribe_callback_handle_s
643 {
644 globus_service_engine_t engine;
645 globus_soap_message_handle_t message;
646 globus_operation_invoke_callback_func_t callback;
647 void * args;
648 } Subscribe_callback_handle_t;
649
650
651 const char * CounterPortType_Subscribe_fault_strings[COUNTERPORTTYPE_SUBSCRIBE_TOPICNOTSUPPORTEDFAULT] =
652 {
653 "Unknown",
654 "TopicPathDialectUnknownFault",
655 "ResourceUnknownFault",
656 "SubscribeCreationFailedFault",
657 "InvalidTopicExpressionFault",
658 "TopicNotSupportedFault"
659 };
660
661 static
662 CounterPortType_Subscribe_fault_t
663 Subscribe_lookup_fault_type(
664 const char * fault_name)
665 0 {
666 CounterPortType_Subscribe_fault_t fault_type;
667 GlobusFuncName(Subscribe_lookup_fault_type);
668 0 CounterServiceDebugEnter();
669
670 0 globus_assert(fault_name);
671
672 0 if(!strcmp(fault_name, "TopicPathDialectUnknownFault"))
673 {
674 0 fault_type = COUNTERPORTTYPE_SUBSCRIBE_TOPICPATHDIALECTUNKNOWNFAULT;
675 }
676 0 else if(!strcmp(fault_name, "ResourceUnknownFault"))
677 {
678 0 fault_type = COUNTERPORTTYPE_SUBSCRIBE_RESOURCEUNKNOWNFAULT;
679 }
680 0 else if(!strcmp(fault_name, "SubscribeCreationFailedFault"))
681 {
682 0 fault_type = COUNTERPORTTYPE_SUBSCRIBE_SUBSCRIBECREATIONFAILEDFAULT;
683 }
684 0 else if(!strcmp(fault_name, "InvalidTopicExpressionFault"))
685 {
686 0 fault_type = COUNTERPORTTYPE_SUBSCRIBE_INVALIDTOPICEXPRESSIONFAULT;
687 }
688 0 else if(!strcmp(fault_name, "TopicNotSupportedFault"))
689 {
690 0 fault_type = COUNTERPORTTYPE_SUBSCRIBE_TOPICNOTSUPPORTEDFAULT;
691 }
692 else
693 {
694 0 fault_type = COUNTERPORTTYPE_SUBSCRIBE_UNKNOWN_FAULT;
695 }
696
697 0 CounterServiceDebugExit();
698 0 return fault_type;
699 }
700
701
702
703 static
704 void
705 Subscribe_deserialize_callback(
706 void * handle)
707 1 {
708 Subscribe_callback_handle_t * callback_handle;
709 1 globus_result_t result = GLOBUS_SUCCESS;
710 struct globus_soap_message_fault_s soap_fault;
711 Subscribe_init_func_t init_function;
712 Subscribe_invoke_func_t invoke_function;
713 wsnt_SubscribeType * Subscribe;
714 GlobusFuncName(Subscribe_deserialize_callback);
715 1 CounterServiceDebugEnter();
716
717 1 callback_handle = (Subscribe_callback_handle_t *) handle;
718
719 1 result = globus_operation_table_get_operation(
720 CounterService_descriptor.operations,
721 "Subscribe",
722 (void **)&init_function,
723 (void **)&invoke_function);
724 1 if(result != GLOBUS_SUCCESS)
725 {
726 1 goto exit;
727 }
728
729 1 if(CounterService_descriptor.registry)
730 {
731 1 globus_soap_message_handle_set_registry(
732 callback_handle->message,
733 CounterService_descriptor.registry);
734 }
735
736 1 result = wsnt_SubscribeType_init(
737 &Subscribe);
738 1 if(result != GLOBUS_SUCCESS)
739 {
740 1 goto exit;
741 }
742
743 1 if(init_function)
744 {
745 /* do service specific initialization stuff */
746 1 result = init_function(
747 callback_handle->engine,
748 callback_handle->message,
749 Subscribe);
750 1 if(result != GLOBUS_SUCCESS)
751 {
752 1 goto free_exit;
753 }
754 }
755
756 1 result = wsnt_SubscribeType_deserialize(
757 &CounterPortType_Subscribe_input_qname,
758 Subscribe,
759 callback_handle->message,
760 0);
761 1 if(result != GLOBUS_SUCCESS)
762 {
763 1 goto free_exit;
764 }
765
766 1 result = globus_soap_message_handle_set_attr(
767 callback_handle->message,
768 "SubscribeOperationInputParameter",
769 wsnt_SubscribeType_copy_wrapper,
770 wsnt_SubscribeType_destroy_wrapper,
771 (void *)Subscribe);
772 if(result != GLOBUS_SUCCESS)
773 {
774 goto free_exit;
775 }
776
777 1 free_exit:
778 1 wsnt_SubscribeType_destroy(Subscribe);
779
780 1 exit:
781
782 1 callback_handle->callback(
783 result,
784 callback_handle->args);
785 1 free(callback_handle);
786 1 CounterServiceDebugExit();
787 }
788 /* Subscribe_deserialize_callback() */
789
790 static
791 globus_result_t
792 Subscribe_deserialize(
793 globus_service_engine_t engine,
794 globus_soap_message_handle_t message,
795 globus_operation_invoke_callback_func_t invoke_callback,
796 void * args)
797 1 {
798 Subscribe_callback_handle_t * callback_handle;
799 1 globus_result_t result = GLOBUS_SUCCESS;
800 GlobusFuncName(Subscribe_deserialize);
801 1 CounterServiceDebugEnter();
802
803 1 callback_handle = malloc(sizeof(Subscribe_callback_handle_t));
804 1 globus_assert_string(callback_handle,
805 "Memory allocation failed "
806 "for Subscribe callback handle");
807 1 memset(callback_handle, 0, sizeof(Subscribe_callback_handle_t));
808
809 1 callback_handle->engine = engine;
810 1 callback_handle->message = message;
811 1 callback_handle->callback = invoke_callback;
812 1 callback_handle->args = args;
813
814 1 result = globus_callback_register_oneshot(
815 NULL,
816 &globus_i_reltime_zero,
817 Subscribe_deserialize_callback,
818 callback_handle);
819
820 1 CounterServiceDebugExit();
821 1 return result;
822 }
823
824 static
825 void
826 Subscribe_invoke_callback(
827 void * handle)
828 1 {
829 Subscribe_callback_handle_t * callback_handle;
830 1 globus_result_t result = GLOBUS_SUCCESS;
831 struct globus_soap_message_fault_s soap_fault;
832 Subscribe_init_func_t init_function;
833 Subscribe_invoke_func_t invoke_function;
834 wsnt_SubscribeType * Subscribe;
835 wsnt_SubscribeResponseType SubscribeResponse;
836 xsd_QName element_qname;
837 1 const char * fault_type_name = NULL;
838 1 CounterPortType_Subscribe_fault_t fault_type = COUNTERPORTTYPE_SUBSCRIBE_NOFAULT;
839 1 void * fault = NULL;
840
841 GlobusFuncName(Subscribe_invoke_callback);
842 1 CounterServiceDebugEnter();
843
844 1 callback_handle = (Subscribe_callback_handle_t *) handle;
845
846 1 Subscribe = globus_soap_message_handle_get_attr(
847 callback_handle->message,
848 "SubscribeOperationInputParameter");
849 1 globus_assert(Subscribe);
850
851 1 result = globus_operation_table_get_operation(
852 CounterService_descriptor.operations,
853 "Subscribe",
854 (void **)&init_function,
855 (void **)&invoke_function);
856 1 if(result != GLOBUS_SUCCESS)
857 {
858 1 goto fault_exit;
859 }
860
861
862 1 result = wsnt_SubscribeResponseType_init_contents(
863 &SubscribeResponse);
864 1 if(result != GLOBUS_SUCCESS)
865 {
866 1 goto fault_exit;
867 }
868
869 1 result = invoke_function(
870 callback_handle->engine,
871 callback_handle->message,
872 &CounterService_descriptor,
873 Subscribe,
874 &SubscribeResponse,
875 &fault_type_name,
876 &fault);
877
878 1 fault_exit:
879
880 1 if(fault && fault_type_name)
881 {
882 0 fault_type = Subscribe_lookup_fault_type(fault_type_name);
883
884 0 result = globus_service_session_begin_response(
885 callback_handle->message);
886 0 if(result != GLOBUS_SUCCESS)
887 {
888 0 goto exit;
889 }
890
891 0 soap_fault.faultcode = "Server";
892 0 soap_fault.faultstring =
893 "An error occurred while processing the message";
894 0 soap_fault.faultactor = NULL;
895
896 0 switch(fault_type)
897 {
898
899 case COUNTERPORTTYPE_SUBSCRIBE_TOPICPATHDIALECTUNKNOWNFAULT:
900
901 0 xsd_any_init(&soap_fault.detail);
902 0 soap_fault.detail->any_info = &wsnt_TopicPathDialectUnknownFaultType_info;
903 0 xsd_QName_init(&soap_fault.detail->element);
904 0 soap_fault.detail->element->local = "TopicPathDialectUnknownFault";
905 0 soap_fault.detail->element->Namespace =
906 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
907 0 soap_fault.detail->value = fault;
908 0 break;
909
910 case COUNTERPORTTYPE_SUBSCRIBE_RESOURCEUNKNOWNFAULT:
911
912 0 xsd_any_init(&soap_fault.detail);
913 0 soap_fault.detail->any_info = &wsnt_ResourceUnknownFaultType_info;
914 0 xsd_QName_init(&soap_fault.detail->element);
915 0 soap_fault.detail->element->local = "ResourceUnknownFault";
916 0 soap_fault.detail->element->Namespace =
917 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
918 0 soap_fault.detail->value = fault;
919 0 break;
920
921 case COUNTERPORTTYPE_SUBSCRIBE_SUBSCRIBECREATIONFAILEDFAULT:
922
923 0 xsd_any_init(&soap_fault.detail);
924 0 soap_fault.detail->any_info = &wsnt_SubscribeCreationFailedFaultType_info;
925 0 xsd_QName_init(&soap_fault.detail->element);
926 0 soap_fault.detail->element->local = "SubscribeCreationFailedFault";
927 0 soap_fault.detail->element->Namespace =
928 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
929 0 soap_fault.detail->value = fault;
930 0 break;
931
932 case COUNTERPORTTYPE_SUBSCRIBE_INVALIDTOPICEXPRESSIONFAULT:
933
934 0 xsd_any_init(&soap_fault.detail);
935 0 soap_fault.detail->any_info = &wsnt_InvalidTopicExpressionFaultType_info;
936 0 xsd_QName_init(&soap_fault.detail->element);
937 0 soap_fault.detail->element->local = "InvalidTopicExpressionFault";
938 0 soap_fault.detail->element->Namespace =
939 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
940 0 soap_fault.detail->value = fault;
941 0 break;
942
943 case COUNTERPORTTYPE_SUBSCRIBE_TOPICNOTSUPPORTEDFAULT:
944
945 0 xsd_any_init(&soap_fault.detail);
946 0 soap_fault.detail->any_info = &wsnt_TopicNotSupportedFaultType_info;
947 0 xsd_QName_init(&soap_fault.detail->element);
948 0 soap_fault.detail->element->local = "TopicNotSupportedFault";
949 0 soap_fault.detail->element->Namespace =
950 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
951 0 soap_fault.detail->value = fault;
952 0 break;
953
954 default:
955 0 result = CounterServiceErrorReturnedUnknownFault("Subscribe");
956 0 goto exit;
957 }
958
959 0 result = globus_service_session_serialize_fault_response(
960 callback_handle->message, &soap_fault);
961 0 if(result != GLOBUS_SUCCESS)
962 {
963 0 goto exit;
964 }
965
966 0 soap_fault.detail->element->local = NULL;
967 0 soap_fault.detail->element->Namespace = NULL;
968 0 soap_fault.detail->any_info = NULL;
969 0 xsd_any_destroy(soap_fault.detail);
970
971 0 globus_soap_message_handle_set_attr(
972 callback_handle->message,
973 WSADDR_ACTION_RESPONSE_KEY,
974 globus_soap_message_attr_copy_string,
975 globus_libc_free,
976 WSADDRESSING_FAULT_NS);
977 }
978 1 else if(result != GLOBUS_SUCCESS)
979 {
980 globus_result_t local_result;
981 1 local_result = globus_service_session_begin_response(
982 callback_handle->message);
983 1 if(local_result != GLOBUS_SUCCESS)
984 {
985 0 result = local_result;
986 0 goto exit;
987 }
988
989 1 soap_fault.faultcode = "Server";
990 1 soap_fault.faultstring = globus_error_print_friendly(
991 globus_error_get(result));
992 1 result = GLOBUS_SUCCESS;
993 1 soap_fault.faultactor = NULL;
994 1 soap_fault.detail = NULL;
995 1 result = globus_service_session_serialize_fault_response(
996 callback_handle->message, &soap_fault);
997 1 if(result != GLOBUS_SUCCESS)
998 {
999 1 goto exit;
1000 }
1001
1002 1 globus_soap_message_handle_set_attr(
1003 callback_handle->message,
1004 WSADDR_ACTION_RESPONSE_KEY,
1005 globus_soap_message_attr_copy_string,
1006 globus_libc_free,
1007 WSADDRESSING_FAULT_NS);
1008 }
1009 else
1010 {
1011 0 result = globus_service_session_begin_response(
1012 callback_handle->message);
1013 0 if(result != GLOBUS_SUCCESS)
1014 {
1015 0 goto exit;
1016 }
1017
1018 0 element_qname.local = "SubscribeResponse";
1019 0 element_qname.Namespace = "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd";
1020
1021 0 result = wsnt_SubscribeResponseType_serialize(
1022 &element_qname,
1023 &SubscribeResponse,
1024 callback_handle->message,
1025 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
1026 0 if(result != GLOBUS_SUCCESS)
1027 {
1028 0 goto exit;
1029 }
1030
1031 0 result = globus_service_session_end_response(
1032 callback_handle->message);
1033 0 if(result != GLOBUS_SUCCESS)
1034 {
1035 0 goto exit;
1036 }
1037
1038 0 wsnt_SubscribeResponseType_destroy_contents(
1039 &SubscribeResponse);
1040
1041 0 globus_soap_message_handle_set_attr(
1042 callback_handle->message,
1043 WSADDR_ACTION_RESPONSE_KEY,
1044 globus_soap_message_attr_copy_string,
1045 globus_libc_free,
1046 "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification/SubscribeResponse");
1047 }
1048
1049 1 exit:
1050
1051 1 callback_handle->callback(
1052 result,
1053 callback_handle->args);
1054
1055 1 globus_libc_free(callback_handle);
1056
1057 1 CounterServiceDebugExit();
1058 }
1059
1060 static
1061 globus_result_t
1062 Subscribe_invoke(
1063 globus_service_engine_t engine,
1064 globus_soap_message_handle_t message,
1065 globus_service_response_t * response,
1066 globus_operation_invoke_callback_func_t invoke_callback,
1067 void * args)
1068 1 {
1069 Subscribe_callback_handle_t * callback_handle;
1070 1 globus_result_t result = GLOBUS_SUCCESS;
1071 GlobusFuncName(CounterPortType_Subscribe);
1072 1 CounterServiceDebugEnter();
1073
1074 1 callback_handle = malloc(sizeof(Subscribe_callback_handle_t));
1075 1 if(!callback_handle)
1076 {
1077 0 result = GlobusSoapMessageErrorOutOfMemory;
1078 0 goto exit;
1079 }
1080 1 memset(callback_handle, 0, sizeof(Subscribe_callback_handle_t));
1081
1082 1 callback_handle->engine = engine;
1083 1 callback_handle->message = message;
1084 1 callback_handle->callback = invoke_callback;
1085 1 callback_handle->args = args;
1086
1087 1 result = globus_callback_register_oneshot(
1088 NULL,
1089 &globus_i_reltime_zero,
1090 Subscribe_invoke_callback,
1091 callback_handle);
1092
1093 1 exit:
1094 1 CounterServiceDebugExit();
1095 1 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 &CounterPortType_Subscribe_op_qname,
1110 "Subscribe",
1111 (void *)CounterPortType_Subscribe_init,
1112 (void *)CounterPortType_Subscribe_impl,
1113 NULL
1114 };
1115
1116
1117 xsd_QName CounterPortType_GetResourceProperty_op_qname =
1118 {
1119 "http://counter.com",
1120 "GetResourceProperty"
1121 };
1122
1123 xsd_QName CounterPortType_GetResourceProperty_input_qname =
1124 {
1125 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd",
1126 "GetResourceProperty"
1127 };
1128
1129 typedef globus_result_t (* GetResourceProperty_init_func_t) (
1130 globus_service_engine_t engine,
1131 globus_soap_message_handle_t message,
1132 xsd_QName * GetResourceProperty);
1133
1134 typedef globus_result_t (* GetResourceProperty_invoke_func_t) (
1135 globus_service_engine_t engine,
1136 globus_soap_message_handle_t message,
1137 globus_service_descriptor_t * descriptor,
1138 xsd_QName * GetResourceProperty,
1139 wsrp_GetResourcePropertyResponseType * GetResourcePropertyResponse,
1140 const char ** fault_type_name,
1141 void ** fault);
1142
1143 typedef struct GetResourceProperty_callback_handle_s
1144 {
1145 globus_service_engine_t engine;
1146 globus_soap_message_handle_t message;
1147 globus_operation_invoke_callback_func_t callback;
1148 void * args;
1149 } GetResourceProperty_callback_handle_t;
1150
1151
1152 const char * CounterPortType_GetResourceProperty_fault_strings[COUNTERPORTTYPE_GETRESOURCEPROPERTY_INVALIDRESOURCEPROPERTYQNAMEFAULT] =
1153 {
1154 "Unknown",
1155 "ResourceUnknownFault",
1156 "InvalidResourcePropertyQNameFault"
1157 };
1158
1159 static
1160 CounterPortType_GetResourceProperty_fault_t
1161 GetResourceProperty_lookup_fault_type(
1162 const char * fault_name)
1163 0 {
1164 CounterPortType_GetResourceProperty_fault_t fault_type;
1165 GlobusFuncName(GetResourceProperty_lookup_fault_type);
1166 0 CounterServiceDebugEnter();
1167
1168 0 globus_assert(fault_name);
1169
1170 0 if(!strcmp(fault_name, "ResourceUnknownFault"))
1171 {
1172 0 fault_type = COUNTERPORTTYPE_GETRESOURCEPROPERTY_RESOURCEUNKNOWNFAULT;
1173 }
1174 0 else if(!strcmp(fault_name, "InvalidResourcePropertyQNameFault"))
1175 {
1176 0 fault_type = COUNTERPORTTYPE_GETRESOURCEPROPERTY_INVALIDRESOURCEPROPERTYQNAMEFAULT;
1177 }
1178 else
1179 {
1180 0 fault_type = COUNTERPORTTYPE_GETRESOURCEPROPERTY_UNKNOWN_FAULT;
1181 }
1182
1183 0 CounterServiceDebugExit();
1184 0 return fault_type;
1185 }
1186
1187
1188
1189 static
1190 void
1191 GetResourceProperty_deserialize_callback(
1192 void * handle)
1193 10 {
1194 GetResourceProperty_callback_handle_t * callback_handle;
1195 10 globus_result_t result = GLOBUS_SUCCESS;
1196 struct globus_soap_message_fault_s soap_fault;
1197 GetResourceProperty_init_func_t init_function;
1198 GetResourceProperty_invoke_func_t invoke_function;
1199 xsd_QName * GetResourceProperty;
1200 GlobusFuncName(GetResourceProperty_deserialize_callback);
1201 10 CounterServiceDebugEnter();
1202
1203 10 callback_handle = (GetResourceProperty_callback_handle_t *) handle;
1204
1205 10 result = globus_operation_table_get_operation(
1206 CounterService_descriptor.operations,
1207 "GetResourceProperty",
1208 (void **)&init_function,
1209 (void **)&invoke_function);
1210 10 if(result != GLOBUS_SUCCESS)
1211 {
1212 10 goto exit;
1213 }
1214
1215 10 if(CounterService_descriptor.registry)
1216 {
1217 10 globus_soap_message_handle_set_registry(
1218 callback_handle->message,
1219 CounterService_descriptor.registry);
1220 }
1221
1222 10 result = xsd_QName_init(
1223 &GetResourceProperty);
1224 10 if(result != GLOBUS_SUCCESS)
1225 {
1226 10 goto exit;
1227 }
1228
1229 10 if(init_function)
1230 {
1231 /* do service specific initialization stuff */
1232 10 result = init_function(
1233 callback_handle->engine,
1234 callback_handle->message,
1235 GetResourceProperty);
1236 10 if(result != GLOBUS_SUCCESS)
1237 {
1238 10 goto free_exit;
1239 }
1240 }
1241
1242 10 result = xsd_QName_deserialize(
1243 &CounterPortType_GetResourceProperty_input_qname,
1244 GetResourceProperty,
1245 callback_handle->message,
1246 0);
1247 10 if(result != GLOBUS_SUCCESS)
1248 {
1249 10 goto free_exit;
1250 }
1251
1252 10 result = globus_soap_message_handle_set_attr(
1253 callback_handle->message,
1254 "GetResourcePropertyOperationInputParameter",
1255 xsd_QName_copy_wrapper,
1256 xsd_QName_destroy_wrapper,
1257 (void *)GetResourceProperty);
1258 if(result != GLOBUS_SUCCESS)
1259 {
1260 goto free_exit;
1261 }
1262
1263 10 free_exit:
1264 10 xsd_QName_destroy(GetResourceProperty);
1265
1266 10 exit:
1267
1268 10 callback_handle->callback(
1269 result,
1270 callback_handle->args);
1271 10 free(callback_handle);
1272 10 CounterServiceDebugExit();
1273 }
1274 /* GetResourceProperty_deserialize_callback() */
1275
1276 static
1277 globus_result_t
1278 GetResourceProperty_deserialize(
1279 globus_service_engine_t engine,
1280 globus_soap_message_handle_t message,
1281 globus_operation_invoke_callback_func_t invoke_callback,
1282 void * args)
1283 10 {
1284 GetResourceProperty_callback_handle_t * callback_handle;
1285 10 globus_result_t result = GLOBUS_SUCCESS;
1286 GlobusFuncName(GetResourceProperty_deserialize);
1287 10 CounterServiceDebugEnter();
1288
1289 10 callback_handle = malloc(sizeof(GetResourceProperty_callback_handle_t));
1290 10 globus_assert_string(callback_handle,
1291 "Memory allocation failed "
1292 "for GetResourceProperty callback handle");
1293 10 memset(callback_handle, 0, sizeof(GetResourceProperty_callback_handle_t));
1294
1295 10 callback_handle->engine = engine;
1296 10 callback_handle->message = message;
1297 10 callback_handle->callback = invoke_callback;
1298 10 callback_handle->args = args;
1299
1300 10 result = globus_callback_register_oneshot(
1301 NULL,
1302 &globus_i_reltime_zero,
1303 GetResourceProperty_deserialize_callback,
1304 callback_handle);
1305
1306 10 CounterServiceDebugExit();
1307 10 return result;
1308 }
1309
1310 static
1311 void
1312 GetResourceProperty_invoke_callback(
1313 void * handle)
1314 10 {
1315 GetResourceProperty_callback_handle_t * callback_handle;
1316 10 globus_result_t result = GLOBUS_SUCCESS;
1317 struct globus_soap_message_fault_s soap_fault;
1318 GetResourceProperty_init_func_t init_function;
1319 GetResourceProperty_invoke_func_t invoke_function;
1320 xsd_QName * GetResourceProperty;
1321 wsrp_GetResourcePropertyResponseType GetResourcePropertyResponse;
1322 xsd_QName element_qname;
1323 10 const char * fault_type_name = NULL;
1324 10 CounterPortType_GetResourceProperty_fault_t fault_type = COUNTERPORTTYPE_GETRESOURCEPROPERTY_NOFAULT;
1325 10 void * fault = NULL;
1326
1327 GlobusFuncName(GetResourceProperty_invoke_callback);
1328 10 CounterServiceDebugEnter();
1329
1330 10 callback_handle = (GetResourceProperty_callback_handle_t *) handle;
1331
1332 10 GetResourceProperty = globus_soap_message_handle_get_attr(
1333 callback_handle->message,
1334 "GetResourcePropertyOperationInputParameter");
1335 10 globus_assert(GetResourceProperty);
1336
1337 10 result = globus_operation_table_get_operation(
1338 CounterService_descriptor.operations,
1339 "GetResourceProperty",
1340 (void **)&init_function,
1341 (void **)&invoke_function);
1342 10 if(result != GLOBUS_SUCCESS)
1343 {
1344 10 goto fault_exit;
1345 }
1346
1347
1348 10 result = wsrp_GetResourcePropertyResponseType_init_contents(
1349 &GetResourcePropertyResponse);
1350 10 if(result != GLOBUS_SUCCESS)
1351 {
1352 10 goto fault_exit;
1353 }
1354
1355 10 result = invoke_function(
1356 callback_handle->engine,
1357 callback_handle->message,
1358 &CounterService_descriptor,
1359 GetResourceProperty,
1360 &GetResourcePropertyResponse,
1361 &fault_type_name,
1362 &fault);
1363
1364 10 fault_exit:
1365
1366 10 if(fault && fault_type_name)
1367 {
1368 0 fault_type = GetResourceProperty_lookup_fault_type(fault_type_name);
1369
1370 0 result = globus_service_session_begin_response(
1371 callback_handle->message);
1372 0 if(result != GLOBUS_SUCCESS)
1373 {
1374 0 goto exit;
1375 }
1376
1377 0 soap_fault.faultcode = "Server";
1378 0 soap_fault.faultstring =
1379 "An error occurred while processing the message";
1380 0 soap_fault.faultactor = NULL;
1381
1382 0 switch(fault_type)
1383 {
1384
1385 case COUNTERPORTTYPE_GETRESOURCEPROPERTY_RESOURCEUNKNOWNFAULT:
1386
1387 0 xsd_any_init(&soap_fault.detail);
1388 0 soap_fault.detail->any_info = &wsrp_ResourceUnknownFaultType_info;
1389 0 xsd_QName_init(&soap_fault.detail->element);
1390 0 soap_fault.detail->element->local = "ResourceUnknownFault";
1391 0 soap_fault.detail->element->Namespace =
1392 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
1393 0 soap_fault.detail->value = fault;
1394 0 break;
1395
1396 case COUNTERPORTTYPE_GETRESOURCEPROPERTY_INVALIDRESOURCEPROPERTYQNAMEFAULT:
1397
1398 0 xsd_any_init(&soap_fault.detail);
1399 0 soap_fault.detail->any_info = &wsrp_InvalidResourcePropertyQNameFaultType_info;
1400 0 xsd_QName_init(&soap_fault.detail->element);
1401 0 soap_fault.detail->element->local = "InvalidResourcePropertyQNameFault";
1402 0 soap_fault.detail->element->Namespace =
1403 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
1404 0 soap_fault.detail->value = fault;
1405 0 break;
1406
1407 default:
1408 0 result = CounterServiceErrorReturnedUnknownFault("GetResourceProperty");
1409 0 goto exit;
1410 }
1411
1412 0 result = globus_service_session_serialize_fault_response(
1413 callback_handle->message, &soap_fault);
1414 0 if(result != GLOBUS_SUCCESS)
1415 {
1416 0 goto exit;
1417 }
1418
1419 0 soap_fault.detail->element->local = NULL;
1420 0 soap_fault.detail->element->Namespace = NULL;
1421 0 soap_fault.detail->any_info = NULL;
1422 0 xsd_any_destroy(soap_fault.detail);
1423
1424 0 globus_soap_message_handle_set_attr(
1425 callback_handle->message,
1426 WSADDR_ACTION_RESPONSE_KEY,
1427 globus_soap_message_attr_copy_string,
1428 globus_libc_free,
1429 WSADDRESSING_FAULT_NS);
1430 }
1431 10 else if(result != GLOBUS_SUCCESS)
1432 {
1433 globus_result_t local_result;
1434 0 local_result = globus_service_session_begin_response(
1435 callback_handle->message);
1436 0 if(local_result != GLOBUS_SUCCESS)
1437 {
1438 0 result = local_result;
1439 0 goto exit;
1440 }
1441
1442 0 soap_fault.faultcode = "Server";
1443 0 soap_fault.faultstring = globus_error_print_friendly(
1444 globus_error_get(result));
1445 0 result = GLOBUS_SUCCESS;
1446 0 soap_fault.faultactor = NULL;
1447 0 soap_fault.detail = NULL;
1448 0 result = globus_service_session_serialize_fault_response(
1449 callback_handle->message, &soap_fault);
1450 0 if(result != GLOBUS_SUCCESS)
1451 {
1452 0 goto exit;
1453 }
1454
1455 0 globus_soap_message_handle_set_attr(
1456 callback_handle->message,
1457 WSADDR_ACTION_RESPONSE_KEY,
1458 globus_soap_message_attr_copy_string,
1459 globus_libc_free,
1460 WSADDRESSING_FAULT_NS);
1461 }
1462 else
1463 {
1464 10 result = globus_service_session_begin_response(
1465 callback_handle->message);
1466 10 if(result != GLOBUS_SUCCESS)
1467 {
1468 10 goto exit;
1469 }
1470
1471 10 element_qname.local = "GetResourcePropertyResponse";
1472 10 element_qname.Namespace = "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
1473
1474 10 result = wsrp_GetResourcePropertyResponseType_serialize(
1475 &element_qname,
1476 &GetResourcePropertyResponse,
1477 callback_handle->message,
1478 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
1479 10 if(result != GLOBUS_SUCCESS)
1480 {
1481 10 goto exit;
1482 }
1483
1484 10 result = globus_service_session_end_response(
1485 callback_handle->message);
1486 10 if(result != GLOBUS_SUCCESS)
1487 {
1488 10 goto exit;
1489 }
1490
1491 10 wsrp_GetResourcePropertyResponseType_destroy_contents(
1492 &GetResourcePropertyResponse);
1493
1494 10 globus_soap_message_handle_set_attr(
1495 callback_handle->message,
1496 WSADDR_ACTION_RESPONSE_KEY,
1497 globus_soap_message_attr_copy_string,
1498 globus_libc_free,
1499 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse");
1500 }
1501
1502 10 exit:
1503
1504 10 callback_handle->callback(
1505 result,
1506 callback_handle->args);
1507
1508 10 globus_libc_free(callback_handle);
1509
1510 10 CounterServiceDebugExit();
1511 }
1512
1513 static
1514 globus_result_t
1515 GetResourceProperty_invoke(
1516 globus_service_engine_t engine,
1517 globus_soap_message_handle_t message,
1518 globus_service_response_t * response,
1519 globus_operation_invoke_callback_func_t invoke_callback,
1520 void * args)
1521 10 {
1522 GetResourceProperty_callback_handle_t * callback_handle;
1523 10 globus_result_t result = GLOBUS_SUCCESS;
1524 GlobusFuncName(CounterPortType_GetResourceProperty);
1525 10 CounterServiceDebugEnter();
1526
1527 10 callback_handle = malloc(sizeof(GetResourceProperty_callback_handle_t));
1528 10 if(!callback_handle)
1529 {
1530 0 result = GlobusSoapMessageErrorOutOfMemory;
1531 0 goto exit;
1532 }
1533 10 memset(callback_handle, 0, sizeof(GetResourceProperty_callback_handle_t));
1534
1535 10 callback_handle->engine = engine;
1536 10 callback_handle->message = message;
1537 10 callback_handle->callback = invoke_callback;
1538 10 callback_handle->args = args;
1539
1540 10 result = globus_callback_register_oneshot(
1541 NULL,
1542 &globus_i_reltime_zero,
1543 GetResourceProperty_invoke_callback,
1544 callback_handle);
1545
1546 10 exit:
1547 10 CounterServiceDebugExit();
1548 10 return result;
1549 }
1550
1551 static
1552 globus_service_operation_descriptor_t
1553 GetResourceProperty_operation_descriptor =
1554 {
1555 GetResourceProperty_deserialize,
1556 GetResourceProperty_invoke
1557 };
1558
1559 static
1560 globus_operation_provider_descriptor_t GetResourceProperty_descriptor =
1561 {
1562 &CounterPortType_GetResourceProperty_op_qname,
1563 "GetResourceProperty",
1564 (void *)CounterPortType_GetResourceProperty_init,
1565 (void *)CounterPortType_GetResourceProperty_impl,
1566 NULL
1567 };
1568
1569
1570 xsd_QName CounterPortType_GetMultipleResourceProperties_op_qname =
1571 {
1572 "http://counter.com",
1573 "GetMultipleResourceProperties"
1574 };
1575
1576 xsd_QName CounterPortType_GetMultipleResourceProperties_input_qname =
1577 {
1578 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd",
1579 "GetMultipleResourceProperties"
1580 };
1581
1582 typedef globus_result_t (* GetMultipleResourceProperties_init_func_t) (
1583 globus_service_engine_t engine,
1584 globus_soap_message_handle_t message,
1585 wsrp_GetMultipleResourcePropertiesType * GetMultipleResourceProperties);
1586
1587 typedef globus_result_t (* GetMultipleResourceProperties_invoke_func_t) (
1588 globus_service_engine_t engine,
1589 globus_soap_message_handle_t message,
1590 globus_service_descriptor_t * descriptor,
1591 wsrp_GetMultipleResourcePropertiesType * GetMultipleResourceProperties,
1592 wsrp_GetMultipleResourcePropertiesResponseType * GetMultipleResourcePropertiesResponse,
1593 const char ** fault_type_name,
1594 void ** fault);
1595
1596 typedef struct GetMultipleResourceProperties_callback_handle_s
1597 {
1598 globus_service_engine_t engine;
1599 globus_soap_message_handle_t message;
1600 globus_operation_invoke_callback_func_t callback;
1601 void * args;
1602 } GetMultipleResourceProperties_callback_handle_t;
1603
1604
1605 const char * CounterPortType_GetMultipleResourceProperties_fault_strings[COUNTERPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_INVALIDRESOURCEPROPERTYQNAMEFAULT] =
1606 {
1607 "Unknown",
1608 "ResourceUnknownFault",
1609 "InvalidResourcePropertyQNameFault"
1610 };
1611
1612 static
1613 CounterPortType_GetMultipleResourceProperties_fault_t
1614 GetMultipleResourceProperties_lookup_fault_type(
1615 const char * fault_name)
1616 0 {
1617 CounterPortType_GetMultipleResourceProperties_fault_t fault_type;
1618 GlobusFuncName(GetMultipleResourceProperties_lookup_fault_type);
1619 0 CounterServiceDebugEnter();
1620
1621 0 globus_assert(fault_name);
1622
1623 0 if(!strcmp(fault_name, "ResourceUnknownFault"))
1624 {
1625 0 fault_type = COUNTERPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_RESOURCEUNKNOWNFAULT;
1626 }
1627 0 else if(!strcmp(fault_name, "InvalidResourcePropertyQNameFault"))
1628 {
1629 0 fault_type = COUNTERPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_INVALIDRESOURCEPROPERTYQNAMEFAULT;
1630 }
1631 else
1632 {
1633 0 fault_type = COUNTERPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_UNKNOWN_FAULT;
1634 }
1635
1636 0 CounterServiceDebugExit();
1637 0 return fault_type;
1638 }
1639
1640
1641
1642 static
1643 void
1644 GetMultipleResourceProperties_deserialize_callback(
1645 void * handle)
1646 0 {
1647 GetMultipleResourceProperties_callback_handle_t * callback_handle;
1648 0 globus_result_t result = GLOBUS_SUCCESS;
1649 struct globus_soap_message_fault_s soap_fault;
1650 GetMultipleResourceProperties_init_func_t init_function;
1651 GetMultipleResourceProperties_invoke_func_t invoke_function;
1652 wsrp_GetMultipleResourcePropertiesType * GetMultipleResourceProperties;
1653 GlobusFuncName(GetMultipleResourceProperties_deserialize_callback);
1654 0 CounterServiceDebugEnter();
1655
1656 0 callback_handle = (GetMultipleResourceProperties_callback_handle_t *) handle;
1657
1658 0 result = globus_operation_table_get_operation(
1659 CounterService_descriptor.operations,
1660 "GetMultipleResourceProperties",
1661 (void **)&init_function,
1662 (void **)&invoke_function);
1663 0 if(result != GLOBUS_SUCCESS)
1664 {
1665 0 goto exit;
1666 }
1667
1668 0 if(CounterService_descriptor.registry)
1669 {
1670 0 globus_soap_message_handle_set_registry(
1671 callback_handle->message,
1672 CounterService_descriptor.registry);
1673 }
1674
1675 0 result = wsrp_GetMultipleResourcePropertiesType_init(
1676 &GetMultipleResourceProperties);
1677 0 if(result != GLOBUS_SUCCESS)
1678 {
1679 0 goto exit;
1680 }
1681
1682 0 if(init_function)
1683 {
1684 /* do service specific initialization stuff */
1685 0 result = init_function(
1686 callback_handle->engine,
1687 callback_handle->message,
1688 GetMultipleResourceProperties);
1689 0 if(result != GLOBUS_SUCCESS)
1690 {
1691 0 goto free_exit;
1692 }
1693 }
1694
1695 0 result = wsrp_GetMultipleResourcePropertiesType_deserialize(
1696 &CounterPortType_GetMultipleResourceProperties_input_qname,
1697 GetMultipleResourceProperties,
1698 callback_handle->message,
1699 0);
1700 0 if(result != GLOBUS_SUCCESS)
1701 {
1702 0 goto free_exit;
1703 }
1704
1705 0 result = globus_soap_message_handle_set_attr(
1706 callback_handle->message,
1707 "GetMultipleResourcePropertiesOperationInputParameter",
1708 wsrp_GetMultipleResourcePropertiesType_copy_wrapper,
1709 wsrp_GetMultipleResourcePropertiesType_destroy_wrapper,
1710 (void *)GetMultipleResourceProperties);
1711 if(result != GLOBUS_SUCCESS)
1712 {
1713 goto free_exit;
1714 }
1715
1716 0 free_exit:
1717 0 wsrp_GetMultipleResourcePropertiesType_destroy(GetMultipleResourceProperties);
1718
1719 0 exit:
1720
1721 0 callback_handle->callback(
1722 result,
1723 callback_handle->args);
1724 0 free(callback_handle);
1725 0 CounterServiceDebugExit();
1726 }
1727 /* GetMultipleResourceProperties_deserialize_callback() */
1728
1729 static
1730 globus_result_t
1731 GetMultipleResourceProperties_deserialize(
1732 globus_service_engine_t engine,
1733 globus_soap_message_handle_t message,
1734 globus_operation_invoke_callback_func_t invoke_callback,
1735 void * args)
1736 0 {
1737 GetMultipleResourceProperties_callback_handle_t * callback_handle;
1738 0 globus_result_t result = GLOBUS_SUCCESS;
1739 GlobusFuncName(GetMultipleResourceProperties_deserialize);
1740 0 CounterServiceDebugEnter();
1741
1742 0 callback_handle = malloc(sizeof(GetMultipleResourceProperties_callback_handle_t));
1743 0 globus_assert_string(callback_handle,
1744 "Memory allocation failed "
1745 "for GetMultipleResourceProperties callback handle");
1746 0 memset(callback_handle, 0, sizeof(GetMultipleResourceProperties_callback_handle_t));
1747
1748 0 callback_handle->engine = engine;
1749 0 callback_handle->message = message;
1750 0 callback_handle->callback = invoke_callback;
1751 0 callback_handle->args = args;
1752
1753 0 result = globus_callback_register_oneshot(
1754 NULL,
1755 &globus_i_reltime_zero,
1756 GetMultipleResourceProperties_deserialize_callback,
1757 callback_handle);
1758
1759 0 CounterServiceDebugExit();
1760 0 return result;
1761 }
1762
1763 static
1764 void
1765 GetMultipleResourceProperties_invoke_callback(
1766 void * handle)
1767 0 {
1768 GetMultipleResourceProperties_callback_handle_t * callback_handle;
1769 0 globus_result_t result = GLOBUS_SUCCESS;
1770 struct globus_soap_message_fault_s soap_fault;
1771 GetMultipleResourceProperties_init_func_t init_function;
1772 GetMultipleResourceProperties_invoke_func_t invoke_function;
1773 wsrp_GetMultipleResourcePropertiesType * GetMultipleResourceProperties;
1774 wsrp_GetMultipleResourcePropertiesResponseType GetMultipleResourcePropertiesResponse;
1775 xsd_QName element_qname;
1776 0 const char * fault_type_name = NULL;
1777 0 CounterPortType_GetMultipleResourceProperties_fault_t fault_type = COUNTERPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_NOFAULT;
1778 0 void * fault = NULL;
1779
1780 GlobusFuncName(GetMultipleResourceProperties_invoke_callback);
1781 0 CounterServiceDebugEnter();
1782
1783 0 callback_handle = (GetMultipleResourceProperties_callback_handle_t *) handle;
1784
1785 0 GetMultipleResourceProperties = globus_soap_message_handle_get_attr(
1786 callback_handle->message,
1787 "GetMultipleResourcePropertiesOperationInputParameter");
1788 0 globus_assert(GetMultipleResourceProperties);
1789
1790 0 result = globus_operation_table_get_operation(
1791 CounterService_descriptor.operations,
1792 "GetMultipleResourceProperties",
1793 (void **)&init_function,
1794 (void **)&invoke_function);
1795 0 if(result != GLOBUS_SUCCESS)
1796 {
1797 0 goto fault_exit;
1798 }
1799
1800
1801 0 result = wsrp_GetMultipleResourcePropertiesResponseType_init_contents(
1802 &GetMultipleResourcePropertiesResponse);
1803 0 if(result != GLOBUS_SUCCESS)
1804 {
1805 0 goto fault_exit;
1806 }
1807
1808 0 result = invoke_function(
1809 callback_handle->engine,
1810 callback_handle->message,
1811 &CounterService_descriptor,
1812 GetMultipleResourceProperties,
1813 &GetMultipleResourcePropertiesResponse,
1814 &fault_type_name,
1815 &fault);
1816
1817 0 fault_exit:
1818
1819 0 if(fault && fault_type_name)
1820 {
1821 0 fault_type = GetMultipleResourceProperties_lookup_fault_type(fault_type_name);
1822
1823 0 result = globus_service_session_begin_response(
1824 callback_handle->message);
1825 0 if(result != GLOBUS_SUCCESS)
1826 {
1827 0 goto exit;
1828 }
1829
1830 0 soap_fault.faultcode = "Server";
1831 0 soap_fault.faultstring =
1832 "An error occurred while processing the message";
1833 0 soap_fault.faultactor = NULL;
1834
1835 0 switch(fault_type)
1836 {
1837
1838 case COUNTERPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_RESOURCEUNKNOWNFAULT:
1839
1840 0 xsd_any_init(&soap_fault.detail);
1841 0 soap_fault.detail->any_info = &wsrp_ResourceUnknownFaultType_info;
1842 0 xsd_QName_init(&soap_fault.detail->element);
1843 0 soap_fault.detail->element->local = "ResourceUnknownFault";
1844 0 soap_fault.detail->element->Namespace =
1845 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
1846 0 soap_fault.detail->value = fault;
1847 0 break;
1848
1849 case COUNTERPORTTYPE_GETMULTIPLERESOURCEPROPERTIES_INVALIDRESOURCEPROPERTYQNAMEFAULT:
1850
1851 0 xsd_any_init(&soap_fault.detail);
1852 0 soap_fault.detail->any_info = &wsrp_InvalidResourcePropertyQNameFaultType_info;
1853 0 xsd_QName_init(&soap_fault.detail->element);
1854 0 soap_fault.detail->element->local = "InvalidResourcePropertyQNameFault";
1855 0 soap_fault.detail->element->Namespace =
1856 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
1857 0 soap_fault.detail->value = fault;
1858 0 break;
1859
1860 default:
1861 0 result = CounterServiceErrorReturnedUnknownFault("GetMultipleResourceProperties");
1862 0 goto exit;
1863 }
1864
1865 0 result = globus_service_session_serialize_fault_response(
1866 callback_handle->message, &soap_fault);
1867 0 if(result != GLOBUS_SUCCESS)
1868 {
1869 0 goto exit;
1870 }
1871
1872 0 soap_fault.detail->element->local = NULL;
1873 0 soap_fault.detail->element->Namespace = NULL;
1874 0 soap_fault.detail->any_info = NULL;
1875 0 xsd_any_destroy(soap_fault.detail);
1876
1877 0 globus_soap_message_handle_set_attr(
1878 callback_handle->message,
1879 WSADDR_ACTION_RESPONSE_KEY,
1880 globus_soap_message_attr_copy_string,
1881 globus_libc_free,
1882 WSADDRESSING_FAULT_NS);
1883 }
1884 0 else if(result != GLOBUS_SUCCESS)
1885 {
1886 globus_result_t local_result;
1887 0 local_result = globus_service_session_begin_response(
1888 callback_handle->message);
1889 0 if(local_result != GLOBUS_SUCCESS)
1890 {
1891 0 result = local_result;
1892 0 goto exit;
1893 }
1894
1895 0 soap_fault.faultcode = "Server";
1896 0 soap_fault.faultstring = globus_error_print_friendly(
1897 globus_error_get(result));
1898 0 result = GLOBUS_SUCCESS;
1899 0 soap_fault.faultactor = NULL;
1900 0 soap_fault.detail = NULL;
1901 0 result = globus_service_session_serialize_fault_response(
1902 callback_handle->message, &soap_fault);
1903 0 if(result != GLOBUS_SUCCESS)
1904 {
1905 0 goto exit;
1906 }
1907
1908 0 globus_soap_message_handle_set_attr(
1909 callback_handle->message,
1910 WSADDR_ACTION_RESPONSE_KEY,
1911 globus_soap_message_attr_copy_string,
1912 globus_libc_free,
1913 WSADDRESSING_FAULT_NS);
1914 }
1915 else
1916 {
1917 0 result = globus_service_session_begin_response(
1918 callback_handle->message);
1919 0 if(result != GLOBUS_SUCCESS)
1920 {
1921 0 goto exit;
1922 }
1923
1924 0 element_qname.local = "GetMultipleResourcePropertiesResponse";
1925 0 element_qname.Namespace = "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
1926
1927 0 result = wsrp_GetMultipleResourcePropertiesResponseType_serialize(
1928 &element_qname,
1929 &GetMultipleResourcePropertiesResponse,
1930 callback_handle->message,
1931 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
1932 0 if(result != GLOBUS_SUCCESS)
1933 {
1934 0 goto exit;
1935 }
1936
1937 0 result = globus_service_session_end_response(
1938 callback_handle->message);
1939 0 if(result != GLOBUS_SUCCESS)
1940 {
1941 0 goto exit;
1942 }
1943
1944 0 wsrp_GetMultipleResourcePropertiesResponseType_destroy_contents(
1945 &GetMultipleResourcePropertiesResponse);
1946
1947 0 globus_soap_message_handle_set_attr(
1948 callback_handle->message,
1949 WSADDR_ACTION_RESPONSE_KEY,
1950 globus_soap_message_attr_copy_string,
1951 globus_libc_free,
1952 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourcePropertiesResponse");
1953 }
1954
1955 0 exit:
1956
1957 0 callback_handle->callback(
1958 result,
1959 callback_handle->args);
1960
1961 0 globus_libc_free(callback_handle);
1962
1963 0 CounterServiceDebugExit();
1964 }
1965
1966 static
1967 globus_result_t
1968 GetMultipleResourceProperties_invoke(
1969 globus_service_engine_t engine,
1970 globus_soap_message_handle_t message,
1971 globus_service_response_t * response,
1972 globus_operation_invoke_callback_func_t invoke_callback,
1973 void * args)
1974 0 {
1975 GetMultipleResourceProperties_callback_handle_t * callback_handle;
1976 0 globus_result_t result = GLOBUS_SUCCESS;
1977 GlobusFuncName(CounterPortType_GetMultipleResourceProperties);
1978 0 CounterServiceDebugEnter();
1979
1980 0 callback_handle = malloc(sizeof(GetMultipleResourceProperties_callback_handle_t));
1981 0 if(!callback_handle)
1982 {
1983 0 result = GlobusSoapMessageErrorOutOfMemory;
1984 0 goto exit;
1985 }
1986 0 memset(callback_handle, 0, sizeof(GetMultipleResourceProperties_callback_handle_t));
1987
1988 0 callback_handle->engine = engine;
1989 0 callback_handle->message = message;
1990 0 callback_handle->callback = invoke_callback;
1991 0 callback_handle->args = args;
1992
1993 0 result = globus_callback_register_oneshot(
1994 NULL,
1995 &globus_i_reltime_zero,
1996 GetMultipleResourceProperties_invoke_callback,
1997 callback_handle);
1998
1999 0 exit:
2000 0 CounterServiceDebugExit();
2001 0 return result;
2002 }
2003
2004 static
2005 globus_service_operation_descriptor_t
2006 GetMultipleResourceProperties_operation_descriptor =
2007 {
2008 GetMultipleResourceProperties_deserialize,
2009 GetMultipleResourceProperties_invoke
2010 };
2011
2012 static
2013 globus_operation_provider_descriptor_t GetMultipleResourceProperties_descriptor =
2014 {
2015 &CounterPortType_GetMultipleResourceProperties_op_qname,
2016 "GetMultipleResourceProperties",
2017 (void *)CounterPortType_GetMultipleResourceProperties_init,
2018 (void *)CounterPortType_GetMultipleResourceProperties_impl,
2019 NULL
2020 };
2021
2022
2023 xsd_QName CounterPortType_QueryResourceProperties_op_qname =
2024 {
2025 "http://counter.com",
2026 "QueryResourceProperties"
2027 };
2028
2029 xsd_QName CounterPortType_QueryResourceProperties_input_qname =
2030 {
2031 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd",
2032 "QueryResourceProperties"
2033 };
2034
2035 typedef globus_result_t (* QueryResourceProperties_init_func_t) (
2036 globus_service_engine_t engine,
2037 globus_soap_message_handle_t message,
2038 wsrp_QueryResourcePropertiesType * QueryResourceProperties);
2039
2040 typedef globus_result_t (* QueryResourceProperties_invoke_func_t) (
2041 globus_service_engine_t engine,
2042 globus_soap_message_handle_t message,
2043 globus_service_descriptor_t * descriptor,
2044 wsrp_QueryResourcePropertiesType * QueryResourceProperties,
2045 wsrp_QueryResourcePropertiesResponseType * QueryResourcePropertiesResponse,
2046 const char ** fault_type_name,
2047 void ** fault);
2048
2049 typedef struct QueryResourceProperties_callback_handle_s
2050 {
2051 globus_service_engine_t engine;
2052 globus_soap_message_handle_t message;
2053 globus_operation_invoke_callback_func_t callback;
2054 void * args;
2055 } QueryResourceProperties_callback_handle_t;
2056
2057
2058 const char * CounterPortType_QueryResourceProperties_fault_strings[COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_INVALIDRESOURCEPROPERTYQNAMEFAULT] =
2059 {
2060 "Unknown",
2061 "UnknownQueryExpressionDialectFault",
2062 "ResourceUnknownFault",
2063 "QueryEvaluationErrorFault",
2064 "InvalidQueryExpressionFault",
2065 "InvalidResourcePropertyQNameFault"
2066 };
2067
2068 static
2069 CounterPortType_QueryResourceProperties_fault_t
2070 QueryResourceProperties_lookup_fault_type(
2071 const char * fault_name)
2072 0 {
2073 CounterPortType_QueryResourceProperties_fault_t fault_type;
2074 GlobusFuncName(QueryResourceProperties_lookup_fault_type);
2075 0 CounterServiceDebugEnter();
2076
2077 0 globus_assert(fault_name);
2078
2079 0 if(!strcmp(fault_name, "UnknownQueryExpressionDialectFault"))
2080 {
2081 0 fault_type = COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_UNKNOWNQUERYEXPRESSIONDIALECTFAULT;
2082 }
2083 0 else if(!strcmp(fault_name, "ResourceUnknownFault"))
2084 {
2085 0 fault_type = COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_RESOURCEUNKNOWNFAULT;
2086 }
2087 0 else if(!strcmp(fault_name, "QueryEvaluationErrorFault"))
2088 {
2089 0 fault_type = COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_QUERYEVALUATIONERRORFAULT;
2090 }
2091 0 else if(!strcmp(fault_name, "InvalidQueryExpressionFault"))
2092 {
2093 0 fault_type = COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_INVALIDQUERYEXPRESSIONFAULT;
2094 }
2095 0 else if(!strcmp(fault_name, "InvalidResourcePropertyQNameFault"))
2096 {
2097 0 fault_type = COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_INVALIDRESOURCEPROPERTYQNAMEFAULT;
2098 }
2099 else
2100 {
2101 0 fault_type = COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_UNKNOWN_FAULT;
2102 }
2103
2104 0 CounterServiceDebugExit();
2105 0 return fault_type;
2106 }
2107
2108
2109
2110 static
2111 void
2112 QueryResourceProperties_deserialize_callback(
2113 void * handle)
2114 0 {
2115 QueryResourceProperties_callback_handle_t * callback_handle;
2116 0 globus_result_t result = GLOBUS_SUCCESS;
2117 struct globus_soap_message_fault_s soap_fault;
2118 QueryResourceProperties_init_func_t init_function;
2119 QueryResourceProperties_invoke_func_t invoke_function;
2120 wsrp_QueryResourcePropertiesType * QueryResourceProperties;
2121 GlobusFuncName(QueryResourceProperties_deserialize_callback);
2122 0 CounterServiceDebugEnter();
2123
2124 0 callback_handle = (QueryResourceProperties_callback_handle_t *) handle;
2125
2126 0 result = globus_operation_table_get_operation(
2127 CounterService_descriptor.operations,
2128 "QueryResourceProperties",
2129 (void **)&init_function,
2130 (void **)&invoke_function);
2131 0 if(result != GLOBUS_SUCCESS)
2132 {
2133 0 goto exit;
2134 }
2135
2136 0 if(CounterService_descriptor.registry)
2137 {
2138 0 globus_soap_message_handle_set_registry(
2139 callback_handle->message,
2140 CounterService_descriptor.registry);
2141 }
2142
2143 0 result = wsrp_QueryResourcePropertiesType_init(
2144 &QueryResourceProperties);
2145 0 if(result != GLOBUS_SUCCESS)
2146 {
2147 0 goto exit;
2148 }
2149
2150 0 if(init_function)
2151 {
2152 /* do service specific initialization stuff */
2153 0 result = init_function(
2154 callback_handle->engine,
2155 callback_handle->message,
2156 QueryResourceProperties);
2157 0 if(result != GLOBUS_SUCCESS)
2158 {
2159 0 goto free_exit;
2160 }
2161 }
2162
2163 0 result = wsrp_QueryResourcePropertiesType_deserialize(
2164 &CounterPortType_QueryResourceProperties_input_qname,
2165 QueryResourceProperties,
2166 callback_handle->message,
2167 0);
2168 0 if(result != GLOBUS_SUCCESS)
2169 {
2170 0 goto free_exit;
2171 }
2172
2173 0 result = globus_soap_message_handle_set_attr(
2174 callback_handle->message,
2175 "QueryResourcePropertiesOperationInputParameter",
2176 wsrp_QueryResourcePropertiesType_copy_wrapper,
2177 wsrp_QueryResourcePropertiesType_destroy_wrapper,
2178 (void *)QueryResourceProperties);
2179 if(result != GLOBUS_SUCCESS)
2180 {
2181 goto free_exit;
2182 }
2183
2184 0 free_exit:
2185 0 wsrp_QueryResourcePropertiesType_destroy(QueryResourceProperties);
2186
2187 0 exit:
2188
2189 0 callback_handle->callback(
2190 result,
2191 callback_handle->args);
2192 0 free(callback_handle);
2193 0 CounterServiceDebugExit();
2194 }
2195 /* QueryResourceProperties_deserialize_callback() */
2196
2197 static
2198 globus_result_t
2199 QueryResourceProperties_deserialize(
2200 globus_service_engine_t engine,
2201 globus_soap_message_handle_t message,
2202 globus_operation_invoke_callback_func_t invoke_callback,
2203 void * args)
2204 0 {
2205 QueryResourceProperties_callback_handle_t * callback_handle;
2206 0 globus_result_t result = GLOBUS_SUCCESS;
2207 GlobusFuncName(QueryResourceProperties_deserialize);
2208 0 CounterServiceDebugEnter();
2209
2210 0 callback_handle = malloc(sizeof(QueryResourceProperties_callback_handle_t));
2211 0 globus_assert_string(callback_handle,
2212 "Memory allocation failed "
2213 "for QueryResourceProperties callback handle");
2214 0 memset(callback_handle, 0, sizeof(QueryResourceProperties_callback_handle_t));
2215
2216 0 callback_handle->engine = engine;
2217 0 callback_handle->message = message;
2218 0 callback_handle->callback = invoke_callback;
2219 0 callback_handle->args = args;
2220
2221 0 result = globus_callback_register_oneshot(
2222 NULL,
2223 &globus_i_reltime_zero,
2224 QueryResourceProperties_deserialize_callback,
2225 callback_handle);
2226
2227 0 CounterServiceDebugExit();
2228 0 return result;
2229 }
2230
2231 static
2232 void
2233 QueryResourceProperties_invoke_callback(
2234 void * handle)
2235 0 {
2236 QueryResourceProperties_callback_handle_t * callback_handle;
2237 0 globus_result_t result = GLOBUS_SUCCESS;
2238 struct globus_soap_message_fault_s soap_fault;
2239 QueryResourceProperties_init_func_t init_function;
2240 QueryResourceProperties_invoke_func_t invoke_function;
2241 wsrp_QueryResourcePropertiesType * QueryResourceProperties;
2242 wsrp_QueryResourcePropertiesResponseType QueryResourcePropertiesResponse;
2243 xsd_QName element_qname;
2244 0 const char * fault_type_name = NULL;
2245 0 CounterPortType_QueryResourceProperties_fault_t fault_type = COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_NOFAULT;
2246 0 void * fault = NULL;
2247
2248 GlobusFuncName(QueryResourceProperties_invoke_callback);
2249 0 CounterServiceDebugEnter();
2250
2251 0 callback_handle = (QueryResourceProperties_callback_handle_t *) handle;
2252
2253 0 QueryResourceProperties = globus_soap_message_handle_get_attr(
2254 callback_handle->message,
2255 "QueryResourcePropertiesOperationInputParameter");
2256 0 globus_assert(QueryResourceProperties);
2257
2258 0 result = globus_operation_table_get_operation(
2259 CounterService_descriptor.operations,
2260 "QueryResourceProperties",
2261 (void **)&init_function,
2262 (void **)&invoke_function);
2263 0 if(result != GLOBUS_SUCCESS)
2264 {
2265 0 goto fault_exit;
2266 }
2267
2268
2269 0 result = wsrp_QueryResourcePropertiesResponseType_init_contents(
2270 &QueryResourcePropertiesResponse);
2271 0 if(result != GLOBUS_SUCCESS)
2272 {
2273 0 goto fault_exit;
2274 }
2275
2276 0 result = invoke_function(
2277 callback_handle->engine,
2278 callback_handle->message,
2279 &CounterService_descriptor,
2280 QueryResourceProperties,
2281 &QueryResourcePropertiesResponse,
2282 &fault_type_name,
2283 &fault);
2284
2285 0 fault_exit:
2286
2287 0 if(fault && fault_type_name)
2288 {
2289 0 fault_type = QueryResourceProperties_lookup_fault_type(fault_type_name);
2290
2291 0 result = globus_service_session_begin_response(
2292 callback_handle->message);
2293 0 if(result != GLOBUS_SUCCESS)
2294 {
2295 0 goto exit;
2296 }
2297
2298 0 soap_fault.faultcode = "Server";
2299 0 soap_fault.faultstring =
2300 "An error occurred while processing the message";
2301 0 soap_fault.faultactor = NULL;
2302
2303 0 switch(fault_type)
2304 {
2305
2306 case COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_UNKNOWNQUERYEXPRESSIONDIALECTFAULT:
2307
2308 0 xsd_any_init(&soap_fault.detail);
2309 0 soap_fault.detail->any_info = &wsrp_UnknownQueryExpressionDialectFaultType_info;
2310 0 xsd_QName_init(&soap_fault.detail->element);
2311 0 soap_fault.detail->element->local = "UnknownQueryExpressionDialectFault";
2312 0 soap_fault.detail->element->Namespace =
2313 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
2314 0 soap_fault.detail->value = fault;
2315 0 break;
2316
2317 case COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_RESOURCEUNKNOWNFAULT:
2318
2319 0 xsd_any_init(&soap_fault.detail);
2320 0 soap_fault.detail->any_info = &wsrp_ResourceUnknownFaultType_info;
2321 0 xsd_QName_init(&soap_fault.detail->element);
2322 0 soap_fault.detail->element->local = "ResourceUnknownFault";
2323 0 soap_fault.detail->element->Namespace =
2324 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
2325 0 soap_fault.detail->value = fault;
2326 0 break;
2327
2328 case COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_QUERYEVALUATIONERRORFAULT:
2329
2330 0 xsd_any_init(&soap_fault.detail);
2331 0 soap_fault.detail->any_info = &wsrp_QueryEvaluationErrorFaultType_info;
2332 0 xsd_QName_init(&soap_fault.detail->element);
2333 0 soap_fault.detail->element->local = "QueryEvaluationErrorFault";
2334 0 soap_fault.detail->element->Namespace =
2335 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
2336 0 soap_fault.detail->value = fault;
2337 0 break;
2338
2339 case COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_INVALIDQUERYEXPRESSIONFAULT:
2340
2341 0 xsd_any_init(&soap_fault.detail);
2342 0 soap_fault.detail->any_info = &wsrp_InvalidQueryExpressionFaultType_info;
2343 0 xsd_QName_init(&soap_fault.detail->element);
2344 0 soap_fault.detail->element->local = "InvalidQueryExpressionFault";
2345 0 soap_fault.detail->element->Namespace =
2346 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
2347 0 soap_fault.detail->value = fault;
2348 0 break;
2349
2350 case COUNTERPORTTYPE_QUERYRESOURCEPROPERTIES_INVALIDRESOURCEPROPERTYQNAMEFAULT:
2351
2352 0 xsd_any_init(&soap_fault.detail);
2353 0 soap_fault.detail->any_info = &wsrp_InvalidResourcePropertyQNameFaultType_info;
2354 0 xsd_QName_init(&soap_fault.detail->element);
2355 0 soap_fault.detail->element->local = "InvalidResourcePropertyQNameFault";
2356 0 soap_fault.detail->element->Namespace =
2357 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
2358 0 soap_fault.detail->value = fault;
2359 0 break;
2360
2361 default:
2362 0 result = CounterServiceErrorReturnedUnknownFault("QueryResourceProperties");
2363 0 goto exit;
2364 }
2365
2366 0 result = globus_service_session_serialize_fault_response(
2367 callback_handle->message, &soap_fault);
2368 0 if(result != GLOBUS_SUCCESS)
2369 {
2370 0 goto exit;
2371 }
2372
2373 0 soap_fault.detail->element->local = NULL;
2374 0 soap_fault.detail->element->Namespace = NULL;
2375 0 soap_fault.detail->any_info = NULL;
2376 0 xsd_any_destroy(soap_fault.detail);
2377
2378 0 globus_soap_message_handle_set_attr(
2379 callback_handle->message,
2380 WSADDR_ACTION_RESPONSE_KEY,
2381 globus_soap_message_attr_copy_string,
2382 globus_libc_free,
2383 WSADDRESSING_FAULT_NS);
2384 }
2385 0 else if(result != GLOBUS_SUCCESS)
2386 {
2387 globus_result_t local_result;
2388 0 local_result = globus_service_session_begin_response(
2389 callback_handle->message);
2390 0 if(local_result != GLOBUS_SUCCESS)
2391 {
2392 0 result = local_result;
2393 0 goto exit;
2394 }
2395
2396 0 soap_fault.faultcode = "Server";
2397 0 soap_fault.faultstring = globus_error_print_friendly(
2398 globus_error_get(result));
2399 0 result = GLOBUS_SUCCESS;
2400 0 soap_fault.faultactor = NULL;
2401 0 soap_fault.detail = NULL;
2402 0 result = globus_service_session_serialize_fault_response(
2403 callback_handle->message, &soap_fault);
2404 0 if(result != GLOBUS_SUCCESS)
2405 {
2406 0 goto exit;
2407 }
2408
2409 0 globus_soap_message_handle_set_attr(
2410 callback_handle->message,
2411 WSADDR_ACTION_RESPONSE_KEY,
2412 globus_soap_message_attr_copy_string,
2413 globus_libc_free,
2414 WSADDRESSING_FAULT_NS);
2415 }
2416 else
2417 {
2418 0 result = globus_service_session_begin_response(
2419 callback_handle->message);
2420 0 if(result != GLOBUS_SUCCESS)
2421 {
2422 0 goto exit;
2423 }
2424
2425 0 element_qname.local = "QueryResourcePropertiesResponse";
2426 0 element_qname.Namespace = "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd";
2427
2428 0 result = wsrp_QueryResourcePropertiesResponseType_serialize(
2429 &element_qname,
2430 &QueryResourcePropertiesResponse,
2431 callback_handle->message,
2432 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
2433 0 if(result != GLOBUS_SUCCESS)
2434 {
2435 0 goto exit;
2436 }
2437
2438 0 result = globus_service_session_end_response(
2439 callback_handle->message);
2440 0 if(result != GLOBUS_SUCCESS)
2441 {
2442 0 goto exit;
2443 }
2444
2445 0 wsrp_QueryResourcePropertiesResponseType_destroy_contents(
2446 &QueryResourcePropertiesResponse);
2447
2448 0 globus_soap_message_handle_set_attr(
2449 callback_handle->message,
2450 WSADDR_ACTION_RESPONSE_KEY,
2451 globus_soap_message_attr_copy_string,
2452 globus_libc_free,
2453 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourcePropertiesResponse");
2454 }
2455
2456 0 exit:
2457
2458 0 callback_handle->callback(
2459 result,
2460 callback_handle->args);
2461
2462 0 globus_libc_free(callback_handle);
2463
2464 0 CounterServiceDebugExit();
2465 }
2466
2467 static
2468 globus_result_t
2469 QueryResourceProperties_invoke(
2470 globus_service_engine_t engine,
2471 globus_soap_message_handle_t message,
2472 globus_service_response_t * response,
2473 globus_operation_invoke_callback_func_t invoke_callback,
2474 void * args)
2475 0 {
2476 QueryResourceProperties_callback_handle_t * callback_handle;
2477 0 globus_result_t result = GLOBUS_SUCCESS;
2478 GlobusFuncName(CounterPortType_QueryResourceProperties);
2479 0 CounterServiceDebugEnter();
2480
2481 0 callback_handle = malloc(sizeof(QueryResourceProperties_callback_handle_t));
2482 0 if(!callback_handle)
2483 {
2484 0 result = GlobusSoapMessageErrorOutOfMemory;
2485 0 goto exit;
2486 }
2487 0 memset(callback_handle, 0, sizeof(QueryResourceProperties_callback_handle_t));
2488
2489 0 callback_handle->engine = engine;
2490 0 callback_handle->message = message;
2491 0 callback_handle->callback = invoke_callback;
2492 0 callback_handle->args = args;
2493
2494 0 result = globus_callback_register_oneshot(
2495 NULL,
2496 &globus_i_reltime_zero,
2497 QueryResourceProperties_invoke_callback,
2498 callback_handle);
2499
2500 0 exit:
2501 0 CounterServiceDebugExit();
2502 0 return result;
2503 }
2504
2505 static
2506 globus_service_operation_descriptor_t
2507 QueryResourceProperties_operation_descriptor =
2508 {
2509 QueryResourceProperties_deserialize,
2510 QueryResourceProperties_invoke
2511 };
2512
2513 static
2514 globus_operation_provider_descriptor_t QueryResourceProperties_descriptor =
2515 {
2516 &CounterPortType_QueryResourceProperties_op_qname,
2517 "QueryResourceProperties",
2518 (void *)CounterPortType_QueryResourceProperties_init,
2519 (void *)CounterPortType_QueryResourceProperties_impl,
2520 NULL
2521 };
2522
2523
2524 xsd_QName CounterPortType_Destroy_op_qname =
2525 {
2526 "http://counter.com",
2527 "Destroy"
2528 };
2529
2530 xsd_QName CounterPortType_Destroy_input_qname =
2531 {
2532 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd",
2533 "Destroy"
2534 };
2535
2536 typedef globus_result_t (* Destroy_init_func_t) (
2537 globus_service_engine_t engine,
2538 globus_soap_message_handle_t message,
2539 wsrl_DestroyType * Destroy);
2540
2541 typedef globus_result_t (* Destroy_invoke_func_t) (
2542 globus_service_engine_t engine,
2543 globus_soap_message_handle_t message,
2544 globus_service_descriptor_t * descriptor,
2545 wsrl_DestroyType * Destroy,
2546 wsrl_DestroyResponseType * DestroyResponse,
2547 const char ** fault_type_name,
2548 void ** fault);
2549
2550 typedef struct Destroy_callback_handle_s
2551 {
2552 globus_service_engine_t engine;
2553 globus_soap_message_handle_t message;
2554 globus_operation_invoke_callback_func_t callback;
2555 void * args;
2556 } Destroy_callback_handle_t;
2557
2558
2559 const char * CounterPortType_Destroy_fault_strings[COUNTERPORTTYPE_DESTROY_RESOURCENOTDESTROYEDFAULT] =
2560 {
2561 "Unknown",
2562 "ResourceUnknownFault",
2563 "ResourceNotDestroyedFault"
2564 };
2565
2566 static
2567 CounterPortType_Destroy_fault_t
2568 Destroy_lookup_fault_type(
2569 const char * fault_name)
2570 0 {
2571 CounterPortType_Destroy_fault_t fault_type;
2572 GlobusFuncName(Destroy_lookup_fault_type);
2573 0 CounterServiceDebugEnter();
2574
2575 0 globus_assert(fault_name);
2576
2577 0 if(!strcmp(fault_name, "ResourceUnknownFault"))
2578 {
2579 0 fault_type = COUNTERPORTTYPE_DESTROY_RESOURCEUNKNOWNFAULT;
2580 }
2581 0 else if(!strcmp(fault_name, "ResourceNotDestroyedFault"))
2582 {
2583 0 fault_type = COUNTERPORTTYPE_DESTROY_RESOURCENOTDESTROYEDFAULT;
2584 }
2585 else
2586 {
2587 0 fault_type = COUNTERPORTTYPE_DESTROY_UNKNOWN_FAULT;
2588 }
2589
2590 0 CounterServiceDebugExit();
2591 0 return fault_type;
2592 }
2593
2594
2595
2596 static
2597 void
2598 Destroy_deserialize_callback(
2599 void * handle)
2600 1 {
2601 Destroy_callback_handle_t * callback_handle;
2602 1 globus_result_t result = GLOBUS_SUCCESS;
2603 struct globus_soap_message_fault_s soap_fault;
2604 Destroy_init_func_t init_function;
2605 Destroy_invoke_func_t invoke_function;
2606 wsrl_DestroyType * Destroy;
2607 GlobusFuncName(Destroy_deserialize_callback);
2608 1 CounterServiceDebugEnter();
2609
2610 1 callback_handle = (Destroy_callback_handle_t *) handle;
2611
2612 1 result = globus_operation_table_get_operation(
2613 CounterService_descriptor.operations,
2614 "Destroy",
2615 (void **)&init_function,
2616 (void **)&invoke_function);
2617 1 if(result != GLOBUS_SUCCESS)
2618 {
2619 1 goto exit;
2620 }
2621
2622 1 if(CounterService_descriptor.registry)
2623 {
2624 1 globus_soap_message_handle_set_registry(
2625 callback_handle->message,
2626 CounterService_descriptor.registry);
2627 }
2628
2629 1 result = wsrl_DestroyType_init(
2630 &Destroy);
2631 1 if(result != GLOBUS_SUCCESS)
2632 {
2633 1 goto exit;
2634 }
2635
2636 1 if(init_function)
2637 {
2638 /* do service specific initialization stuff */
2639 1 result = init_function(
2640 callback_handle->engine,
2641 callback_handle->message,
2642 Destroy);
2643 1 if(result != GLOBUS_SUCCESS)
2644 {
2645 1 goto free_exit;
2646 }
2647 }
2648
2649 1 result = wsrl_DestroyType_deserialize(
2650 &CounterPortType_Destroy_input_qname,
2651 Destroy,
2652 callback_handle->message,
2653 0);
2654 1 if(result != GLOBUS_SUCCESS)
2655 {
2656 1 goto free_exit;
2657 }
2658
2659 1 result = globus_soap_message_handle_set_attr(
2660 callback_handle->message,
2661 "DestroyOperationInputParameter",
2662 wsrl_DestroyType_copy_wrapper,
2663 wsrl_DestroyType_destroy_wrapper,
2664 (void *)Destroy);
2665 if(result != GLOBUS_SUCCESS)
2666 {
2667 goto free_exit;
2668 }
2669
2670 1 free_exit:
2671 1 wsrl_DestroyType_destroy(Destroy);
2672
2673 1 exit:
2674
2675 1 callback_handle->callback(
2676 result,
2677 callback_handle->args);
2678 1 free(callback_handle);
2679 1 CounterServiceDebugExit();
2680 }
2681 /* Destroy_deserialize_callback() */
2682
2683 static
2684 globus_result_t
2685 Destroy_deserialize(
2686 globus_service_engine_t engine,
2687 globus_soap_message_handle_t message,
2688 globus_operation_invoke_callback_func_t invoke_callback,
2689 void * args)
2690 1 {
2691 Destroy_callback_handle_t * callback_handle;
2692 1 globus_result_t result = GLOBUS_SUCCESS;
2693 GlobusFuncName(Destroy_deserialize);
2694 1 CounterServiceDebugEnter();
2695
2696 1 callback_handle = malloc(sizeof(Destroy_callback_handle_t));
2697 1 globus_assert_string(callback_handle,
2698 "Memory allocation failed "
2699 "for Destroy callback handle");
2700 1 memset(callback_handle, 0, sizeof(Destroy_callback_handle_t));
2701
2702 1 callback_handle->engine = engine;
2703 1 callback_handle->message = message;
2704 1 callback_handle->callback = invoke_callback;
2705 1 callback_handle->args = args;
2706
2707 1 result = globus_callback_register_oneshot(
2708 NULL,
2709 &globus_i_reltime_zero,
2710 Destroy_deserialize_callback,
2711 callback_handle);
2712
2713 1 CounterServiceDebugExit();
2714 1 return result;
2715 }
2716
2717 static
2718 void
2719 Destroy_invoke_callback(
2720 void * handle)
2721 1 {
2722 Destroy_callback_handle_t * callback_handle;
2723 1 globus_result_t result = GLOBUS_SUCCESS;
2724 struct globus_soap_message_fault_s soap_fault;
2725 Destroy_init_func_t init_function;
2726 Destroy_invoke_func_t invoke_function;
2727 wsrl_DestroyType * Destroy;
2728 wsrl_DestroyResponseType DestroyResponse;
2729 xsd_QName element_qname;
2730 1 const char * fault_type_name = NULL;
2731 1 CounterPortType_Destroy_fault_t fault_type = COUNTERPORTTYPE_DESTROY_NOFAULT;
2732 1 void * fault = NULL;
2733
2734 GlobusFuncName(Destroy_invoke_callback);
2735 1 CounterServiceDebugEnter();
2736
2737 1 callback_handle = (Destroy_callback_handle_t *) handle;
2738
2739 1 Destroy = globus_soap_message_handle_get_attr(
2740 callback_handle->message,
2741 "DestroyOperationInputParameter");
2742 1 globus_assert(Destroy);
2743
2744 1 result = globus_operation_table_get_operation(
2745 CounterService_descriptor.operations,
2746 "Destroy",
2747 (void **)&init_function,
2748 (void **)&invoke_function);
2749 1 if(result != GLOBUS_SUCCESS)
2750 {
2751 1 goto fault_exit;
2752 }
2753
2754
2755 1 result = wsrl_DestroyResponseType_init_contents(
2756 &DestroyResponse);
2757 1 if(result != GLOBUS_SUCCESS)
2758 {
2759 1 goto fault_exit;
2760 }
2761
2762 1 result = invoke_function(
2763 callback_handle->engine,
2764 callback_handle->message,
2765 &CounterService_descriptor,
2766 Destroy,
2767 &DestroyResponse,
2768 &fault_type_name,
2769 &fault);
2770
2771 1 fault_exit:
2772
2773 1 if(fault && fault_type_name)
2774 {
2775 0 fault_type = Destroy_lookup_fault_type(fault_type_name);
2776
2777 0 result = globus_service_session_begin_response(
2778 callback_handle->message);
2779 0 if(result != GLOBUS_SUCCESS)
2780 {
2781 0 goto exit;
2782 }
2783
2784 0 soap_fault.faultcode = "Server";
2785 0 soap_fault.faultstring =
2786 "An error occurred while processing the message";
2787 0 soap_fault.faultactor = NULL;
2788
2789 0 switch(fault_type)
2790 {
2791
2792 case COUNTERPORTTYPE_DESTROY_RESOURCEUNKNOWNFAULT:
2793
2794 0 xsd_any_init(&soap_fault.detail);
2795 0 soap_fault.detail->any_info = &wsrl_ResourceUnknownFaultType_info;
2796 0 xsd_QName_init(&soap_fault.detail->element);
2797 0 soap_fault.detail->element->local = "ResourceUnknownFault";
2798 0 soap_fault.detail->element->Namespace =
2799 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";
2800 0 soap_fault.detail->value = fault;
2801 0 break;
2802
2803 case COUNTERPORTTYPE_DESTROY_RESOURCENOTDESTROYEDFAULT:
2804
2805 0 xsd_any_init(&soap_fault.detail);
2806 0 soap_fault.detail->any_info = &wsrl_ResourceNotDestroyedFaultType_info;
2807 0 xsd_QName_init(&soap_fault.detail->element);
2808 0 soap_fault.detail->element->local = "ResourceNotDestroyedFault";
2809 0 soap_fault.detail->element->Namespace =
2810 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";
2811 0 soap_fault.detail->value = fault;
2812 0 break;
2813
2814 default:
2815 0 result = CounterServiceErrorReturnedUnknownFault("Destroy");
2816 0 goto exit;
2817 }
2818
2819 0 result = globus_service_session_serialize_fault_response(
2820 callback_handle->message, &soap_fault);
2821 0 if(result != GLOBUS_SUCCESS)
2822 {
2823 0 goto exit;
2824 }
2825
2826 0 soap_fault.detail->element->local = NULL;
2827 0 soap_fault.detail->element->Namespace = NULL;
2828 0 soap_fault.detail->any_info = NULL;
2829 0 xsd_any_destroy(soap_fault.detail);
2830
2831 0 globus_soap_message_handle_set_attr(
2832 callback_handle->message,
2833 WSADDR_ACTION_RESPONSE_KEY,
2834 globus_soap_message_attr_copy_string,
2835 globus_libc_free,
2836 WSADDRESSING_FAULT_NS);
2837 }
2838 1 else if(result != GLOBUS_SUCCESS)
2839 {
2840 globus_result_t local_result;
2841 0 local_result = globus_service_session_begin_response(
2842 callback_handle->message);
2843 0 if(local_result != GLOBUS_SUCCESS)
2844 {
2845 0 result = local_result;
2846 0 goto exit;
2847 }
2848
2849 0 soap_fault.faultcode = "Server";
2850 0 soap_fault.faultstring = globus_error_print_friendly(
2851 globus_error_get(result));
2852 0 result = GLOBUS_SUCCESS;
2853 0 soap_fault.faultactor = NULL;
2854 0 soap_fault.detail = NULL;
2855 0 result = globus_service_session_serialize_fault_response(
2856 callback_handle->message, &soap_fault);
2857 0 if(result != GLOBUS_SUCCESS)
2858 {
2859 0 goto exit;
2860 }
2861
2862 0 globus_soap_message_handle_set_attr(
2863 callback_handle->message,
2864 WSADDR_ACTION_RESPONSE_KEY,
2865 globus_soap_message_attr_copy_string,
2866 globus_libc_free,
2867 WSADDRESSING_FAULT_NS);
2868 }
2869 else
2870 {
2871 1 result = globus_service_session_begin_response(
2872 callback_handle->message);
2873 1 if(result != GLOBUS_SUCCESS)
2874 {
2875 1 goto exit;
2876 }
2877
2878 1 element_qname.local = "DestroyResponse";
2879 1 element_qname.Namespace = "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";
2880
2881 1 result = wsrl_DestroyResponseType_serialize(
2882 &element_qname,
2883 &DestroyResponse,
2884 callback_handle->message,
2885 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
2886 1 if(result != GLOBUS_SUCCESS)
2887 {
2888 1 goto exit;
2889 }
2890
2891 1 result = globus_service_session_end_response(
2892 callback_handle->message);
2893 1 if(result != GLOBUS_SUCCESS)
2894 {
2895 1 goto exit;
2896 }
2897
2898 1 wsrl_DestroyResponseType_destroy_contents(
2899 &DestroyResponse);
2900
2901 1 globus_soap_message_handle_set_attr(
2902 callback_handle->message,
2903 WSADDR_ACTION_RESPONSE_KEY,
2904 globus_soap_message_attr_copy_string,
2905 globus_libc_free,
2906 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/DestroyResponse");
2907 }
2908
2909 1 exit:
2910
2911 1 callback_handle->callback(
2912 result,
2913 callback_handle->args);
2914
2915 1 globus_libc_free(callback_handle);
2916
2917 1 CounterServiceDebugExit();
2918 }
2919
2920 static
2921 globus_result_t
2922 Destroy_invoke(
2923 globus_service_engine_t engine,
2924 globus_soap_message_handle_t message,
2925 globus_service_response_t * response,
2926 globus_operation_invoke_callback_func_t invoke_callback,
2927 void * args)
2928 1 {
2929 Destroy_callback_handle_t * callback_handle;
2930 1 globus_result_t result = GLOBUS_SUCCESS;
2931 GlobusFuncName(CounterPortType_Destroy);
2932 1 CounterServiceDebugEnter();
2933
2934 1 callback_handle = malloc(sizeof(Destroy_callback_handle_t));
2935 1 if(!callback_handle)
2936 {
2937 0 result = GlobusSoapMessageErrorOutOfMemory;
2938 0 goto exit;
2939 }
2940 1 memset(callback_handle, 0, sizeof(Destroy_callback_handle_t));
2941
2942 1 callback_handle->engine = engine;
2943 1 callback_handle->message = message;
2944 1 callback_handle->callback = invoke_callback;
2945 1 callback_handle->args = args;
2946
2947 1 result = globus_callback_register_oneshot(
2948 NULL,
2949 &globus_i_reltime_zero,
2950 Destroy_invoke_callback,
2951 callback_handle);
2952
2953 1 exit:
2954 1 CounterServiceDebugExit();
2955 1 return result;
2956 }
2957
2958 static
2959 globus_service_operation_descriptor_t
2960 Destroy_operation_descriptor =
2961 {
2962 Destroy_deserialize,
2963 Destroy_invoke
2964 };
2965
2966 static
2967 globus_operation_provider_descriptor_t Destroy_descriptor =
2968 {
2969 &CounterPortType_Destroy_op_qname,
2970 "Destroy",
2971 (void *)CounterPortType_Destroy_init,
2972 (void *)CounterPortType_Destroy_impl,
2973 NULL
2974 };
2975
2976
2977 xsd_QName CounterPortType_SetTerminationTime_op_qname =
2978 {
2979 "http://counter.com",
2980 "SetTerminationTime"
2981 };
2982
2983 xsd_QName CounterPortType_SetTerminationTime_input_qname =
2984 {
2985 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd",
2986 "SetTerminationTime"
2987 };
2988
2989 typedef globus_result_t (* SetTerminationTime_init_func_t) (
2990 globus_service_engine_t engine,
2991 globus_soap_message_handle_t message,
2992 wsrl_SetTerminationTimeType * SetTerminationTime);
2993
2994 typedef globus_result_t (* SetTerminationTime_invoke_func_t) (
2995 globus_service_engine_t engine,
2996 globus_soap_message_handle_t message,
2997 globus_service_descriptor_t * descriptor,
2998 wsrl_SetTerminationTimeType * SetTerminationTime,
2999 wsrl_SetTerminationTimeResponseType * SetTerminationTimeResponse,
3000 const char ** fault_type_name,
3001 void ** fault);
3002
3003 typedef struct SetTerminationTime_callback_handle_s
3004 {
3005 globus_service_engine_t engine;
3006 globus_soap_message_handle_t message;
3007 globus_operation_invoke_callback_func_t callback;
3008 void * args;
3009 } SetTerminationTime_callback_handle_t;
3010
3011
3012 const char * CounterPortType_SetTerminationTime_fault_strings[COUNTERPORTTYPE_SETTERMINATIONTIME_UNABLETOSETTERMINATIONTIMEFAULT] =
3013 {
3014 "Unknown",
3015 "TerminationTimeChangeRejectedFault",
3016 "ResourceUnknownFault",
3017 "UnableToSetTerminationTimeFault"
3018 };
3019
3020 static
3021 CounterPortType_SetTerminationTime_fault_t
3022 SetTerminationTime_lookup_fault_type(
3023 const char * fault_name)
3024 0 {
3025 CounterPortType_SetTerminationTime_fault_t fault_type;
3026 GlobusFuncName(SetTerminationTime_lookup_fault_type);
3027 0 CounterServiceDebugEnter();
3028
3029 0 globus_assert(fault_name);
3030
3031 0 if(!strcmp(fault_name, "TerminationTimeChangeRejectedFault"))
3032 {
3033 0 fault_type = COUNTERPORTTYPE_SETTERMINATIONTIME_TERMINATIONTIMECHANGEREJECTEDFAULT;
3034 }
3035 0 else if(!strcmp(fault_name, "ResourceUnknownFault"))
3036 {
3037 0 fault_type = COUNTERPORTTYPE_SETTERMINATIONTIME_RESOURCEUNKNOWNFAULT;
3038 }
3039 0 else if(!strcmp(fault_name, "UnableToSetTerminationTimeFault"))
3040 {
3041 0 fault_type = COUNTERPORTTYPE_SETTERMINATIONTIME_UNABLETOSETTERMINATIONTIMEFAULT;
3042 }
3043 else
3044 {
3045 0 fault_type = COUNTERPORTTYPE_SETTERMINATIONTIME_UNKNOWN_FAULT;
3046 }
3047
3048 0 CounterServiceDebugExit();
3049 0 return fault_type;
3050 }
3051
3052
3053
3054 static
3055 void
3056 SetTerminationTime_deserialize_callback(
3057 void * handle)
3058 0 {
3059 SetTerminationTime_callback_handle_t * callback_handle;
3060 0 globus_result_t result = GLOBUS_SUCCESS;
3061 struct globus_soap_message_fault_s soap_fault;
3062 SetTerminationTime_init_func_t init_function;
3063 SetTerminationTime_invoke_func_t invoke_function;
3064 wsrl_SetTerminationTimeType * SetTerminationTime;
3065 GlobusFuncName(SetTerminationTime_deserialize_callback);
3066 0 CounterServiceDebugEnter();
3067
3068 0 callback_handle = (SetTerminationTime_callback_handle_t *) handle;
3069
3070 0 result = globus_operation_table_get_operation(
3071 CounterService_descriptor.operations,
3072 "SetTerminationTime",
3073 (void **)&init_function,
3074 (void **)&invoke_function);
3075 0 if(result != GLOBUS_SUCCESS)
3076 {
3077 0 goto exit;
3078 }
3079
3080 0 if(CounterService_descriptor.registry)
3081 {
3082 0 globus_soap_message_handle_set_registry(
3083 callback_handle->message,
3084 CounterService_descriptor.registry);
3085 }
3086
3087 0 result = wsrl_SetTerminationTimeType_init(
3088 &SetTerminationTime);
3089 0 if(result != GLOBUS_SUCCESS)
3090 {
3091 0 goto exit;
3092 }
3093
3094 0 if(init_function)
3095 {
3096 /* do service specific initialization stuff */
3097 0 result = init_function(
3098 callback_handle->engine,
3099 callback_handle->message,
3100 SetTerminationTime);
3101 0 if(result != GLOBUS_SUCCESS)
3102 {
3103 0 goto free_exit;
3104 }
3105 }
3106
3107 0 result = wsrl_SetTerminationTimeType_deserialize(
3108 &CounterPortType_SetTerminationTime_input_qname,
3109 SetTerminationTime,
3110 callback_handle->message,
3111 0);
3112 0 if(result != GLOBUS_SUCCESS)
3113 {
3114 0 goto free_exit;
3115 }
3116
3117 0 result = globus_soap_message_handle_set_attr(
3118 callback_handle->message,
3119 "SetTerminationTimeOperationInputParameter",
3120 wsrl_SetTerminationTimeType_copy_wrapper,
3121 wsrl_SetTerminationTimeType_destroy_wrapper,
3122 (void *)SetTerminationTime);
3123 if(result != GLOBUS_SUCCESS)
3124 {
3125 goto free_exit;
3126 }
3127
3128 0 free_exit:
3129 0 wsrl_SetTerminationTimeType_destroy(SetTerminationTime);
3130
3131 0 exit:
3132
3133 0 callback_handle->callback(
3134 result,
3135 callback_handle->args);
3136 0 free(callback_handle);
3137 0 CounterServiceDebugExit();
3138 }
3139 /* SetTerminationTime_deserialize_callback() */
3140
3141 static
3142 globus_result_t
3143 SetTerminationTime_deserialize(
3144 globus_service_engine_t engine,
3145 globus_soap_message_handle_t message,
3146 globus_operation_invoke_callback_func_t invoke_callback,
3147 void * args)
3148 0 {
3149 SetTerminationTime_callback_handle_t * callback_handle;
3150 0 globus_result_t result = GLOBUS_SUCCESS;
3151 GlobusFuncName(SetTerminationTime_deserialize);
3152 0 CounterServiceDebugEnter();
3153
3154 0 callback_handle = malloc(sizeof(SetTerminationTime_callback_handle_t));
3155 0 globus_assert_string(callback_handle,
3156 "Memory allocation failed "
3157 "for SetTerminationTime callback handle");
3158 0 memset(callback_handle, 0, sizeof(SetTerminationTime_callback_handle_t));
3159
3160 0 callback_handle->engine = engine;
3161 0 callback_handle->message = message;
3162 0 callback_handle->callback = invoke_callback;
3163 0 callback_handle->args = args;
3164
3165 0 result = globus_callback_register_oneshot(
3166 NULL,
3167 &globus_i_reltime_zero,
3168 SetTerminationTime_deserialize_callback,
3169 callback_handle);
3170
3171 0 CounterServiceDebugExit();
3172 0 return result;
3173 }
3174
3175 static
3176 void
3177 SetTerminationTime_invoke_callback(
3178 void * handle)
3179 0 {
3180 SetTerminationTime_callback_handle_t * callback_handle;
3181 0 globus_result_t result = GLOBUS_SUCCESS;
3182 struct globus_soap_message_fault_s soap_fault;
3183 SetTerminationTime_init_func_t init_function;
3184 SetTerminationTime_invoke_func_t invoke_function;
3185 wsrl_SetTerminationTimeType * SetTerminationTime;
3186 wsrl_SetTerminationTimeResponseType SetTerminationTimeResponse;
3187 xsd_QName element_qname;
3188 0 const char * fault_type_name = NULL;
3189 0 CounterPortType_SetTerminationTime_fault_t fault_type = COUNTERPORTTYPE_SETTERMINATIONTIME_NOFAULT;
3190 0 void * fault = NULL;
3191
3192 GlobusFuncName(SetTerminationTime_invoke_callback);
3193 0 CounterServiceDebugEnter();
3194
3195 0 callback_handle = (SetTerminationTime_callback_handle_t *) handle;
3196
3197 0 SetTerminationTime = globus_soap_message_handle_get_attr(
3198 callback_handle->message,
3199 "SetTerminationTimeOperationInputParameter");
3200 0 globus_assert(SetTerminationTime);
3201
3202 0 result = globus_operation_table_get_operation(
3203 CounterService_descriptor.operations,
3204 "SetTerminationTime",
3205 (void **)&init_function,
3206 (void **)&invoke_function);
3207 0 if(result != GLOBUS_SUCCESS)
3208 {
3209 0 goto fault_exit;
3210 }
3211
3212
3213 0 result = wsrl_SetTerminationTimeResponseType_init_contents(
3214 &SetTerminationTimeResponse);
3215 0 if(result != GLOBUS_SUCCESS)
3216 {
3217 0 goto fault_exit;
3218 }
3219
3220 0 result = invoke_function(
3221 callback_handle->engine,
3222 callback_handle->message,
3223 &CounterService_descriptor,
3224 SetTerminationTime,
3225 &SetTerminationTimeResponse,
3226 &fault_type_name,
3227 &fault);
3228
3229 0 fault_exit:
3230
3231 0 if(fault && fault_type_name)
3232 {
3233 0 fault_type = SetTerminationTime_lookup_fault_type(fault_type_name);
3234
3235 0 result = globus_service_session_begin_response(
3236 callback_handle->message);
3237 0 if(result != GLOBUS_SUCCESS)
3238 {
3239 0 goto exit;
3240 }
3241
3242 0 soap_fault.faultcode = "Server";
3243 0 soap_fault.faultstring =
3244 "An error occurred while processing the message";
3245 0 soap_fault.faultactor = NULL;
3246
3247 0 switch(fault_type)
3248 {
3249
3250 case COUNTERPORTTYPE_SETTERMINATIONTIME_TERMINATIONTIMECHANGEREJECTEDFAULT:
3251
3252 0 xsd_any_init(&soap_fault.detail);
3253 0 soap_fault.detail->any_info = &wsrl_TerminationTimeChangeRejectedFaultType_info;
3254 0 xsd_QName_init(&soap_fault.detail->element);
3255 0 soap_fault.detail->element->local = "TerminationTimeChangeRejectedFault";
3256 0 soap_fault.detail->element->Namespace =
3257 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";
3258 0 soap_fault.detail->value = fault;
3259 0 break;
3260
3261 case COUNTERPORTTYPE_SETTERMINATIONTIME_RESOURCEUNKNOWNFAULT:
3262
3263 0 xsd_any_init(&soap_fault.detail);
3264 0 soap_fault.detail->any_info = &wsrl_ResourceUnknownFaultType_info;
3265 0 xsd_QName_init(&soap_fault.detail->element);
3266 0 soap_fault.detail->element->local = "ResourceUnknownFault";
3267 0 soap_fault.detail->element->Namespace =
3268 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";
3269 0 soap_fault.detail->value = fault;
3270 0 break;
3271
3272 case COUNTERPORTTYPE_SETTERMINATIONTIME_UNABLETOSETTERMINATIONTIMEFAULT:
3273
3274 0 xsd_any_init(&soap_fault.detail);
3275 0 soap_fault.detail->any_info = &wsrl_UnableToSetTerminationTimeFaultType_info;
3276 0 xsd_QName_init(&soap_fault.detail->element);
3277 0 soap_fault.detail->element->local = "UnableToSetTerminationTimeFault";
3278 0 soap_fault.detail->element->Namespace =
3279 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";
3280 0 soap_fault.detail->value = fault;
3281 0 break;
3282
3283 default:
3284 0 result = CounterServiceErrorReturnedUnknownFault("SetTerminationTime");
3285 0 goto exit;
3286 }
3287
3288 0 result = globus_service_session_serialize_fault_response(
3289 callback_handle->message, &soap_fault);
3290 0 if(result != GLOBUS_SUCCESS)
3291 {
3292 0 goto exit;
3293 }
3294
3295 0 soap_fault.detail->element->local = NULL;
3296 0 soap_fault.detail->element->Namespace = NULL;
3297 0 soap_fault.detail->any_info = NULL;
3298 0 xsd_any_destroy(soap_fault.detail);
3299
3300 0 globus_soap_message_handle_set_attr(
3301 callback_handle->message,
3302 WSADDR_ACTION_RESPONSE_KEY,
3303 globus_soap_message_attr_copy_string,
3304 globus_libc_free,
3305 WSADDRESSING_FAULT_NS);
3306 }
3307 0 else if(result != GLOBUS_SUCCESS)
3308 {
3309 globus_result_t local_result;
3310 0 local_result = globus_service_session_begin_response(
3311 callback_handle->message);
3312 0 if(local_result != GLOBUS_SUCCESS)
3313 {
3314 0 result = local_result;
3315 0 goto exit;
3316 }
3317
3318 0 soap_fault.faultcode = "Server";
3319 0 soap_fault.faultstring = globus_error_print_friendly(
3320 globus_error_get(result));
3321 0 result = GLOBUS_SUCCESS;
3322 0 soap_fault.faultactor = NULL;
3323 0 soap_fault.detail = NULL;
3324 0 result = globus_service_session_serialize_fault_response(
3325 callback_handle->message, &soap_fault);
3326 0 if(result != GLOBUS_SUCCESS)
3327 {
3328 0 goto exit;
3329 }
3330
3331 0 globus_soap_message_handle_set_attr(
3332 callback_handle->message,
3333 WSADDR_ACTION_RESPONSE_KEY,
3334 globus_soap_message_attr_copy_string,
3335 globus_libc_free,
3336 WSADDRESSING_FAULT_NS);
3337 }
3338 else
3339 {
3340 0 result = globus_service_session_begin_response(
3341 callback_handle->message);
3342 0 if(result != GLOBUS_SUCCESS)
3343 {
3344 0 goto exit;
3345 }
3346
3347 0 element_qname.local = "SetTerminationTimeResponse";
3348 0 element_qname.Namespace = "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd";
3349
3350 0 result = wsrl_SetTerminationTimeResponseType_serialize(
3351 &element_qname,
3352 &SetTerminationTimeResponse,
3353 callback_handle->message,
3354 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
3355 0 if(result != GLOBUS_SUCCESS)
3356 {
3357 0 goto exit;
3358 }
3359
3360 0 result = globus_service_session_end_response(
3361 callback_handle->message);
3362 0 if(result != GLOBUS_SUCCESS)
3363 {
3364 0 goto exit;
3365 }
3366
3367 0 wsrl_SetTerminationTimeResponseType_destroy_contents(
3368 &SetTerminationTimeResponse);
3369
3370 0 globus_soap_message_handle_set_attr(
3371 callback_handle->message,
3372 WSADDR_ACTION_RESPONSE_KEY,
3373 globus_soap_message_attr_copy_string,
3374 globus_libc_free,
3375 "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/SetTerminationTimeResponse");
3376 }
3377
3378 0 exit:
3379
3380 0 callback_handle->callback(
3381 result,
3382 callback_handle->args);
3383
3384 0 globus_libc_free(callback_handle);
3385
3386 0 CounterServiceDebugExit();
3387 }
3388
3389 static
3390 globus_result_t
3391 SetTerminationTime_invoke(
3392 globus_service_engine_t engine,
3393 globus_soap_message_handle_t message,
3394 globus_service_response_t * response,
3395 globus_operation_invoke_callback_func_t invoke_callback,
3396 void * args)
3397 0 {
3398 SetTerminationTime_callback_handle_t * callback_handle;
3399 0 globus_result_t result = GLOBUS_SUCCESS;
3400 GlobusFuncName(CounterPortType_SetTerminationTime);
3401 0 CounterServiceDebugEnter();
3402
3403 0 callback_handle = malloc(sizeof(SetTerminationTime_callback_handle_t));
3404 0 if(!callback_handle)
3405 {
3406 0 result = GlobusSoapMessageErrorOutOfMemory;
3407 0 goto exit;
3408 }
3409 0 memset(callback_handle, 0, sizeof(SetTerminationTime_callback_handle_t));
3410
3411 0 callback_handle->engine = engine;
3412 0 callback_handle->message = message;
3413 0 callback_handle->callback = invoke_callback;
3414 0 callback_handle->args = args;
3415
3416 0 result = globus_callback_register_oneshot(
3417 NULL,
3418 &globus_i_reltime_zero,
3419 SetTerminationTime_invoke_callback,
3420 callback_handle);
3421
3422 0 exit:
3423 0 CounterServiceDebugExit();
3424 0 return result;
3425 }
3426
3427 static
3428 globus_service_operation_descriptor_t
3429 SetTerminationTime_operation_descriptor =
3430 {
3431 SetTerminationTime_deserialize,
3432 SetTerminationTime_invoke
3433 };
3434
3435 static
3436 globus_operation_provider_descriptor_t SetTerminationTime_descriptor =
3437 {
3438 &CounterPortType_SetTerminationTime_op_qname,
3439 "SetTerminationTime",
3440 (void *)CounterPortType_SetTerminationTime_init,
3441 (void *)CounterPortType_SetTerminationTime_impl,
3442 NULL
3443 };
3444
3445
3446 xsd_QName CounterPortType_add_op_qname =
3447 {
3448 "http://counter.com",
3449 "add"
3450 };
3451
3452 xsd_QName CounterPortType_add_input_qname =
3453 {
3454 "http://counter.com",
3455 "add"
3456 };
3457
3458 typedef globus_result_t (* add_init_func_t) (
3459 globus_service_engine_t engine,
3460 globus_soap_message_handle_t message,
3461 xsd_int * add);
3462
3463 typedef globus_result_t (* add_invoke_func_t) (
3464 globus_service_engine_t engine,
3465 globus_soap_message_handle_t message,
3466 globus_service_descriptor_t * descriptor,
3467 xsd_int * add,
3468 xsd_int * addResponse,
3469 const char ** fault_type_name,
3470 void ** fault);
3471
3472 typedef struct add_callback_handle_s
3473 {
3474 globus_service_engine_t engine;
3475 globus_soap_message_handle_t message;
3476 globus_operation_invoke_callback_func_t callback;
3477 void * args;
3478 } add_callback_handle_t;
3479
3480
3481 const char * CounterPortType_add_fault_strings[COUNTERPORTTYPE_ADD_UNKNOWN_FAULT] =
3482 {
3483 "Unknown"
3484
3485 };
3486
3487 static
3488 CounterPortType_add_fault_t
3489 add_lookup_fault_type(
3490 const char * fault_name)
3491 0 {
3492 CounterPortType_add_fault_t fault_type;
3493 GlobusFuncName(add_lookup_fault_type);
3494 0 CounterServiceDebugEnter();
3495
3496 0 globus_assert(fault_name);
3497
3498
3499 {
3500 0 fault_type = COUNTERPORTTYPE_ADD_UNKNOWN_FAULT;
3501 }
3502
3503 0 CounterServiceDebugExit();
3504 0 return fault_type;
3505 }
3506
3507
3508
3509 static
3510 void
3511 add_deserialize_callback(
3512 void * handle)
3513 12 {
3514 add_callback_handle_t * callback_handle;
3515 12 globus_result_t result = GLOBUS_SUCCESS;
3516 struct globus_soap_message_fault_s soap_fault;
3517 add_init_func_t init_function;
3518 add_invoke_func_t invoke_function;
3519 xsd_int * add;
3520 GlobusFuncName(add_deserialize_callback);
3521 12 CounterServiceDebugEnter();
3522
3523 12 callback_handle = (add_callback_handle_t *) handle;
3524
3525 12 result = globus_operation_table_get_operation(
3526 CounterService_descriptor.operations,
3527 "add",
3528 (void **)&init_function,
3529 (void **)&invoke_function);
3530 12 if(result != GLOBUS_SUCCESS)
3531 {
3532 12 goto exit;
3533 }
3534
3535 12 if(CounterService_descriptor.registry)
3536 {
3537 12 globus_soap_message_handle_set_registry(
3538 callback_handle->message,
3539 CounterService_descriptor.registry);
3540 }
3541
3542 12 result = xsd_int_init(
3543 &add);
3544 12 if(result != GLOBUS_SUCCESS)
3545 {
3546 12 goto exit;
3547 }
3548
3549 12 if(init_function)
3550 {
3551 /* do service specific initialization stuff */
3552 12 result = init_function(
3553 callback_handle->engine,
3554 callback_handle->message,
3555 add);
3556 12 if(result != GLOBUS_SUCCESS)
3557 {
3558 12 goto free_exit;
3559 }
3560 }
3561
3562 12 result = xsd_int_deserialize(
3563 &CounterPortType_add_input_qname,
3564 add,
3565 callback_handle->message,
3566 0);
3567 12 if(result != GLOBUS_SUCCESS)
3568 {
3569 12 goto free_exit;
3570 }
3571
3572 12 result = globus_soap_message_handle_set_attr(
3573 callback_handle->message,
3574 "addOperationInputParameter",
3575 xsd_int_copy_wrapper,
3576 xsd_int_destroy_wrapper,
3577 (void *)add);
3578 if(result != GLOBUS_SUCCESS)
3579 {
3580 goto free_exit;
3581 }
3582
3583 12 free_exit:
3584 12 xsd_int_destroy(add);
3585
3586 12 exit:
3587
3588 12 callback_handle->callback(
3589 result,
3590 callback_handle->args);
3591 12 free(callback_handle);
3592 12 CounterServiceDebugExit();
3593 }
3594 /* add_deserialize_callback() */
3595
3596 static
3597 globus_result_t
3598 add_deserialize(
3599 globus_service_engine_t engine,
3600 globus_soap_message_handle_t message,
3601 globus_operation_invoke_callback_func_t invoke_callback,
3602 void * args)
3603 12 {
3604 add_callback_handle_t * callback_handle;
3605 12 globus_result_t result = GLOBUS_SUCCESS;
3606 GlobusFuncName(add_deserialize);
3607 12 CounterServiceDebugEnter();
3608
3609 12 callback_handle = malloc(sizeof(add_callback_handle_t));
3610 12 globus_assert_string(callback_handle,
3611 "Memory allocation failed "
3612 "for add callback handle");
3613 12 memset(callback_handle, 0, sizeof(add_callback_handle_t));
3614
3615 12 callback_handle->engine = engine;
3616 12 callback_handle->message = message;
3617 12 callback_handle->callback = invoke_callback;
3618 12 callback_handle->args = args;
3619
3620 12 result = globus_callback_register_oneshot(
3621 NULL,
3622 &globus_i_reltime_zero,
3623 add_deserialize_callback,
3624 callback_handle);
3625
3626 12 CounterServiceDebugExit();
3627 12 return result;
3628 }
3629
3630 static
3631 void
3632 add_invoke_callback(
3633 void * handle)
3634 12 {
3635 add_callback_handle_t * callback_handle;
3636 12 globus_result_t result = GLOBUS_SUCCESS;
3637 struct globus_soap_message_fault_s soap_fault;
3638 add_init_func_t init_function;
3639 add_invoke_func_t invoke_function;
3640 xsd_int * add;
3641 xsd_int addResponse;
3642 xsd_QName element_qname;
3643 12 const char * fault_type_name = NULL;
3644 12 CounterPortType_add_fault_t fault_type = COUNTERPORTTYPE_ADD_NOFAULT;
3645 12 void * fault = NULL;
3646
3647 GlobusFuncName(add_invoke_callback);
3648 12 CounterServiceDebugEnter();
3649
3650 12 callback_handle = (add_callback_handle_t *) handle;
3651
3652 12 add = globus_soap_message_handle_get_attr(
3653 callback_handle->message,
3654 "addOperationInputParameter");
3655 12 globus_assert(add);
3656
3657 12 result = globus_operation_table_get_operation(
3658 CounterService_descriptor.operations,
3659 "add",
3660 (void **)&init_function,
3661 (void **)&invoke_function);
3662 12 if(result != GLOBUS_SUCCESS)
3663 {
3664 12 goto fault_exit;
3665 }
3666
3667
3668 12 result = xsd_int_init_contents(
3669 &addResponse);
3670 12 if(result != GLOBUS_SUCCESS)
3671 {
3672 12 goto fault_exit;
3673 }
3674
3675 12 result = invoke_function(
3676 callback_handle->engine,
3677 callback_handle->message,
3678 &CounterService_descriptor,
3679 add,
3680 &addResponse,
3681 &fault_type_name,
3682 &fault);
3683
3684 12 fault_exit:
3685
3686 12 if(fault && fault_type_name)
3687 {
3688 0 fault_type = add_lookup_fault_type(fault_type_name);
3689
3690 0 result = globus_service_session_begin_response(
3691 callback_handle->message);
3692 0 if(result != GLOBUS_SUCCESS)
3693 {
3694 0 goto exit;
3695 }
3696
3697 0 soap_fault.faultcode = "Server";
3698 0 soap_fault.faultstring =
3699 "An error occurred while processing the message";
3700 0 soap_fault.faultactor = NULL;
3701
3702 switch(fault_type)
3703 {
3704
3705 default:
3706 0 result = CounterServiceErrorReturnedUnknownFault("add");
3707 0 goto exit;
3708 }
3709
3710 result = globus_service_session_serialize_fault_response(
3711 callback_handle->message, &soap_fault);
3712 if(result != GLOBUS_SUCCESS)
3713 {
3714 goto exit;
3715 }
3716
3717 soap_fault.detail->element->local = NULL;
3718 soap_fault.detail->element->Namespace = NULL;
3719 soap_fault.detail->any_info = NULL;
3720 xsd_any_destroy(soap_fault.detail);
3721
3722 globus_soap_message_handle_set_attr(
3723 callback_handle->message,
3724 WSADDR_ACTION_RESPONSE_KEY,
3725 globus_soap_message_attr_copy_string,
3726 globus_libc_free,
3727 WSADDRESSING_FAULT_NS);
3728 }
3729 12 else if(result != GLOBUS_SUCCESS)
3730 {
3731 globus_result_t local_result;
3732 1 local_result = globus_service_session_begin_response(
3733 callback_handle->message);
3734 1 if(local_result != GLOBUS_SUCCESS)
3735 {
3736 0 result = local_result;
3737 0 goto exit;
3738 }
3739
3740 1 soap_fault.faultcode = "Server";
3741 1 soap_fault.faultstring = globus_error_print_friendly(
3742 globus_error_get(result));
3743 1 result = GLOBUS_SUCCESS;
3744 1 soap_fault.faultactor = NULL;
3745 1 soap_fault.detail = NULL;
3746 1 result = globus_service_session_serialize_fault_response(
3747 callback_handle->message, &soap_fault);
3748 1 if(result != GLOBUS_SUCCESS)
3749 {
3750 1 goto exit;
3751 }
3752
3753 1 globus_soap_message_handle_set_attr(
3754 callback_handle->message,
3755 WSADDR_ACTION_RESPONSE_KEY,
3756 globus_soap_message_attr_copy_string,
3757 globus_libc_free,
3758 WSADDRESSING_FAULT_NS);
3759 }
3760 else
3761 {
3762 11 result = globus_service_session_begin_response(
3763 callback_handle->message);
3764 11 if(result != GLOBUS_SUCCESS)
3765 {
3766 11 goto exit;
3767 }
3768
3769 11 element_qname.local = "addResponse";
3770 11 element_qname.Namespace = "http://counter.com";
3771
3772 11 result = xsd_int_serialize(
3773 &element_qname,
3774 &addResponse,
3775 callback_handle->message,
3776 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
3777 11 if(result != GLOBUS_SUCCESS)
3778 {
3779 11 goto exit;
3780 }
3781
3782 11 result = globus_service_session_end_response(
3783 callback_handle->message);
3784 11 if(result != GLOBUS_SUCCESS)
3785 {
3786 11 goto exit;
3787 }
3788
3789 11 xsd_int_destroy_contents(
3790 &addResponse);
3791
3792 11 globus_soap_message_handle_set_attr(
3793 callback_handle->message,
3794 WSADDR_ACTION_RESPONSE_KEY,
3795 globus_soap_message_attr_copy_string,
3796 globus_libc_free,
3797 "http://counter.com/CounterPortType/addResponse");
3798 }
3799
3800 12 exit:
3801
3802 12 callback_handle->callback(
3803 result,
3804 callback_handle->args);
3805
3806 12 globus_libc_free(callback_handle);
3807
3808 12 CounterServiceDebugExit();
3809 }
3810
3811 static
3812 globus_result_t
3813 add_invoke(
3814 globus_service_engine_t engine,
3815 globus_soap_message_handle_t message,
3816 globus_service_response_t * response,
3817 globus_operation_invoke_callback_func_t invoke_callback,
3818 void * args)
3819 12 {
3820 add_callback_handle_t * callback_handle;
3821 12 globus_result_t result = GLOBUS_SUCCESS;
3822 GlobusFuncName(CounterPortType_add);
3823 12 CounterServiceDebugEnter();
3824
3825 12 callback_handle = malloc(sizeof(add_callback_handle_t));
3826 12 if(!callback_handle)
3827 {
3828 0 result = GlobusSoapMessageErrorOutOfMemory;
3829 0 goto exit;
3830 }
3831 12 memset(callback_handle, 0, sizeof(add_callback_handle_t));
3832
3833 12 callback_handle->engine = engine;
3834 12 callback_handle->message = message;
3835 12 callback_handle->callback = invoke_callback;
3836 12 callback_handle->args = args;
3837
3838 12 result = globus_callback_register_oneshot(
3839 NULL,
3840 &globus_i_reltime_zero,
3841 add_invoke_callback,
3842 callback_handle);
3843
3844 12 exit:
3845 12 CounterServiceDebugExit();
3846 12 return result;
3847 }
3848
3849 static
3850 globus_service_operation_descriptor_t
3851 add_operation_descriptor =
3852 {
3853 add_deserialize,
3854 add_invoke
3855 };
3856
3857 static
3858 globus_operation_provider_descriptor_t add_descriptor =
3859 {
3860 &CounterPortType_add_op_qname,
3861 "add",
3862 (void *)CounterPortType_add_init,
3863 (void *)CounterPortType_add_impl,
3864 NULL
3865 };
3866
3867
3868 xsd_QName CounterPortType_createCounter_op_qname =
3869 {
3870 "http://counter.com",
3871 "createCounter"
3872 };
3873
3874 xsd_QName CounterPortType_createCounter_input_qname =
3875 {
3876 "http://counter.com",
3877 "createCounter"
3878 };
3879
3880 typedef globus_result_t (* createCounter_init_func_t) (
3881 globus_service_engine_t engine,
3882 globus_soap_message_handle_t message,
3883 createCounterType * createCounter);
3884
3885 typedef globus_result_t (* createCounter_invoke_func_t) (
3886 globus_service_engine_t engine,
3887 globus_soap_message_handle_t message,
3888 globus_service_descriptor_t * descriptor,
3889 createCounterType * createCounter,
3890 createCounterResponseType * createCounterResponse,
3891 const char ** fault_type_name,
3892 void ** fault);
3893
3894 typedef struct createCounter_callback_handle_s
3895 {
3896 globus_service_engine_t engine;
3897 globus_soap_message_handle_t message;
3898 globus_operation_invoke_callback_func_t callback;
3899 void * args;
3900 } createCounter_callback_handle_t;
3901
3902
3903 const char * CounterPortType_createCounter_fault_strings[COUNTERPORTTYPE_CREATECOUNTER_UNKNOWN_FAULT] =
3904 {
3905 "Unknown"
3906
3907 };
3908
3909 static
3910 CounterPortType_createCounter_fault_t
3911 createCounter_lookup_fault_type(
3912 const char * fault_name)
3913 0 {
3914 CounterPortType_createCounter_fault_t fault_type;
3915 GlobusFuncName(createCounter_lookup_fault_type);
3916 0 CounterServiceDebugEnter();
3917
3918 0 globus_assert(fault_name);
3919
3920
3921 {
3922 0 fault_type = COUNTERPORTTYPE_CREATECOUNTER_UNKNOWN_FAULT;
3923 }
3924
3925 0 CounterServiceDebugExit();
3926 0 return fault_type;
3927 }
3928
3929
3930
3931 static
3932 void
3933 createCounter_deserialize_callback(
3934 void * handle)
3935 3 {
3936 createCounter_callback_handle_t * callback_handle;
3937 3 globus_result_t result = GLOBUS_SUCCESS;
3938 struct globus_soap_message_fault_s soap_fault;
3939 createCounter_init_func_t init_function;
3940 createCounter_invoke_func_t invoke_function;
3941 createCounterType * createCounter;
3942 GlobusFuncName(createCounter_deserialize_callback);
3943 3 CounterServiceDebugEnter();
3944
3945 3 callback_handle = (createCounter_callback_handle_t *) handle;
3946
3947 3 result = globus_operation_table_get_operation(
3948 CounterService_descriptor.operations,
3949 "createCounter",
3950 (void **)&init_function,
3951 (void **)&invoke_function);
3952 3 if(result != GLOBUS_SUCCESS)
3953 {
3954 3 goto exit;
3955 }
3956
3957 3 if(CounterService_descriptor.registry)
3958 {
3959 3 globus_soap_message_handle_set_registry(
3960 callback_handle->message,
3961 CounterService_descriptor.registry);
3962 }
3963
3964 3 result = createCounterType_init(
3965 &createCounter);
3966 3 if(result != GLOBUS_SUCCESS)
3967 {
3968 3 goto exit;
3969 }
3970
3971 3 if(init_function)
3972 {
3973 /* do service specific initialization stuff */
3974 3 result = init_function(
3975 callback_handle->engine,
3976 callback_handle->message,
3977 createCounter);
3978 3 if(result != GLOBUS_SUCCESS)
3979 {
3980 3 goto free_exit;
3981 }
3982 }
3983
3984 3 result = createCounterType_deserialize(
3985 &CounterPortType_createCounter_input_qname,
3986 createCounter,
3987 callback_handle->message,
3988 0);
3989 3 if(result != GLOBUS_SUCCESS)
3990 {
3991 3 goto free_exit;
3992 }
3993
3994 3 result = globus_soap_message_handle_set_attr(
3995 callback_handle->message,
3996 "createCounterOperationInputParameter",
3997 createCounterType_copy_wrapper,
3998 createCounterType_destroy_wrapper,
3999 (void *)createCounter);
4000 if(result != GLOBUS_SUCCESS)
4001 {
4002 goto free_exit;
4003 }
4004
4005 3 free_exit:
4006 3 createCounterType_destroy(createCounter);
4007
4008 3 exit:
4009
4010 3 callback_handle->callback(
4011 result,
4012 callback_handle->args);
4013 3 free(callback_handle);
4014 3 CounterServiceDebugExit();
4015 }
4016 /* createCounter_deserialize_callback() */
4017
4018 static
4019 globus_result_t
4020 createCounter_deserialize(
4021 globus_service_engine_t engine,
4022 globus_soap_message_handle_t message,
4023 globus_operation_invoke_callback_func_t invoke_callback,
4024 void * args)
4025 3 {
4026 createCounter_callback_handle_t * callback_handle;
4027 3 globus_result_t result = GLOBUS_SUCCESS;
4028 GlobusFuncName(createCounter_deserialize);
4029 3 CounterServiceDebugEnter();
4030
4031 3 callback_handle = malloc(sizeof(createCounter_callback_handle_t));
4032 3 globus_assert_string(callback_handle,
4033 "Memory allocation failed "
4034 "for createCounter callback handle");
4035 3 memset(callback_handle, 0, sizeof(createCounter_callback_handle_t));
4036
4037 3 callback_handle->engine = engine;
4038 3 callback_handle->message = message;
4039 3 callback_handle->callback = invoke_callback;
4040 3 callback_handle->args = args;
4041
4042 3 result = globus_callback_register_oneshot(
4043 NULL,
4044 &globus_i_reltime_zero,
4045 createCounter_deserialize_callback,
4046 callback_handle);
4047
4048 3 CounterServiceDebugExit();
4049 3 return result;
4050 }
4051
4052 static
4053 void
4054 createCounter_invoke_callback(
4055 void * handle)
4056 3 {
4057 createCounter_callback_handle_t * callback_handle;
4058 3 globus_result_t result = GLOBUS_SUCCESS;
4059 struct globus_soap_message_fault_s soap_fault;
4060 createCounter_init_func_t init_function;
4061 createCounter_invoke_func_t invoke_function;
4062 createCounterType * createCounter;
4063 createCounterResponseType createCounterResponse;
4064 xsd_QName element_qname;
4065 3 const char * fault_type_name = NULL;
4066 3 CounterPortType_createCounter_fault_t fault_type = COUNTERPORTTYPE_CREATECOUNTER_NOFAULT;
4067 3 void * fault = NULL;
4068
4069 GlobusFuncName(createCounter_invoke_callback);
4070 3 CounterServiceDebugEnter();
4071
4072 3 callback_handle = (createCounter_callback_handle_t *) handle;
4073
4074 3 createCounter = globus_soap_message_handle_get_attr(
4075 callback_handle->message,
4076 "createCounterOperationInputParameter");
4077 3 globus_assert(createCounter);
4078
4079 3 result = globus_operation_table_get_operation(
4080 CounterService_descriptor.operations,
4081 "createCounter",
4082 (void **)&init_function,
4083 (void **)&invoke_function);
4084 3 if(result != GLOBUS_SUCCESS)
4085 {
4086 3 goto fault_exit;
4087 }
4088
4089
4090 3 result = createCounterResponseType_init_contents(
4091 &createCounterResponse);
4092 3 if(result != GLOBUS_SUCCESS)
4093 {
4094 3 goto fault_exit;
4095 }
4096
4097 3 result = invoke_function(
4098 callback_handle->engine,
4099 callback_handle->message,
4100 &CounterService_descriptor,
4101 createCounter,
4102 &createCounterResponse,
4103 &fault_type_name,
4104 &fault);
4105
4106 3 fault_exit:
4107
4108 3 if(fault && fault_type_name)
4109 {
4110 0 fault_type = createCounter_lookup_fault_type(fault_type_name);
4111
4112 0 result = globus_service_session_begin_response(
4113 callback_handle->message);
4114 0 if(result != GLOBUS_SUCCESS)
4115 {
4116 0 goto exit;
4117 }
4118
4119 0 soap_fault.faultcode = "Server";
4120 0 soap_fault.faultstring =
4121 "An error occurred while processing the message";
4122 0 soap_fault.faultactor = NULL;
4123
4124 switch(fault_type)
4125 {
4126
4127 default:
4128 0 result = CounterServiceErrorReturnedUnknownFault("createCounter");
4129 0 goto exit;
4130 }
4131
4132 result = globus_service_session_serialize_fault_response(
4133 callback_handle->message, &soap_fault);
4134 if(result != GLOBUS_SUCCESS)
4135 {
4136 goto exit;
4137 }
4138
4139 soap_fault.detail->element->local = NULL;
4140 soap_fault.detail->element->Namespace = NULL;
4141 soap_fault.detail->any_info = NULL;
4142 xsd_any_destroy(soap_fault.detail);
4143
4144 globus_soap_message_handle_set_attr(
4145 callback_handle->message,
4146 WSADDR_ACTION_RESPONSE_KEY,
4147 globus_soap_message_attr_copy_string,
4148 globus_libc_free,
4149 WSADDRESSING_FAULT_NS);
4150 }
4151 3 else if(result != GLOBUS_SUCCESS)
4152 {
4153 globus_result_t local_result;
4154 0 local_result = globus_service_session_begin_response(
4155 callback_handle->message);
4156 0 if(local_result != GLOBUS_SUCCESS)
4157 {
4158 0 result = local_result;
4159 0 goto exit;
4160 }
4161
4162 0 soap_fault.faultcode = "Server";
4163 0 soap_fault.faultstring = globus_error_print_friendly(
4164 globus_error_get(result));
4165 0 result = GLOBUS_SUCCESS;
4166 0 soap_fault.faultactor = NULL;
4167 0 soap_fault.detail = NULL;
4168 0 result = globus_service_session_serialize_fault_response(
4169 callback_handle->message, &soap_fault);
4170 0 if(result != GLOBUS_SUCCESS)
4171 {
4172 0 goto exit;
4173 }
4174
4175 0 globus_soap_message_handle_set_attr(
4176 callback_handle->message,
4177 WSADDR_ACTION_RESPONSE_KEY,
4178 globus_soap_message_attr_copy_string,
4179 globus_libc_free,
4180 WSADDRESSING_FAULT_NS);
4181 }
4182 else
4183 {
4184 3 result = globus_service_session_begin_response(
4185 callback_handle->message);
4186 3 if(result != GLOBUS_SUCCESS)
4187 {
4188 3 goto exit;
4189 }
4190
4191 3 element_qname.local = "createCounterResponse";
4192 3 element_qname.Namespace = "http://counter.com";
4193
4194 3 result = createCounterResponseType_serialize(
4195 &element_qname,
4196 &createCounterResponse,
4197 callback_handle->message,
4198 GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS);
4199 3 if(result != GLOBUS_SUCCESS)
4200 {
4201 3 goto exit;
4202 }
4203
4204 3 result = globus_service_session_end_response(
4205 callback_handle->message);
4206 3 if(result != GLOBUS_SUCCESS)
4207 {
4208 3 goto exit;
4209 }
4210
4211 3 createCounterResponseType_destroy_contents(
4212 &createCounterResponse);
4213
4214 3 globus_soap_message_handle_set_attr(
4215 callback_handle->message,
4216 WSADDR_ACTION_RESPONSE_KEY,
4217 globus_soap_message_attr_copy_string,
4218 globus_libc_free,
4219 "http://counter.com/CounterPortType/createCounterResponse");
4220 }
4221
4222 3 exit:
4223
4224 3 callback_handle->callback(
4225 result,
4226 callback_handle->args);
4227
4228 3 globus_libc_free(callback_handle);
4229
4230 3 CounterServiceDebugExit();
4231 }
4232
4233 static
4234 globus_result_t
4235 createCounter_invoke(
4236 globus_service_engine_t engine,
4237 globus_soap_message_handle_t message,
4238 globus_service_response_t * response,
4239 globus_operation_invoke_callback_func_t invoke_callback,
4240 void * args)
4241 3 {
4242 createCounter_callback_handle_t * callback_handle;
4243 3 globus_result_t result = GLOBUS_SUCCESS;
4244 GlobusFuncName(CounterPortType_createCounter);
4245 3 CounterServiceDebugEnter();
4246
4247 3 callback_handle = malloc(sizeof(createCounter_callback_handle_t));
4248 3 if(!callback_handle)
4249 {
4250 0 result = GlobusSoapMessageErrorOutOfMemory;
4251 0 goto exit;
4252 }
4253 3 memset(callback_handle, 0, sizeof(createCounter_callback_handle_t));
4254
4255 3 callback_handle->engine = engine;
4256 3 callback_handle->message = message;
4257 3 callback_handle->callback = invoke_callback;
4258 3 callback_handle->args = args;
4259
4260 3 result = globus_callback_register_oneshot(
4261 NULL,
4262 &globus_i_reltime_zero,
4263 createCounter_invoke_callback,
4264 callback_handle);
4265
4266 3 exit:
4267 3 CounterServiceDebugExit();
4268 3 return result;
4269 }
4270
4271 static
4272 globus_service_operation_descriptor_t
4273 createCounter_operation_descriptor =
4274 {
4275 createCounter_deserialize,
4276 createCounter_invoke
4277 };
4278
4279 static
4280 globus_operation_provider_descriptor_t createCounter_descriptor =
4281 {
4282 &CounterPortType_createCounter_op_qname,
4283 "createCounter",
4284 (void *)CounterPortType_createCounter_init,
4285 (void *)CounterPortType_createCounter_impl,
4286 NULL
4287 };
4288
4289
4290
4291 static xsd_QName wsrp_GetResourceProperty_qname;
4292 static xsd_QName wsrp_GetMultipleResourceProperties_qname;
4293 static xsd_QName wsrp_SetResourceProperties_qname;
4294 static xsd_QName wsrp_QueryResourceProperties_qname;
4295 static xsd_QName wsrl_Destroy_qname;
4296 static xsd_QName wsrl_SetTerminationTime_qname;
4297
4298 static
4299 int
4300 CounterService_activate()
4301 3 {
4302 3 globus_result_t result = GLOBUS_SUCCESS;
4303 3 int rc = 0;
4304 GlobusFuncName(CounterService_activate);
4305
4306 3 rc = globus_module_activate(COUNTERSERVICE_MODULE);
4307 3 if(rc != GLOBUS_SUCCESS)
4308 {
4309 0 return rc;
4310 }
4311
4312 3 CounterServiceDebugEnter();
4313
4314 3 result = globus_module_activate(GLOBUS_WSRF_RESOURCE_MODULE);
4315 3 if (result != GLOBUS_SUCCESS)
4316 {
4317 0 rc = (int) result;
4318 0 goto exit;
4319 }
4320
4321 3 rc = globus_extension_activate(
4322 "globus_wsrp_GetResourceProperty_provider");
4323 3 if(rc != GLOBUS_SUCCESS)
4324 {
4325 3 goto deactivate_resource_out;
4326 }
4327
4328 3 rc = globus_extension_activate(
4329 "globus_wsrp_GetMultipleResourceProperties_provider");
4330 3 if (rc != GLOBUS_SUCCESS)
4331 {
4332 3 goto deactivate_getrp;
4333 }
4334
4335 3 rc = globus_extension_activate(
4336 "globus_wsrp_SetResourceProperties_provider");
4337 3 if (rc != GLOBUS_SUCCESS)
4338 {
4339 3 goto deactivate_getmrp;
4340 }
4341
4342 3 rc = globus_extension_activate(
4343 "globus_wsrp_QueryResourceProperties_provider");
4344 3 if (rc != GLOBUS_SUCCESS)
4345 {
4346 3 goto deactivate_setrp;
4347 }
4348
4349 3 rc = globus_extension_activate(
4350 "globus_wsrl_ImmediateResourceTermination_provider");
4351 3 if (rc != GLOBUS_SUCCESS)
4352 {
4353 3 goto deactivate_queryrp;
4354 }
4355
4356 3 rc = globus_extension_activate(
4357 "globus_wsrl_ScheduledResourceTermination_provider");
4358 3 if (rc != GLOBUS_SUCCESS)
4359 {
4360 3 goto deactivate_irt;
4361 }
4362
4363 3 if(GLOBUS_GLOBAL_TYPE_REGISTRY != NULL)
4364 {
4365 3 result = CounterService_registry_add_types(
4366 GLOBUS_GLOBAL_TYPE_REGISTRY);
4367 3 if(result != GLOBUS_SUCCESS)
4368 {
4369 0 rc = (int) result;
4370 0 goto deactivate_srt;
4371 }
4372 }
4373
4374 3 rc = globus_hashtable_init(
4375 &CounterService_descriptor.op_mapper,
4376 10,
4377 xsd_QName_hash,
4378 xsd_QName_keyeq);
4379 3 if(rc != GLOBUS_SUCCESS)
4380 {
4381 3 goto clear_global_registry;
4382 }
4383
4384 3 result = globus_xsd_type_registry_init(
4385 &CounterService_descriptor.registry);
4386 3 if(result != GLOBUS_SUCCESS)
4387 {
4388 0 rc = (int) result;
4389 0 goto destroy_op_mapper;
4390 }
4391
4392 3 result = CounterService_registry_add_types(
4393 CounterService_descriptor.registry);
4394 3 if(result != GLOBUS_SUCCESS)
4395 {
4396 0 rc = (int) result;
4397 0 goto destroy_service_registry;
4398 }
4399
4400 3 globus_mutex_init(&CounterService_descriptor.mutex, NULL);
4401
4402 3 rc = globus_hashtable_insert(
4403 &CounterService_descriptor.op_mapper,
4404 (void *)&CounterPortType_GetCurrentMessage_input_qname,
4405 (void *)&GetCurrentMessage_operation_descriptor);
4406 3 if(rc != GLOBUS_SUCCESS)
4407 {
4408 3 goto remove_GetCurrentMessage_op;
4409 }
4410
4411 3 rc = globus_hashtable_insert(
4412 &CounterService_descriptor.op_mapper,
4413 (void *)&CounterPortType_Subscribe_input_qname,
4414 (void *)&Subscribe_operation_descriptor);
4415 3 if(rc != GLOBUS_SUCCESS)
4416 {
4417 3 goto remove_Subscribe_op;
4418 }
4419
4420 3 rc = globus_hashtable_insert(
4421 &CounterService_descriptor.op_mapper,
4422 (void *)&CounterPortType_GetResourceProperty_input_qname,
4423 (void *)&GetResourceProperty_operation_descriptor);
4424 3 if(rc != GLOBUS_SUCCESS)
4425 {
4426 3 goto remove_GetResourceProperty_op;
4427 }
4428
4429 3 rc = globus_hashtable_insert(
4430 &CounterService_descriptor.op_mapper,
4431 (void *)&CounterPortType_GetMultipleResourceProperties_input_qname,
4432 (void *)&GetMultipleResourceProperties_operation_descriptor);
4433 3 if(rc != GLOBUS_SUCCESS)
4434 {
4435 3 goto remove_GetMultipleResourceProperties_op;
4436 }
4437
4438 3 rc = globus_hashtable_insert(
4439 &CounterService_descriptor.op_mapper,
4440 (void *)&CounterPortType_QueryResourceProperties_input_qname,
4441 (void *)&QueryResourceProperties_operation_descriptor);
4442 3 if(rc != GLOBUS_SUCCESS)
4443 {
4444 3 goto remove_QueryResourceProperties_op;
4445 }
4446
4447 3 rc = globus_hashtable_insert(
4448 &CounterService_descriptor.op_mapper,
4449 (void *)&CounterPortType_Destroy_input_qname,
4450 (void *)&Destroy_operation_descriptor);
4451 3 if(rc != GLOBUS_SUCCESS)
4452 {
4453 3 goto remove_Destroy_op;
4454 }
4455
4456 3 rc = globus_hashtable_insert(
4457 &CounterService_descriptor.op_mapper,
4458 (void *)&CounterPortType_SetTerminationTime_input_qname,
4459 (void *)&SetTerminationTime_operation_descriptor);
4460 3 if(rc != GLOBUS_SUCCESS)
4461 {
4462 3 goto remove_SetTerminationTime_op;
4463 }
4464
4465 3 rc = globus_hashtable_insert(
4466 &CounterService_descriptor.op_mapper,
4467 (void *)&CounterPortType_add_input_qname,
4468 (void *)&add_operation_descriptor);
4469 3 if(rc != GLOBUS_SUCCESS)
4470 {
4471 3 goto remove_add_op;
4472 }
4473
4474 3 rc = globus_hashtable_insert(
4475 &CounterService_descriptor.op_mapper,
4476 (void *)&CounterPortType_createCounter_input_qname,
4477 (void *)&createCounter_operation_descriptor);
4478 3 if(rc != GLOBUS_SUCCESS)
4479 {
4480 3 goto remove_createCounter_op;
4481 }
4482
4483
4484 3 result = globus_operation_table_init(
4485 &CounterService_descriptor.operations,
4486 CounterService_service_qname.Namespace);
4487 3 if(result != GLOBUS_SUCCESS)
4488 {
4489 0 rc = (int) result;
4490 0 goto remove_all_ops;
4491 }
4492
4493
4494 3 result = globus_extension_registry_add(
4495 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4496 (void *)&CounterPortType_GetCurrentMessage_op_qname,
4497 GlobusExtensionMyModule(CounterService),
4498 (void *)&GetCurrentMessage_descriptor);
4499 3 if(result != GLOBUS_SUCCESS)
4500 {
4501 0 rc = (int) result;
4502 0 goto remove_GetCurrentMessage_op_provider;
4503 }
4504
4505 3 result = globus_operation_table_add_default_provider(
4506 CounterService_descriptor.operations,
4507 &CounterPortType_GetCurrentMessage_op_qname,
4508 &GetCurrentMessage_descriptor);
4509 3 if(result != GLOBUS_SUCCESS)
4510 {
4511 0 rc = (int) result;
4512 0 goto remove_GetCurrentMessage_op_provider;
4513 }
4514
4515 3 result = globus_extension_registry_add(
4516 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4517 (void *)&CounterPortType_Subscribe_op_qname,
4518 GlobusExtensionMyModule(CounterService),
4519 (void *)&Subscribe_descriptor);
4520 3 if(result != GLOBUS_SUCCESS)
4521 {
4522 0 rc = (int) result;
4523 0 goto remove_Subscribe_op_provider;
4524 }
4525
4526 3 result = globus_operation_table_add_default_provider(
4527 CounterService_descriptor.operations,
4528 &CounterPortType_Subscribe_op_qname,
4529 &Subscribe_descriptor);
4530 3 if(result != GLOBUS_SUCCESS)
4531 {
4532 0 rc = (int) result;
4533 0 goto remove_Subscribe_op_provider;
4534 }
4535
4536 3 result = globus_extension_registry_add(
4537 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4538 (void *)&CounterPortType_GetResourceProperty_op_qname,
4539 GlobusExtensionMyModule(CounterService),
4540 (void *)&GetResourceProperty_descriptor);
4541 3 if(result != GLOBUS_SUCCESS)
4542 {
4543 0 rc = (int) result;
4544 0 goto remove_GetResourceProperty_op_provider;
4545 }
4546
4547 3 result = globus_operation_table_add_default_provider(
4548 CounterService_descriptor.operations,
4549 &CounterPortType_GetResourceProperty_op_qname,
4550 &GetResourceProperty_descriptor);
4551 3 if(result != GLOBUS_SUCCESS)
4552 {
4553 0 rc = (int) result;
4554 0 goto remove_GetResourceProperty_op_provider;
4555 }
4556
4557 3 result = globus_extension_registry_add(
4558 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4559 (void *)&CounterPortType_GetMultipleResourceProperties_op_qname,
4560 GlobusExtensionMyModule(CounterService),
4561 (void *)&GetMultipleResourceProperties_descriptor);
4562 3 if(result != GLOBUS_SUCCESS)
4563 {
4564 0 rc = (int) result;
4565 0 goto remove_GetMultipleResourceProperties_op_provider;
4566 }
4567
4568 3 result = globus_operation_table_add_default_provider(
4569 CounterService_descriptor.operations,
4570 &CounterPortType_GetMultipleResourceProperties_op_qname,
4571 &GetMultipleResourceProperties_descriptor);
4572 3 if(result != GLOBUS_SUCCESS)
4573 {
4574 0 rc = (int) result;
4575 0 goto remove_GetMultipleResourceProperties_op_provider;
4576 }
4577
4578 3 result = globus_extension_registry_add(
4579 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4580 (void *)&CounterPortType_QueryResourceProperties_op_qname,
4581 GlobusExtensionMyModule(CounterService),
4582 (void *)&QueryResourceProperties_descriptor);
4583 3 if(result != GLOBUS_SUCCESS)
4584 {
4585 0 rc = (int) result;
4586 0 goto remove_QueryResourceProperties_op_provider;
4587 }
4588
4589 3 result = globus_operation_table_add_default_provider(
4590 CounterService_descriptor.operations,
4591 &CounterPortType_QueryResourceProperties_op_qname,
4592 &QueryResourceProperties_descriptor);
4593 3 if(result != GLOBUS_SUCCESS)
4594 {
4595 0 rc = (int) result;
4596 0 goto remove_QueryResourceProperties_op_provider;
4597 }
4598
4599 3 result = globus_extension_registry_add(
4600 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4601 (void *)&CounterPortType_Destroy_op_qname,
4602 GlobusExtensionMyModule(CounterService),
4603 (void *)&Destroy_descriptor);
4604 3 if(result != GLOBUS_SUCCESS)
4605 {
4606 0 rc = (int) result;
4607 0 goto remove_Destroy_op_provider;
4608 }
4609
4610 3 result = globus_operation_table_add_default_provider(
4611 CounterService_descriptor.operations,
4612 &CounterPortType_Destroy_op_qname,
4613 &Destroy_descriptor);
4614 3 if(result != GLOBUS_SUCCESS)
4615 {
4616 0 rc = (int) result;
4617 0 goto remove_Destroy_op_provider;
4618 }
4619
4620 3 result = globus_extension_registry_add(
4621 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4622 (void *)&CounterPortType_SetTerminationTime_op_qname,
4623 GlobusExtensionMyModule(CounterService),
4624 (void *)&SetTerminationTime_descriptor);
4625 3 if(result != GLOBUS_SUCCESS)
4626 {
4627 0 rc = (int) result;
4628 0 goto remove_SetTerminationTime_op_provider;
4629 }
4630
4631 3 result = globus_operation_table_add_default_provider(
4632 CounterService_descriptor.operations,
4633 &CounterPortType_SetTerminationTime_op_qname,
4634 &SetTerminationTime_descriptor);
4635 3 if(result != GLOBUS_SUCCESS)
4636 {
4637 0 rc = (int) result;
4638 0 goto remove_SetTerminationTime_op_provider;
4639 }
4640
4641 3 result = globus_extension_registry_add(
4642 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4643 (void *)&CounterPortType_add_op_qname,
4644 GlobusExtensionMyModule(CounterService),
4645 (void *)&add_descriptor);
4646 3 if(result != GLOBUS_SUCCESS)
4647 {
4648 0 rc = (int) result;
4649 0 goto remove_add_op_provider;
4650 }
4651
4652 3 result = globus_operation_table_add_default_provider(
4653 CounterService_descriptor.operations,
4654 &CounterPortType_add_op_qname,
4655 &add_descriptor);
4656 3 if(result != GLOBUS_SUCCESS)
4657 {
4658 0 rc = (int) result;
4659 0 goto remove_add_op_provider;
4660 }
4661
4662 3 result = globus_extension_registry_add(
4663 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4664 (void *)&CounterPortType_createCounter_op_qname,
4665 GlobusExtensionMyModule(CounterService),
4666 (void *)&createCounter_descriptor);
4667 3 if(result != GLOBUS_SUCCESS)
4668 {
4669 0 rc = (int) result;
4670 0 goto remove_createCounter_op_provider;
4671 }
4672
4673 3 result = globus_operation_table_add_default_provider(
4674 CounterService_descriptor.operations,
4675 &CounterPortType_createCounter_op_qname,
4676 &createCounter_descriptor);
4677 3 if(result != GLOBUS_SUCCESS)
4678 {
4679 0 rc = (int) result;
4680 0 goto remove_createCounter_op_provider;
4681 }
4682
4683 3 result = globus_operation_table_add_provider(
4684 CounterService_descriptor.operations,
4685 &wsrp_GetResourceProperty_qname);
4686 3 if (result != GLOBUS_SUCCESS)
4687 {
4688 0 rc = (int) result;
4689 0 goto remove_op_providers;
4690 }
4691
4692 3 result = globus_operation_table_add_provider(
4693 CounterService_descriptor.operations,
4694 &wsrp_GetMultipleResourceProperties_qname);
4695 3 if (result != GLOBUS_SUCCESS)
4696 {
4697 0 rc = (int) result;
4698
4699 0 goto remove_op_providers;
4700 }
4701
4702 3 result = globus_operation_table_add_provider(
4703 CounterService_descriptor.operations,
4704 &wsrp_SetResourceProperties_qname);
4705 3 if (result != GLOBUS_SUCCESS)
4706 {
4707 0 rc = (int) result;
4708
4709 0 goto remove_op_providers;
4710 }
4711
4712 3 result = globus_operation_table_add_provider(
4713 CounterService_descriptor.operations,
4714 &wsrp_QueryResourceProperties_qname);
4715 3 if (result != GLOBUS_SUCCESS)
4716 {
4717 0 rc = (int) result;
4718
4719 0 goto remove_op_providers;
4720 }
4721
4722 3 result = globus_operation_table_add_provider(
4723 CounterService_descriptor.operations,
4724 &wsrl_Destroy_qname);
4725 3 if (result != GLOBUS_SUCCESS)
4726 {
4727 0 rc = (int) result;
4728
4729 0 goto remove_op_providers;
4730 }
4731
4732 3 result = globus_operation_table_add_provider(
4733 CounterService_descriptor.operations,
4734 &wsrl_SetTerminationTime_qname);
4735 3 if (result != GLOBUS_SUCCESS)
4736 {
4737 0 rc = (int) result;
4738
4739 0 goto remove_op_providers;
4740 }
4741
4742 3 rc = globus_extension_registry_add(
4743 GLOBUS_SERVICE_REGISTRY,
4744 (void *)CounterService_descriptor.path,
4745 GlobusExtensionMyModule(CounterService),
4746 &CounterService_descriptor);
4747 3 if(rc != GLOBUS_SUCCESS)
4748 {
4749 3 goto remove_op_providers;
4750 }
4751
4752 3 result = CounterService_init(&CounterService_descriptor);
4753 3 if(result != GLOBUS_SUCCESS)
4754 {
4755 0 rc = (int) result;
4756 goto service_extension_remove;
4757 }
4758
4759 goto exit;
4760
4761 0 service_extension_remove:
4762 0 globus_extension_registry_remove(
4763 GLOBUS_SERVICE_REGISTRY,
4764 (void *)CounterService_descriptor.path);
4765 0 remove_op_providers:
4766
4767 0 globus_extension_registry_remove(
4768 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4769 (void *)&CounterPortType_GetCurrentMessage_op_qname);
4770 0 remove_GetCurrentMessage_op_provider:
4771
4772 0 globus_extension_registry_remove(
4773 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4774 (void *)&CounterPortType_Subscribe_op_qname);
4775 0 remove_Subscribe_op_provider:
4776
4777 0 globus_extension_registry_remove(
4778 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4779 (void *)&CounterPortType_GetResourceProperty_op_qname);
4780 0 remove_GetResourceProperty_op_provider:
4781
4782 0 globus_extension_registry_remove(
4783 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4784 (void *)&CounterPortType_GetMultipleResourceProperties_op_qname);
4785 0 remove_GetMultipleResourceProperties_op_provider:
4786
4787 0 globus_extension_registry_remove(
4788 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4789 (void *)&CounterPortType_QueryResourceProperties_op_qname);
4790 0 remove_QueryResourceProperties_op_provider:
4791
4792 0 globus_extension_registry_remove(
4793 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4794 (void *)&CounterPortType_Destroy_op_qname);
4795 0 remove_Destroy_op_provider:
4796
4797 0 globus_extension_registry_remove(
4798 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4799 (void *)&CounterPortType_SetTerminationTime_op_qname);
4800 0 remove_SetTerminationTime_op_provider:
4801
4802 0 globus_extension_registry_remove(
4803 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4804 (void *)&CounterPortType_add_op_qname);
4805 0 remove_add_op_provider:
4806
4807 0 globus_extension_registry_remove(
4808 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4809 (void *)&CounterPortType_createCounter_op_qname);
4810 0 remove_createCounter_op_provider:
4811
4812 0 destroy_op_table:
4813 0 globus_operation_table_destroy(CounterService_descriptor.operations);
4814 0 remove_all_ops:
4815
4816 0 globus_hashtable_remove(
4817 &CounterService_descriptor.op_mapper,
4818 (void *)&CounterPortType_GetCurrentMessage_input_qname);
4819 0 remove_GetCurrentMessage_op:
4820
4821 0 globus_hashtable_remove(
4822 &CounterService_descriptor.op_mapper,
4823 (void *)&CounterPortType_Subscribe_input_qname);
4824 0 remove_Subscribe_op:
4825
4826 0 globus_hashtable_remove(
4827 &CounterService_descriptor.op_mapper,
4828 (void *)&CounterPortType_GetResourceProperty_input_qname);
4829 0 remove_GetResourceProperty_op:
4830
4831 0 globus_hashtable_remove(
4832 &CounterService_descriptor.op_mapper,
4833 (void *)&CounterPortType_GetMultipleResourceProperties_input_qname);
4834 0 remove_GetMultipleResourceProperties_op:
4835
4836 0 globus_hashtable_remove(
4837 &CounterService_descriptor.op_mapper,
4838 (void *)&CounterPortType_QueryResourceProperties_input_qname);
4839 0 remove_QueryResourceProperties_op:
4840
4841 0 globus_hashtable_remove(
4842 &CounterService_descriptor.op_mapper,
4843 (void *)&CounterPortType_Destroy_input_qname);
4844 0 remove_Destroy_op:
4845
4846 0 globus_hashtable_remove(
4847 &CounterService_descriptor.op_mapper,
4848 (void *)&CounterPortType_SetTerminationTime_input_qname);
4849 0 remove_SetTerminationTime_op:
4850
4851 0 globus_hashtable_remove(
4852 &CounterService_descriptor.op_mapper,
4853 (void *)&CounterPortType_add_input_qname);
4854 0 remove_add_op:
4855
4856 0 globus_hashtable_remove(
4857 &CounterService_descriptor.op_mapper,
4858 (void *)&CounterPortType_createCounter_input_qname);
4859 0 remove_createCounter_op:
4860
4861 0 destroy_mutex:
4862 0 globus_mutex_destroy(&CounterService_descriptor.mutex);
4863 0 clear_service_registry:
4864 0 CounterService_registry_remove_types(
4865 CounterService_descriptor.registry);
4866 0 destroy_service_registry:
4867 0 globus_xsd_type_registry_destroy(CounterService_descriptor.registry);
4868 0 destroy_op_mapper:
4869 0 globus_hashtable_destroy(&CounterService_descriptor.op_mapper);
4870 0 clear_global_registry:
4871 0 if(GLOBUS_GLOBAL_TYPE_REGISTRY != NULL)
4872 {
4873 0 CounterService_registry_remove_types(
4874 GLOBUS_GLOBAL_TYPE_REGISTRY);
4875 }
4876 0 deactivate_srt:
4877 0 globus_extension_deactivate(
4878 "globus_wsrl_ScheduledResourceTermination_provider");
4879 0 deactivate_irt:
4880 0 globus_extension_deactivate(
4881 "globus_wsrl_ImmediateResourceTermination_provider");
4882 0 deactivate_queryrp:
4883 0 globus_extension_deactivate(
4884 "globus_wsrl_QueryResourceProperties_provider");
4885 0 deactivate_setrp:
4886 0 globus_extension_deactivate("globus_wsrp_SetResourceProperties_provider");
4887 0 deactivate_getmrp:
4888 0 globus_extension_deactivate("globus_wsrp_GetMultipleResourceProperties_provider");
4889 0 deactivate_getrp:
4890 0 globus_extension_deactivate("globus_wsrp_GetResourceProperty_provider");
4891 0 deactivate_resource_out:
4892 0 globus_module_deactivate(GLOBUS_WSRF_RESOURCE_MODULE);
4893
4894 3 exit:
4895 3 CounterServiceDebugExit();
4896 3 return rc;
4897 }
4898
4899 static
4900 int
4901 CounterService_deactivate()
4902 0 {
4903 0 globus_result_t result = GLOBUS_SUCCESS;
4904 0 int rc = 0;
4905
4906 0 result = CounterService_finalize(&CounterService_descriptor);
4907 0 if(result != GLOBUS_SUCCESS)
4908 {
4909 0 return GLOBUS_FAILURE;
4910 }
4911
4912 0 globus_extension_registry_remove(
4913 GLOBUS_SERVICE_REGISTRY,
4914 (void *)CounterService_descriptor.path);
4915
4916 0 globus_extension_registry_remove(
4917 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4918 (void *)&CounterPortType_GetCurrentMessage_op_qname);
4919
4920 0 globus_extension_registry_remove(
4921 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4922 (void *)&CounterPortType_Subscribe_op_qname);
4923
4924 0 globus_extension_registry_remove(
4925 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4926 (void *)&CounterPortType_GetResourceProperty_op_qname);
4927
4928 0 globus_extension_registry_remove(
4929 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4930 (void *)&CounterPortType_GetMultipleResourceProperties_op_qname);
4931
4932 0 globus_extension_registry_remove(
4933 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4934 (void *)&CounterPortType_QueryResourceProperties_op_qname);
4935
4936 0 globus_extension_registry_remove(
4937 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4938 (void *)&CounterPortType_Destroy_op_qname);
4939
4940 0 globus_extension_registry_remove(
4941 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4942 (void *)&CounterPortType_SetTerminationTime_op_qname);
4943
4944 0 globus_extension_registry_remove(
4945 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4946 (void *)&CounterPortType_add_op_qname);
4947
4948 0 globus_extension_registry_remove(
4949 GLOBUS_OPERATION_PROVIDER_REGISTRY,
4950 (void *)&CounterPortType_createCounter_op_qname);
4951
4952 0 globus_operation_table_destroy(CounterService_descriptor.operations);
4953
4954
4955 0 globus_hashtable_remove(
4956 &CounterService_descriptor.op_mapper,
4957 (void *)&CounterPortType_GetCurrentMessage_input_qname);
4958
4959 0 globus_hashtable_remove(
4960 &CounterService_descriptor.op_mapper,
4961 (void *)&CounterPortType_Subscribe_input_qname);
4962
4963 0 globus_hashtable_remove(
4964 &CounterService_descriptor.op_mapper,
4965 (void *)&CounterPortType_GetResourceProperty_input_qname);
4966
4967 0 globus_hashtable_remove(
4968 &CounterService_descriptor.op_mapper,
4969 (void *)&CounterPortType_GetMultipleResourceProperties_input_qname);
4970
4971 0 globus_hashtable_remove(
4972 &CounterService_descriptor.op_mapper,
4973 (void *)&CounterPortType_QueryResourceProperties_input_qname);
4974
4975 0 globus_hashtable_remove(
4976 &CounterService_descriptor.op_mapper,
4977 (void *)&CounterPortType_Destroy_input_qname);
4978
4979 0 globus_hashtable_remove(
4980 &CounterService_descriptor.op_mapper,
4981 (void *)&CounterPortType_SetTerminationTime_input_qname);
4982
4983 0 globus_hashtable_remove(
4984 &CounterService_descriptor.op_mapper,
4985 (void *)&CounterPortType_add_input_qname);
4986
4987 0 globus_hashtable_remove(
4988 &CounterService_descriptor.op_mapper,
4989 (void *)&CounterPortType_createCounter_input_qname);
4990
4991
4992 0 globus_mutex_destroy(&CounterService_descriptor.mutex);
4993
4994 0 CounterService_registry_remove_types(
4995 CounterService_descriptor.registry);
4996
4997 0 globus_xsd_type_registry_destroy(CounterService_descriptor.registry);
4998
4999 0 globus_hashtable_destroy(&CounterService_descriptor.op_mapper);
5000
5001 0 if(GLOBUS_GLOBAL_TYPE_REGISTRY != NULL)
5002 {
5003 0 CounterService_registry_remove_types(
5004 GLOBUS_GLOBAL_TYPE_REGISTRY);
5005 }
5006
5007 0 globus_extension_deactivate(
5008 "globus_wsrl_ScheduledResourceTermination_provider");
5009 0 globus_extension_deactivate(
5010 "globus_wsrl_ImmediateResourceTermination_provider");
5011 0 globus_extension_deactivate(
5012 "globus_wsrl_QueryResourceProperties_provider");
5013 0 globus_extension_deactivate("globus_wsrp_SetResourceProperties_provider");
5014 0 globus_extension_deactivate(
5015 "globus_wsrp_GetMultipleResourceProperties_provider");
5016 0 globus_extension_deactivate("globus_wsrp_GetResourceProperty_provider");
5017 0 globus_module_deactivate(GLOBUS_WSRF_RESOURCE_MODULE);
5018
5019 0 rc = globus_module_deactivate(COUNTERSERVICE_MODULE);
5020 0 if(rc != GLOBUS_SUCCESS)
5021 {
5022 0 return rc;
5023 }
5024
5025 0 return rc;
5026 }
5027
5028 #define WSRP_NS "http://www.globus.org/docs.oasis-open.org" \
5029 "/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl"
5030
5031 static xsd_QName wsrp_GetResourceProperty_qname =
5032 {
5033 WSRP_NS,
5034 "GetResourceProperty"
5035 };
5036
5037 static xsd_QName wsrp_GetMultipleResourceProperties_qname =
5038 {
5039 WSRP_NS,
5040 "GetMultipleResourceProperties"
5041 };
5042
5043 static xsd_QName wsrp_SetResourceProperties_qname =
5044 {
5045 WSRP_NS,
5046 "SetResourceProperties"
5047 };
5048
5049 static xsd_QName wsrp_QueryResourceProperties_qname =
5050 {
5051 WSRP_NS,
5052 "QueryResourceProperties"
5053 };
5054
5055 static xsd_QName wsrl_Destroy_qname =
5056 {
5057 "http://www.globus.org/docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl",
5058 "Destroy"
5059 };
5060
5061 static xsd_QName wsrl_SetTerminationTime_qname =
5062 {
5063 "http://www.globus.org/docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl",
5064 "SetTerminationTime"