| /* |
| * Copyright 2004,2005 The Apache Software Foundation. |
| * |
| * Licensed 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_STUB_H |
| #define AXIS2_STUB_H |
| |
| /** @defgroup axis2_stub stub |
| * @ingroup axis2_client_api |
| * stub is a wrapper API for service client that helps users to use client API |
| * easily. |
| * @sa axis2_svc_client |
| * @{ |
| */ |
| |
| /** |
| * @file axis2_stub.h |
| */ |
| |
| #include <axis2_endpoint_ref.h> |
| #include <axis2_svc_client.h> |
| #include <axis2_options.h> |
| #include <axiom_xml_reader.h> |
| #include <axis2_property.h> |
| |
| /** Constant value representing SOAP version 1.1 */ |
| #define AXIOM_SOAP_11 0 |
| /** Constant value representing SOAP version 1.2 */ |
| #define AXIOM_SOAP_12 1 |
| |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| |
| /** Type name for struct axis2_stub_ops */ |
| typedef struct axis2_stub_ops axis2_stub_ops_t; |
| /** Type name for struct axis2_stub */ |
| typedef struct axis2_stub axis2_stub_t; |
| |
| /** |
| * stub ops struct. |
| * Encapsulator struct for operations of axis2_svc_client |
| */ |
| struct axis2_stub_ops |
| { |
| /** |
| * Frees stub struct. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE |
| */ |
| axis2_status_t (AXIS2_CALL * |
| free)( |
| axis2_stub_t *stub, |
| const axis2_env_t *env); |
| |
| /** |
| * Sets the endpoint reference. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @param endpoint_ref pointer to endpoint reference. stub assumes the |
| * ownership of the endpoint reference struct |
| * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_endpoint_ref)( |
| axis2_stub_t *stub, |
| const axis2_env_t *env, |
| axis2_endpoint_ref_t *endpoint_ref); |
| |
| /** |
| * Sets the endpoint reference, represented by a string. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @param endpoint_uri pointer to endpoint uri string |
| * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_endpoint_uri)( |
| axis2_stub_t *stub, |
| const axis2_env_t *env, |
| const axis2_char_t *endpoint_uri); |
| |
| |
| /** |
| * Sets the bool value specifying whether to use a separate listener |
| * for receive channel. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @param use_separate whether to use a separate listener |
| * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_use_separate_listener)( |
| axis2_stub_t *stub, |
| const axis2_env_t *env, |
| const axis2_bool_t use_separate_listener); |
| |
| /** |
| * Sets the SOAP version. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @param soap_version int value representing the SOAP version |
| * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE |
| */ |
| axis2_status_t (AXIS2_CALL * |
| set_soap_version)( |
| axis2_stub_t *stub, |
| const axis2_env_t *env, |
| const int soap_version); |
| |
| |
| /** |
| * Gets the service context ID. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @return service context ID if set, else NULL |
| */ |
| const axis2_char_t *(AXIS2_CALL * |
| get_svc_ctx_id)( |
| const axis2_stub_t *stub, |
| const axis2_env_t *env); |
| |
| /** |
| * Engages the named module. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @param module_name string representing the name of the module |
| * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE |
| */ |
| axis2_status_t (AXIS2_CALL * |
| engage_module)( |
| axis2_stub_t *stub, |
| const axis2_env_t *env, |
| const axis2_char_t *module_name); |
| |
| /** |
| * Gets the service client instance used by this stub. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @return pointer to service client struct used by the stub |
| */ |
| axis2_svc_client_t *(AXIS2_CALL * |
| get_svc_client)( |
| const axis2_stub_t *stub, |
| const axis2_env_t *env); |
| |
| /** |
| * Gets the options used on top of the service client used by this stub. |
| * @param stub pointer to stub struct |
| * @param env pointer to environment struct |
| * @return pointer to options used by the service client of this stub |
| */ |
| axis2_options_t *(AXIS2_CALL * |
| get_options)( |
| const axis2_stub_t *stub, |
| const axis2_env_t *env); |
| |
| } ; |
| |
| /** |
| * stub struct. |
| */ |
| struct axis2_stub |
| { |
| /** operations of stub */ |
| axis2_stub_ops_t *ops; |
| }; |
| |
| /** |
| * Creates a stub instance. |
| * @param env pointer to environment struct |
| * @param endpoint_ref pointer to endpoint reference struct representing the |
| * stub endpoint. Newly created stub assumes ownership of the endpoint |
| * @param client_home name of the directory that contains the Axis2/C repository |
| * @return pointer to newly created axis2_stub struct |
| */ |
| AXIS2_EXTERN axis2_stub_t * AXIS2_CALL |
| axis2_stub_create_with_endpoint_ref_and_client_home( |
| const axis2_env_t *env, |
| axis2_endpoint_ref_t *endpoint_ref, |
| const axis2_char_t *client_home); |
| |
| /** |
| * Creates a stub instance. |
| * @param env pointer to environment struct |
| * @param endpoint_uri string representing the endpoint reference |
| * @param client_home name of the directory that contains the Axis2/C repository |
| * @return pointer to newly created axis2_stub struct |
| */ |
| AXIS2_EXTERN axis2_stub_t * AXIS2_CALL |
| axis2_stub_create_with_endpoint_uri_and_client_home( |
| const axis2_env_t *env, |
| const axis2_char_t *endpoint_uri, |
| const axis2_char_t *client_home); |
| |
| |
| /** Frees the axis2 stub. |
| @sa axis2_stub_ops#free */ |
| #define AXIS2_STUB_FREE(stub, env) \ |
| ((stub)->ops->free (stub, env)) |
| |
| /** Sets the endpoint reference. |
| @sa axis2_stub_ops#set_endpoint_ref*/ |
| #define AXIS2_STUB_SET_ENDPOINT_REF(stub, env, endpoint_ref) \ |
| ((stub)->ops->set_endpoint_ref (stub, env, endpoint_ref)) |
| |
| /** Sets the endpoint uri. |
| @sa axis2_stub_ops#set_endpoint_uri*/ |
| #define AXIS2_STUB_SET_ENDPOINT_URI(stub, env, endpoint_uri) \ |
| ((stub)->ops->set_endpoint_uri (stub, env, endpoint_uri)) |
| |
| /** Sets bool value indicating whether to use a separate listener. |
| @sa axis2_stub_ops#set_use_separate_listener*/ |
| #define AXIS2_STUB_SET_USE_SEPERATE_LISTENER(stub, env, use_separate_listener) \ |
| ((stub)->ops->set_use_separate_listener (stub, env, use_separate_listener)) |
| |
| /** Engages the module. |
| @sa axis2_stub_ops#engage_module*/ |
| #define AXIS2_STUB_ENGAGE_MODULE(stub, env, module_name) \ |
| ((stub)->ops->engage_module (stub, env, module_name)) |
| |
| /** Sets the SOAP version. |
| @sa axis2_stub_ops#set_soap_version*/ |
| #define AXIS2_STUB_SET_SOAP_VERSION(stub, env, soap_version) \ |
| ((stub)->ops->set_soap_version (stub, env, soap_version)) |
| |
| /** Gets the service context id. |
| @sa axis2_stub_ops#get_svc_ctx_id*/ |
| #define AXIS2_STUB_GET_SVC_CTX_ID(stub, env) \ |
| ((stub)->ops->get_svc_ctx_id (stub, env)) |
| |
| /** Gets the service client that this stub wraps. |
| @sa axis2_stub_ops#get_svc_client*/ |
| #define AXIS2_STUB_GET_SVC_CLIENT(stub, env) \ |
| ((stub)->ops->get_svc_client(stub, env)) |
| |
| /** Gets the options used by service client wrapped by this stub. |
| @sa axis2_stub_ops#get_options*/ |
| #define AXIS2_STUB_GET_OPTIONS(stub, env) \ |
| ((stub)->ops->get_options(stub, env)) |
| |
| |
| /** @} */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* AXIS2_STUB_H */ |