Service Registry

The service registry is used by the service engine to map SOAP Actions and body elements to services and operations within those services. More...

Data Structures

Defines

Typedefs

Enumerations

Functions


Detailed Description

The service registry is used by the service engine to map SOAP Actions and body elements to services and operations within those services.

This module includes definitions of data types which describe what operations are provided by a service and which operation providers implement those operations.


Define Documentation

#define GLOBUS_SERVICE_REGISTRY   (&globus_service_registry)

Global service registry

This registry contains references to all services which have been loaded.

The service engine dispatches SOAP operation requests to appropriate services based on the contents of the registry. Services insert themselves into the registry when they are loaded by calling globus_extension_registry_add(). This is handled automatically by the serivce's module.


Typedef Documentation

typedef void(* globus_operation_invoke_callback_func_t)(globus_result_t result, void *args)

Callback function signature for service function completion.

The globus service engine passes a function of this signature to the service module stub functions as a way for them to signal completion of deserialization an operation element or invoking an operation function.

Parameters:
result Result of deserialization or operation completion.
args Pointer value which was passed to the service's globus_operation_deserialize_func_t or globus_operation_invoke_func_t function.

typedef globus_result_t(* globus_operation_deserialize_func_t)(globus_service_engine_t engine, globus_soap_message_handle_t message, globus_operation_invoke_callback_func_t invoke_callback, void *args)

SOAP body element deserialize function signature

Each service provides a function of this type signature.

The service engine calls it to the deserialize the content of the SOAP body.

Parameters:
engine Service engine which is processing this message.
message SOAP message handle which is to be used to deserialize the operation element.
invoke_callback Function to call after completing deserialization. This must not be called in the same call chain as this function has been called.
args Argument to pass to invoke_callback.
Returns:
Functions of this signature return GLOBUS_SUCCESS if they have begun to process the input element. They must then call invoke_callback when this is complete. If they return a non-GLOBUS_SUCCESS value, the callback must not be called.

typedef globus_result_t(* globus_operation_invoke_func_t)(globus_service_engine_t engine, globus_soap_message_handle_t message, globus_service_response_t *response, globus_operation_invoke_callback_func_t invoke_callback, void *args)

SOAP operation implementation function signature

Each service provides a function of this type signature.

The service engine calls it to the implement the SOAP operation.

Parameters:
engine Service engine which is processing this message.
message SOAP message handle on which the operation was sent.
response Pointer to a globus_service_response_t which should be set as described above.
invoke_callback Function to call after completing the operation. This must not be called in the same call chain as this function has been called.
args Argument to pass to invoke_callback.
Returns:
Functions of this signature return GLOBUS_SUCCESS if they have begun to handle the operation. They must then call invoke_callback when this is complete. If they return a non-GLOBUS_SUCCESS value, the callback must not be called.

typedef globus_result_t(* globus_operation_fault_type_func_t)(const char *fault_type_name, int *fault_type, globus_xsd_type_info_t *fault_type_info)

SOAP operation fault mapping callback

Each service provides a function of this type signature.

The service module calls it to map a fault name to an enumerated fault type and type_info structure pointer.

Parameters:
fault_type_name Name of the fault type to map.
fault_type Pointer to a fault enumeration value to be set by this function.
fault_type_info Pointer to a globus_xsd_type_info_t to be set by this function.
Returns:
Functions of this signature return GLOBUS_SUCCESS if they are able to determine the fault type from the fault_type_name. Any non-GLOBUS_SUCCESS value will be returned as a SOAP fault.

typedef globus_result_t(* globus_resource_id_func_t)(xsd_any_array *reference_properties, char **id)

Service-specific resource id function

Each service provides a function of this type signature.

The globus_wsrf_core_get_resource_id() function uses this to extract the resource_id from an EPR.

Parameters:
reference_properties The any array containing the reference properties associated with an EndpointReference. The service-specific function will convert the array into a string.
id Pointer to a string. If the function is successful, this value will be updated to point to a newly allocated string which contains the resource id string. The caller is responsible for freeing this string.
Returns:
Functions of this signature return GLOBUS_SUCCESS if they are able to resolve the reference_properties value to a resource id. A failure result should be returned otherwise.


Enumeration Type Documentation

Flag indicating whether a SOAP operation should send a response.

The service engine passes a pointer to this type of value which it expects the service to set to the appropriate value, either GLOBUS_SERVICE_DO_RESPONSE if the operation has a response message, or GLOBUS_SERVICE_NO_RESPONSE if it does not.

Enumerator:
GLOBUS_SERVICE_DO_RESPONSE  Operation requires a response message.
GLOBUS_SERVICE_NO_RESPONSE  Operation does not have a response message.


Function Documentation

globus_result_t globus_resource_id_get_as_string ( xsd_any_array reference_properties,
char **  id 
)

Default reference properties to resource_id mapping function

If the reference_properties array contains a single element, a string containing that element's content is copied and a pointer is returned via id.

Parameters:
reference_properties The any array containing the reference properties associated with an EndpointReference. To be successfully processed, this array must have a single element containing string content.
id Pointer to a string. If the function is successful, this value will be updated to point to a newly allocated string which contains the resource id string. The caller is responsible for freeing this string.
Return values:
GLOBUS_SUCCESS Resource id extracted successfully.
GLOBUS_SOAP_MESSAGE_ERROR_TYPE_NULL_PARAM The id parameter is NULL.
GLOBUS_SOAP_MESSAGE_ERROR_TYPE_NO_REFERENCE_PROPERTIES The reference_properties parameter is NULL, or contains no elements.
GLOBUS_SOAP_MESSAGE_ERROR_TYPE_TOO_MANY_REFERENCE_PROPERTIES The reference_properties array contains more than one element.
GLOBUS_SOAP_MESSAGE_ERROR_TYPE_FAILED_RESOURCE_GET Unable to parse the content of the reference_properties element.


about globus | grid research | globus toolkit | software development

Comments? webmaster@globus.org