blob: 6a871aff6c99d049055e791c3cc3bf39b1aa10a3 [file] [log] [blame]
/*
* 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
#include <axis2_endpoint_ref.h>
#include <axis2_svc_client.h>
#include <axis2_options.h>
#include <axiom_xml_reader.h>
#include <axis2_property.h>
#ifdef __cplusplus
extern "C"
{
#endif
/**
* @file axis2_stub.h
* @brief Axis2c service skeleton that should be implemented by actual service
* wrappers
*/
/** @defgroup axis2_stub Axis2 Stub
* @ingroup axis2_core_clientapi
* @{
*/
#define AXIOM_SOAP_11 0
#define AXIOM_SOAP_12 1
typedef struct axis2_stub_ops axis2_stub_ops_t;
typedef struct axis2_stub axis2_stub_t;
AXIS2_DECLARE_DATA struct axis2_stub_ops
{
axis2_status_t (AXIS2_CALL *
free)(axis2_stub_t *stub,
const axis2_env_t *env);
axis2_status_t (AXIS2_CALL *
set_endpoint_ref) (axis2_stub_t *stub,
const axis2_env_t *env,
axis2_endpoint_ref_t *endpoint_ref);
axis2_status_t (AXIS2_CALL *
set_endpoint_uri) (axis2_stub_t *stub,
const axis2_env_t *env,
axis2_char_t *endpoint_uri);
/**
*
* @param use_separate_transport
*/
axis2_status_t (AXIS2_CALL *
set_use_seperate_listener)(axis2_stub_t *stub,
const axis2_env_t *env,
axis2_bool_t use_separate_listener);
/**
* Set the soap version
* @param soap_version
*/
axis2_status_t (AXIS2_CALL *
set_soap_version)(axis2_stub_t *stub,
const axis2_env_t *env,
int soap_version);
axis2_char_t *(AXIS2_CALL *
get_svc_ctx_id)(axis2_stub_t *stub,
const axis2_env_t *env);
axis2_status_t (AXIS2_CALL *
engage_module)(axis2_stub_t *stub,
const axis2_env_t *env,
axis2_char_t *module_name);
axis2_svc_client_t *(AXIS2_CALL *
get_svc_client)(axis2_stub_t *stub,
const axis2_env_t *env);
axis2_options_t *(AXIS2_CALL *
get_options)(axis2_stub_t *stub,
const axis2_env_t *env);
} ;
AXIS2_DECLARE_DATA struct axis2_stub
{
axis2_stub_ops_t *ops;
};
/**
* Creates axis2_stub struct
* @param endpoint reference
* @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 axis2_stub struct
* @param endpoint uri
* @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);
/*************************** Function macros **********************************/
#define AXIS2_STUB_FREE(stub, env) \
((stub)->ops->free (stub, env))
#define AXIS2_STUB_SET_ENDPOINT_REF(stub, env, endpoint_ref) \
((stub)->ops->set_endpoint_ref (stub, env, endpoint_ref))
#define AXIS2_STUB_SET_ENDPOINT_URI(stub, env, endpoint_uri) \
((stub)->ops->set_endpoint_uri (stub, env, endpoint_uri))
#define AXIS2_STUB_SET_USE_SEPERATE_LISTENER(stub, env, use_separate_listener) \
((stub)->ops->set_transport_info (stub, env, use_separate_listener))
#define AXIS2_STUB_ENGAGE_MODULE(stub, env, module_name) \
((stub)->ops->engage_module (stub, env, module_name))
#define AXIS2_STUB_SET_SOAP_VERSION(stub, env, soap_version) \
((stub)->ops->set_soap_version (stub, env, soap_version))
#define AXIS2_STUB_GET_SVC_CTX_ID(stub, env) \
((stub)->ops->get_svc_ctx_id (stub, env))
#define AXIS2_STUB_GET_SVC_CLIENT(stub, env) \
((stub)->ops->get_svc_client(stub, env))
#define AXIS2_STUB_GET_OPTIONS(stub, env) \
((stub)->ops->get_options(stub, env))
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* AXIS2_STUB_H */