From 0425aadc78680e53000fd0108b540d6eca048516 Mon Sep 17 00:00:00 2001 From: gmcdonald Date: Sat, 13 Feb 2010 01:32:03 +0000 Subject: Moving axis svn, part of TLP move INFRA-2441 git-svn-id: http://svn.apache.org/repos/asf/axis/axis2/c/core/trunk@909681 13f79535-47bb-0310-9956-ffa450edef68 --- include/axis2_svc.h | 1236 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1236 insertions(+) create mode 100644 include/axis2_svc.h (limited to 'include/axis2_svc.h') diff --git a/include/axis2_svc.h b/include/axis2_svc.h new file mode 100644 index 0000000..c710587 --- /dev/null +++ b/include/axis2_svc.h @@ -0,0 +1,1236 @@ + +/* + * 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#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, 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 */ -- cgit v1.1-32-gdbae