blob: c710587959417bddbe879edd2614e1bd045875c1 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef AXIS2_SVC_H
#define AXIS2_SVC_H
/** @defgroup axis2_svc service
* @ingroup axis2_desc
* service represents the static structure of a service in a service group.
* In Axis2 description hierarchy, a service lives inside the service group to
* which it belongs.
* services are configured in services.xml files located in the respective
* service group folders of the services folder in the repository.
* In services.xml file, services are declared in association with a given
* service group or at top level as a stand alone service. In cases where a
* service is configured without an associated service group, a service group
* with the same name as that of the service would be created by the deployment
* engine and the service would be associated with that newly created service
* group. The deployment engine would create service instances to represent
* those configured services in services.xml files and would associate them with
* the respective service group in the configuration.
* service encapsulates data on engaged module information, the XML schema
* defined in WSDL that is associated with the service and the operations of
* the service.
* @{
*/
/**
* @file axis2_svc.h
*/
#include <axutil_param_container.h>
#include <axis2_flow_container.h>
#include <axis2_op.h>
#include <axis2_svc_grp.h>
#include <axutil_qname.h>
#include <axutil_error.h>
#include <axutil_array_list.h>
#include <axis2_const.h>
#include <axis2_phase_resolver.h>
#include <axis2_module_desc.h>
#include <axis2_conf.h>
#include <axutil_string.h>
#include <axutil_stream.h>
#ifdef __cplusplus
extern "C"
{
#endif
/** Type name for struct axis2_svc */
typedef struct axis2_svc axis2_svc_t;
struct axis2_svc_grp;
struct axis2_flow_container;
struct axutil_param_container;
struct axis2_module_desc;
struct axis2_conf;
/**
* Frees service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return void
*/
AXIS2_EXTERN void AXIS2_CALL
axis2_svc_free(
axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Adds operation.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param op pointer to operation struct, service assumes ownership of
* operation
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_op(
axis2_svc_t * svc,
const axutil_env_t * env,
struct axis2_op *op);
/**
* Gets operation corresponding to the given QName.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param op_qname pointer to QName representing operation QName
* @return pointer to operation corresponding to given QName
*/
AXIS2_EXTERN struct axis2_op *AXIS2_CALL
axis2_svc_get_op_with_qname(
const axis2_svc_t * svc,
const axutil_env_t * env,
const axutil_qname_t * op_qname);
/**
* Gets the RESTful operation list corresponding to the given method
* and first constant part of location.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param http_method HTTPMethod
* @param http_location HTTPLocation
* @return pointer to operation corresponding to given method and
* location
*/
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_svc_get_rest_op_list_with_method_and_location(
const axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * http_method,
const axis2_char_t * http_location);
/**
* Gets the RESTful operation map for a given service
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to hash with the information
* (method, url)=> processing structure for each ops
*/
AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_svc_get_rest_map(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Gets operation corresponding to the name.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param op_name operation name string
* @return pointer to operation corresponding to given name
*/
AXIS2_EXTERN struct axis2_op *AXIS2_CALL
axis2_svc_get_op_with_name(
const axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * op_name);
/**
* Gets all operations of service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to hash map containing all operations of the service
*/
AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_svc_get_all_ops(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Sets parent which is of type service group.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param svc_grp pointer to parent service group
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_parent(
axis2_svc_t * svc,
const axutil_env_t * env,
struct axis2_svc_grp *svc_grp);
/**
* Gets parent which is of type service group.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to parent service group
*/
AXIS2_EXTERN struct axis2_svc_grp *AXIS2_CALL
axis2_svc_get_parent(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Sets QName.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param qname pointer to QName
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_qname(
axis2_svc_t * svc,
const axutil_env_t * env,
const axutil_qname_t * qname);
/**
* Gets QName.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to QName
*/
AXIS2_EXTERN const axutil_qname_t *AXIS2_CALL
axis2_svc_get_qname(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Adds given parameter to operation.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param param pointer to parameter, service assumes ownership of
* parameter
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_param(
axis2_svc_t * svc,
const axutil_env_t * env,
axutil_param_t * param);
/**
* Gets named parameter.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param name name string
* @return pointer to named parameter if exists, else NULL. Returns a
* reference, not a cloned copy
*/
AXIS2_EXTERN axutil_param_t *AXIS2_CALL
axis2_svc_get_param(
const axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * name);
/**
* Remove a parameter.
* @param svc pointer to service struct
* @param env pointer to the environment
* @Param param_name parameter name to be removed
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_remove_param(
const axis2_svc_t *svc,
const axutil_env_t *env,
const axis2_char_t *param_name);
/**
* Gets all parameters stored within service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to array list of parameters, returns a reference,
* not a cloned copy
*/
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_svc_get_all_params(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Checks if the named parameter is locked.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param param_name parameter name
* @return AXIS2_TRUE if the named parameter is locked, else AXIS2_FALSE
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_svc_is_param_locked(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * param_name);
/**
* Engages given module to service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param module_desc pointer to module description to be engaged,
* service does not assume the ownership of module
* @param conf pointer to configuration, it is configuration that holds
* module information
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_engage_module(
axis2_svc_t * svc,
const axutil_env_t * env,
struct axis2_module_desc *module_desc,
struct axis2_conf *conf);
/**
* Disengages given module from service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param module_desc pointer to module description to be engaged,
* service does not assume the ownership of module
* @param conf pointer to configuration, it is configuration that holds
* module information
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_disengage_module(
axis2_svc_t * svc,
const axutil_env_t * env,
struct axis2_module_desc *module_desc,
struct axis2_conf *conf);
/**
* Check whether a given module is engaged to the service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param module_qname pointer to module qname to be engaged,
* @return AXIS2_TRUE if module is engaged, else AXIS2_FALSE
*/
AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_svc_is_module_engaged(
axis2_svc_t * svc,
const axutil_env_t * env,
axutil_qname_t * module_qname);
/**
* Return the engaged module list.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return engaged module list
*/
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_svc_get_engaged_module_list(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Adds operations defined in a module to this service. It is possible
* to define operations that are associated to a module in a module.xml
* file. These operations in turn could be invoked in relation to a
* service. This method allows those module related operation to be
* added to a service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param module_desc pointer to module description containing module
* related operation information. service does not assume the ownership
* of module description
* @param conf pointer to configuration, it is configuration that stores
* the modules
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_module_ops(
axis2_svc_t * svc,
const axutil_env_t * env,
struct axis2_module_desc *module_desc,
struct axis2_conf *axis2_config);
/**
* Adds given module description to engaged module list.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param module_desc pointer to module description, service does not
* assume the ownership of module description
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_to_engaged_module_list(axis2_svc_t *svc,
const axutil_env_t *env,
struct axis2_module_desc *module_desc); */
/**
* Gets all engaged modules.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to array list containing all engaged modules
*/
/*AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_svc_get_all_engaged_modules(const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets style. Style can be either RPC or document literal.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param style style of service as defined in WSDL
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_style(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * style);
/**
* Gets style. Style can be either RPC or document literal.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return string representing the style of service
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_style(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Gets in flow. In flow is the list of phases invoked
* along in path.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to flow representing in flow
*/
/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL
axis2_svc_get_in_flow(const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets in flow. In flow is the list of phases invoked
* along in path.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param in_flow pointer to flow representing in flow
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_in_flow(axis2_svc_t *svc,
const axutil_env_t *env,
struct axis2_flow *in_flow); */
/**
* Gets out flow. Out flow is the list of phases invoked
* along out path.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to flow representing out flow
*/
/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL
axis2_svc_get_out_flow(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets out flow. Out flow is the list of phases invoked
* along out path.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return out_flow pointer to flow representing out flow
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_out_flow(
axis2_svc_t *svc,
const axutil_env_t *env,
struct axis2_flow *out_flow); */
/**
* Gets fault in flow. Fault in flow is the list of phases invoked
* along in path if a fault happens.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to flow representing fault in flow
*/
/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL
axis2_svc_get_fault_in_flow(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets fault in flow. Fault in flow is the list of phases invoked
* along in path if a fault happens.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param fault_flow pointer to flow representing fault in flow
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_fault_in_flow(
axis2_svc_t *svc,
const axutil_env_t *env,
struct axis2_flow *fault_flow); */
/**
* Gets fault out flow. Fault out flow is the list of phases invoked
* along out path if a fault happens.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to flow representing fault out flow
*/
/*AXIS2_EXTERN struct axis2_flow *AXIS2_CALL
axis2_svc_get_fault_out_flow(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets fault out flow. Fault out flow is the list of phases invoked
* along out path if a fault happens.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param fault_flow pointer to flow representing fault out flow
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_fault_out_flow(
axis2_svc_t *svc,
const axutil_env_t *env,
struct axis2_flow *fault_flow); */
/**
* Gets operation corresponding to given SOAP Action.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param soap_action SOAP action string
* @return pointer to operation corresponding to given SOAP action if
* one exists, else NULL. Returns a reference, not a cloned copy
*/
AXIS2_EXTERN struct axis2_op *AXIS2_CALL
axis2_svc_get_op_by_soap_action(
const axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * soap_action);
/**
* Gets operation corresponding to given SOAP Action and endpoint QName.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param soap_action SOAP action string
* @param endpoint pointer QName representing endpoint URI
* @return pointer operation corresponding to given SOAP Action and
* endpoint QName.
*/
/*AXIS2_EXTERN struct axis2_op *AXIS2_CALL
axis2_svc_get_op_by_soap_action_and_endpoint(
const axis2_svc_t *svc,
const axutil_env_t *env,
const axis2_char_t *soap_action,
const axutil_qname_t *endpoint); */
/**
* Gets service name.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return service name string
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_name(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Sets service name.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param svc_name service name string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_name(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * svc_name);
/**
* Sets current time as last update time of the service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_last_update(
axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Gets last update time of the service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return last updated time in seconds
*/
AXIS2_EXTERN long AXIS2_CALL
axis2_svc_get_last_update(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Get the description of the services, which is in the
* service.xml, <description> tag
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return services description string
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_svc_desc(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Set the description of the service which is in service.xml
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_svc_desc(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * svc_desc);
/**
* Get the static wsdl file of the services, which is in the
* service.xml, wsdl_path parameter
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return static wsdl file location
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_svc_wsdl_path(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Set the wsdl path of the service which is in service.xml
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_svc_wsdl_path(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * wsdl_path);
/**
* Get the folder path on disk of the services, which is in the
* service.xml
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return folder path on disk
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_svc_folder_path(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Set the folder path of the service which is in service.xml
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_svc_folder_path(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * folder_path);
/**
* Gets the name of the file that holds the implementation of the
* service. service implementation is compiled into shared libraries
* and is placed in the respective sub folder in the services folder
* of Axis2 repository.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return file name string
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_file_name(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Sets the name of the file that holds the implementation of the
* service. service implementation is compiled into shared libraries
* and is placed in the respective sub folder in the services folder
* of Axis2 repository.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param file_name file name string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_file_name(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * file_name);
/**
* Gets all endpoints associated with the service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to hash map containing all endpoints
*/
/*AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_svc_get_all_endpoints(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets the list of endpoints associated with the service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param endpoints pointer to hash map containing all endpoints
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_all_endpoints(
axis2_svc_t *svc,
const axutil_env_t *env,
axutil_hash_t *endpoints); */
/**
* Gets namespace.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return namespace URI string
*/
/*AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_namespace(
const axis2_svc_t *svc,
const axutil_env_t *env);
*/
/**
* Adds WS-Addressing mapping for a given operation. The services.xml
* configuration file could specify a SOAP action that would map to
* one of the service operations. This method could be used to register
* that mapping against operations. WS-Addressing based dispatcher
* makes use of this mapping to identify the operation to be invoked,
* given WSA action.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param wsa_action WSA action string
* @param op pointer to operation that maps to the given WSA action
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_mapping(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * wsa_action,
struct axis2_op *axis2_op);
/**
* Adds a REST mapping for a given RESTful operation. The services.xml
* configuration file could specify a HTTP Method and Location that would
* map to one of the service operations. This method could be used to register
* that mapping against operations. The REST based dispatcher makes use
* of this mapping to identify the operation to be invoked, given the URL.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param method REST HTTP Method
* @param location REST HTTP Location
* @param op pointer to operation that maps to the given WSA action
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_rest_mapping(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * method,
const axis2_char_t * location,
struct axis2_op *axis2_op);
/**
* Adds a module qname to list of module QNames associated with service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param module_qname pointer to QName to be added, this method clones
* the QName
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_module_qname(
axis2_svc_t * svc,
const axutil_env_t * env,
const axutil_qname_t * module_qname);
/**
* Gets all module QNames associated with the service as a list.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to array list containing QNames
*/
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_svc_get_all_module_qnames(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Checks if the XML schema location is adjusted.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return AXIS2_TRUE if XML schema is adjusted, else AXIS2_FALSE
*/
/*AXIS2_EXTERN axis2_bool_t AXIS2_CALL
axis2_svc_is_schema_location_adjusted(
axis2_svc_t *svc,
const axutil_env_t *env);
*/
/**
* Sets the bool value indicating if the XML schema location is adjusted.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param adjusted AXIS2_TRUE if XML schema is adjusted, else AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_schema_location_adjusted(
axis2_svc_t *svc,
const axutil_env_t *env,
const axis2_bool_t adjusted); */
/**
* Gets XML schema mapping table for service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to hash map with XML schema mappings, returns a
* reference, not a cloned copy
*/
/*
AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
axis2_svc_axis2_svc_get_schema_mapping_table(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets XML schema mapping table for service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param table pointer to hash map with XML schema mappings, service
* assumes ownership of the map
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_schema_mapping_table(
axis2_svc_t *svc,
const axutil_env_t *env,
axutil_hash_t *table); */
/**
* Gets custom schema prefix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return custom schema prefix string
*/
/*
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_custom_schema_prefix(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets custom schema prefix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param prefix custom schema prefix string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_custom_schema_prefix(
axis2_svc_t *svc,
const axutil_env_t *env,
const axis2_char_t *prefix); */
/**
* Gets custom schema suffix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return custom schema suffix string
*/
/*
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_custom_schema_suffix(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets custom schema suffix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param suffix custom schema suffix string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_custom_schema_suffix(
axis2_svc_t *svc,
const axutil_env_t *env,
const axis2_char_t *suffix); */
/**
* Prints the schema to given stream.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param out_stream stream to print to
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_print_schema(
axis2_svc_t *svc,
const axutil_env_t *env,
axutil_stream_t *out_stream); */
/**
* Gets the XML schema at the given index of XML schema array list.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param index index of the XML schema to be retrieved
* @return pointer to XML schema, returns a reference, not a cloned copy
*/
/*AXIS2_EXTERN xml_schema_t *AXIS2_CALL
axis2_svc_get_schema(
const axis2_svc_t *svc,
const axutil_env_t *env,
const int index); */
/**
* Adds all namespaces in the namespace map to the XML schema at
* the given index of the XML schema array list.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param index index of the XML schema to be processed
* @return pointer to XML schema with namespaces added,
* returns a reference, not a cloned copy
*/
/* AXIS2_EXTERN xml_schema_t *AXIS2_CALL
axis2_svc_add_all_namespaces(
axis2_svc_t *svc,
const axutil_env_t *env,
int index);*/
/**
* Gets the list of XML schemas associated with service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to array list of XML schemas, returns a reference,
* not a cloned copy
*/
/*
AXIS2_EXTERN axutil_array_list_t *AXIS2_CALL
axis2_svc_get_all_schemas(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Adds the given XML schema to the list of XML schemas associated
* with the service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param schema pointer to XML schema struct, service assumes the
* ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_schema(
axis2_svc_t *svc,
const axutil_env_t *env,
xml_schema_t *schema); */
/**
* Adds the list of all XML schemas to service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param schemas pointer to array list containing XML schemas
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_add_all_schemas(
axis2_svc_t *svc,
const axutil_env_t *env,
axutil_array_list_t *schemas); */
/**
* Gets XML schema's target namespace.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return XML schema target namespace string
*/
/*
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_schema_target_ns(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets XML schema's target namespace.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param ns namespace string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_schema_target_ns(
axis2_svc_t *svc,
const axutil_env_t *env,
const axis2_char_t *ns); */
/**
* Gets XML schema's target namespace prefix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return XML schema target namespace prefix string
*/
/*
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_schema_target_ns_prefix(
const axis2_svc_t *svc,
const axutil_env_t *env); */
/**
* Sets XML schema's target namespace prefix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param prefix namespace prefix string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_schema_target_ns_prefix(
axis2_svc_t *svc,
const axutil_env_t *env,
const axis2_char_t *prefix); */
/**
* Gets target namespace.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return target namespace as a string
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_target_ns(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Sets target namespace.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param ns target namespace as a string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
saxis2_svc_et_target_ns(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * ns);
/**
* Gets target namespace prefix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return target namespace prefix string
*/
AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
axis2_svc_get_target_ns_prefix(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Sets target namespace prefix.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param prefix target namespace prefix string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_target_ns_prefix(
axis2_svc_t * svc,
const axutil_env_t * env,
const axis2_char_t * prefix);
/**
* Gets XML schemas element corresponding to the given QName.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param qname QName of the XML schema element to be retrieved
* @return pointer to XML schema element, returns a reference, not a
* cloned copy
*/
/*AXIS2_EXTERN xml_schema_element_t *AXIS2_CALL
axis2_svc_get_schema_element(
const axis2_svc_t *svc,
const axutil_env_t *env,
const axutil_qname_t *qname); */
/**
* Gets the namespace map with all namespaces related to service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return pointer to hash map containing all namespaces, returns a
* reference, not a cloned copy
*/
AXIS2_EXTERN axutil_hash_t *AXIS2_CALL
gaxis2_svc_et_ns_map(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Sets the namespace map with all namespaces related to service.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @param ns_map pointer to hash map containing all namespaces
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_ns_map(
axis2_svc_t * svc,
const axutil_env_t * env,
axutil_hash_t * ns_map);
/**
* Populates the schema mappings. This method is used in code generation
* and WSDL generation (WSDL2C and C2WSDL). This method deals with the
* imported schemas that would be there in the WSDL.
* @param svc pointer to service struct
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
/*AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_populate_schema_mappings(
axis2_svc_t *svc,
const axutil_env_t *env); */
AXIS2_EXTERN axutil_param_container_t *AXIS2_CALL
axis2_svc_get_param_container(
const axis2_svc_t * svc,
const axutil_env_t * env);
AXIS2_EXTERN axis2_flow_container_t *AXIS2_CALL
axis2_svc_get_flow_container(
const axis2_svc_t * svc,
const axutil_env_t * env);
/**
* Creates a service struct instance.
* @param env pointer to environment struct
* @return pointer to newly created service
*/
AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
axis2_svc_create(
const axutil_env_t * env);
/**
* Creates a service struct with given QName.
* @param env pointer to environment struct
* @param qname service QName
* @return pointer to newly created service
*/
AXIS2_EXTERN axis2_svc_t *AXIS2_CALL
axis2_svc_create_with_qname(
const axutil_env_t * env,
const axutil_qname_t * qname);
AXIS2_EXTERN void *AXIS2_CALL
axis2_svc_get_impl_class(
const axis2_svc_t * svc,
const axutil_env_t * env);
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_svc_set_impl_class(
axis2_svc_t * svc,
const axutil_env_t * env,
void *impl_class);
/**
* Gets base description.
* @param svc pointer to message
* @param env pointer to environment struct
* @return pointer to base description struct
*/
AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
axis2_svc_get_base(
const axis2_svc_t * svc,
const axutil_env_t * env);
/* Get the mutex associated with this service
* @param svc pointer to message
* @param env pointer to environment struct
* @return pointer to a axutil_thread_mutext_t
*/
AXIS2_EXTERN axutil_thread_mutex_t * AXIS2_CALL
axis2_svc_get_mutex(
const axis2_svc_t * svc,
const axutil_env_t * env);
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* AXIS2_SVC_H */