blob: 42d234c5fd7af92dd7ccf06b182fcad93ca2725c [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_OP_H
#define AXIS2_OP_H
/**
* @defgroup axis2_op operation
* @ingroup axis2_desc
* operation represents the static structure of an operation in a service.
* In Axis2 description hierarchy, an operation lives inside the service to
* which it belongs.
* operations are configured in services.xml files located in the respective
* service group folders of the services folder in the repository.
* In services.xml file, operations are declared in association with a given
* service. The deployment engine would create operation instances to represent
* those configured operations and would associate them with the respective
* service in the configuration.
* operation encapsulates data on message exchange pattern (MEP), the
* execution flows, engaged module information, and the message receiver
* associated with the operation.
* @{
*/
/**
* @file axis2_op.h
*/
#include <axis2_param_container.h>
#include <axis2_wsdl_op.h>
#include <axis2_svc.h>
#include <axis2_msg_recv.h>
#include <axis2_array_list.h>
#include <axis2_module_desc.h>
#include <axis2_wsdl_msg_ref.h>
#include <axis2_description.h>
#include <axis2_phase_meta.h>
#include <axis2_relates_to.h>
#include <axis2_msg_ctx.h>
#include <axis2_op_ctx.h>
#include <axis2_svc_ctx.h>
#ifdef __cplusplus
extern "C"
{
#endif
/** Type name for struct axis2_op_ops */
typedef struct axis2_op_ops axis2_op_ops_t;
/** Type name for struct axis2_op */
typedef struct axis2_op axis2_op_t;
struct axis2_wsdl_op;
struct axis2_svc;
struct axis2_msg_recv;
struct axis2_param_container;
struct axis2_module_desc;
struct axis2_op;
struct axis2_wsdl_feature;
struct axis2_wsdl_property;
struct axis2_wsdl_fault_ref;
struct axis2_relates_to;
struct axis2_op_ctx;
struct axis2_svc_ctx;
struct axis2_msg_ctx;
struct axis2_msg;
struct axis2_conf;
/** SOAP action string constant */
#define AXIS2_SOAP_ACTION "soapAction"
/**
* operation ops struct.
* Encapsulator struct for ops of axis2_op.
*/
struct axis2_op_ops
{
/**
* Frees operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
free)(
axis2_op_t *op,
const axis2_env_t *env);
/**
* Frees operation given as a void pointer.
* @param op pointer to operation as a void pointer
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
free_void_arg)(
void *op,
const axis2_env_t *env);
/**
* Adds a parameter to method.
* @param op pointer to operation
* @param env pointer to environment struct
* @param param pointer parameter to be added, operation assumes
* ownership of parameter
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_param)(
axis2_op_t *op,
const axis2_env_t *env,
axis2_param_t *param);
/**
* Gets named parameter.
* @param op pointer to operation
* @param env pointer to environment struct
* @param name name of parameter to be retrieved as a string
* @return pointer to named parameter if exists, else NULL. Returns a
* reference, not a cloned copy
*/
axis2_param_t *(AXIS2_CALL *
get_param)(
const axis2_op_t *op,
const axis2_env_t *env,
const axis2_char_t *name);
/**
* Gets all parameters.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to array list containing all parameters, returns
* a reference, not a cloned copy
*/
axis2_array_list_t *(AXIS2_CALL *
get_all_params)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Checks if the named parameter is locked.
* @param op pointer to operation
* @param env pointer to environment struct
* @param param_name name of the parameter to be checked
* @return AXIS2_TRUE if named parameter is locked, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
is_param_locked)(
axis2_op_t *op,
const axis2_env_t *env,
const axis2_char_t *param_name);
/**
* Sets parent. Parent of an operation is of type service.
* @param op pointer to operation
* @param env pointer to environment struct
* @param svc pointer to parent service, operation does not assume
* ownership of service
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_parent)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_svc *svc);
/**
* Gets parent. Parent of an operation is of type service.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to parent service, returns a reference, not a cloned
* copy
*/
struct axis2_svc *(AXIS2_CALL *
get_parent)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets operation QName.
* @param op pointer to operation as a void pointer, as this would be
* assigned to get_qname() method of base WSDL operation
* @param env pointer to environment struct
* @param qname pointer to QName, this method creates a clone of the
* QName
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_qname)(
axis2_op_t *op,
const axis2_env_t *env,
const axis2_qname_t *qname);
/**
* Gets operation QName.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to QName, returns a reference, not a cloned copy
*/
const axis2_qname_t *(AXIS2_CALL *
get_qname)(
void *op,
const axis2_env_t *env);
/**
* Sets operation message exchange pattern (MEP).
* @param op pointer to operation
* @param env pointer to environment struct
* @param pattern message exchange pattern string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_msg_exchange_pattern)(
axis2_op_t *op,
const axis2_env_t *env,
const axis2_char_t *pattern);
/**
* Gets operation message exchange pattern (MEP).
* @param op pointer to operation
* @param env pointer to environment struct
* @return MEP string
*/
const axis2_char_t *(AXIS2_CALL *
get_msg_exchange_pattern)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets message receiver. message receiver is responsible for invoking
* the business logic associated with the operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @param msg_recv pointer to message receiver, operation assumes
* ownership of message receiver
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_msg_recv)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_msg_recv *msg_recv);
/**
* Gets message receiver. message receiver is responsible for invoking
* the business logic associated with the operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to message receiver, returns a reference, not a
* cloned copy
*/
struct axis2_msg_recv *(AXIS2_CALL *
get_msg_recv)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets style of operation. Style is that mentioned in WSDL, either
* RPC or document literal.
* @param op pointer to operation
* @param env pointer to environment struct
* @return string representing style
*/
const axis2_char_t *(AXIS2_CALL *
get_style)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets style of operation. Style is that mentioned in WSDL, either
* RPC or document literal.
* @param op pointer to operation
* @param env pointer to environment struct
* @param style string representing style
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_style)(
axis2_op_t *op,
const axis2_env_t *env,
const axis2_char_t *style);
/**
* Engages given module to operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @param module_desc pointer to module description, operation does not
* assume ownership of struct
* @param conf pointer to configuration, operation does not assume
* ownership of configuration
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
engage_module)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_module_desc *module_desc,
struct axis2_conf *conf);
/**
* Adds module description to engaged module list.
* @param op pointer to operation
* @param env pointer to environment struct
* @param module_dec pointer to module description, operation does not
* assume ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_to_engaged_module_list)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_module_desc *module_dec);
/**
* Gets all modules associated to operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to array list containing module descriptions
*/
axis2_array_list_t *(AXIS2_CALL *
get_all_modules)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets Axis specific MEP constant. This method simply maps the string
* URI of the MEP to an integer.
* @param op pointer to operation
* @param env pointer to environment struct
* @return integer representing MEP
*/
int (AXIS2_CALL *
get_axis_specific_mep_const)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets fault in flow. Fault in flow is the list of phases invoked
* when a fault happens along in path.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to array list containing phases, returns a reference,
* not a cloned copy
*/
axis2_array_list_t *(AXIS2_CALL *
get_fault_in_flow)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets fault out flow. Fault out flow is the list of phases invoked
* when a fault happens along out path.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to array list containing phases, returns a reference,
* not a cloned copy
*/
axis2_array_list_t *(AXIS2_CALL *
get_fault_out_flow)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets out flow. Out flow is the list of phases invoked
* along out path.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to array list containing phases, returns a reference,
* not a cloned copy
*/
axis2_array_list_t *(AXIS2_CALL *
get_out_flow)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets in flow. In flow is the list of phases
* invoked along in path.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to array list containing phases, returns a reference,
* not a cloned copy
*/
axis2_array_list_t *(AXIS2_CALL *
get_in_flow)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets fault in flow. Fault in flow is the list of phases invoked
* when a fault happens along in path.
* @param op pointer to operation
* @param env pointer to environment struct
* @param list pointer to array list containing phases, operation takes
* over the ownership of list
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_fault_in_flow)(
axis2_op_t *op,
const axis2_env_t *env,
axis2_array_list_t *list);
/**
* Sets fault out flow. Fault out flow is the list of phases invoked
* when a fault happens along out path.
* @param op pointer to operation
* @param env pointer to environment struct
* @param list pointer to array list containing phases, operation takes
* over the ownership of list
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_fault_out_flow)(
axis2_op_t *op,
const axis2_env_t *env,
axis2_array_list_t *list);
/**
* Sets out flow. Out flow is the list of phases invoked
* along out path.
* @param op pointer to operation
* @param env pointer to environment struct
* @param list pointer to array list containing phases, operation takes
* over the ownership of list
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_out_flow)(
axis2_op_t *op,
const axis2_env_t *env,
axis2_array_list_t *list);
/**
* Sets in flow. In flow is the list of phases
* invoked along in path.
* @param op pointer to operation
* @param env pointer to environment struct
* @param list pointer to array list containing phases, operation takes
* over the ownership of list
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_in_flow)(
axis2_op_t *op,
const axis2_env_t *env,
axis2_array_list_t *list);
/**
* Adds given QName to module QName list.
* @param op pointer to operation
* @param env pointer to environment struct
* @param module_name pointer to module QName, QName would be cloned by
* this method
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_module_qname)(
axis2_op_t *op,
const axis2_env_t *env,
const axis2_qname_t *module_qname);
/**
* Gets all module QNames as a list.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to array list containing module QNames,
* returns a reference, not a cloned copy
*/
axis2_array_list_t *(AXIS2_CALL *
get_all_module_qnames)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets all in faults as a list.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to linked list containing in faults,
* returns a reference, not a cloned copy
*/
axis2_linked_list_t *(AXIS2_CALL *
get_all_in_faults)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets all in faults as a list.
* @param op pointer to operation
* @param env pointer to environment struct
* @param in_faults pointer to linked list containing in faults,
* operation does not assume the ownership of list
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_in_faults)(
axis2_op_t *op,
const axis2_env_t *env,
axis2_linked_list_t *in_faults);
/**
* Gets input message as a WSDL message reference.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to WSDL message reference struct, returns a reference
* not a cloned copy
*/
struct axis2_wsdl_msg_ref *(AXIS2_CALL *
get_input_msg)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets input message as a WSDL message reference.
* @param op pointer to operation
* @param env pointer to environment struct
* @param input_msg pointer to WSDL message reference, operation takes
* over the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_input_msg)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_wsdl_msg_ref *input_msg);
/**
* Gets all out faults as a list.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to linked list containing out faults,
* returns a reference, not a cloned copy
*/
axis2_linked_list_t *(AXIS2_CALL *
get_all_out_faults)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets all out faults as a list.
* @param op pointer to operation
* @param env pointer to environment struct
* @param out_faults pointer to linked list containing out faults,
* operation does not assume the ownership of list
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_out_faults)(
axis2_op_t *op,
const axis2_env_t *env,
axis2_linked_list_t *out_faults);
/**
* Gets output message as a WSDL message reference.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to WSDL message reference struct, returns a reference
* not a cloned copy
*/
struct axis2_wsdl_msg_ref *(AXIS2_CALL *
get_output_msg)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Gets output message as a WSDL message reference.
* @param op pointer to operation
* @param env pointer to environment struct
* @param output_msg pointer to WSDL message reference struct,
* operation assumes ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_output_msg)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_wsdl_msg_ref *output_msg);
/**
* Gets target namespace associated with operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @return namespace URI string
*/
const axis2_char_t *(AXIS2_CALL *
get_target_namespace)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Adds an in fault.
* @param op pointer to operation
* @param env pointer to environment struct
* @param in_fault pointer to WSDL fault reference struct, operation
* takes over the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_in_fault)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_wsdl_fault_ref *in_fault);
/**
* Adds an out fault.
* @param op pointer to operation
* @param env pointer to environment struct
* @param out_fault pointer to WSDL fault reference struct, operation
* assumes the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_out_fault)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_wsdl_fault_ref *out_fault);
/**
* Adds a WSDL feature associated with operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @param feature pointer to WSDL feature struct, operation assumes
* ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_feature)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_wsdl_feature *feature);
/**
* Gets list of all WSDL features associated with operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to linked list containing all WSDL features
*/
axis2_linked_list_t *(AXIS2_CALL *
get_all_features)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Adds given WSDL property to operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @param wsdl_property pointer to WSDL property struct, operation
* assumes ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_property)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_wsdl_property *wsdl_property);
/**
* Gets all properties associated with operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to linked list containing all properties, returns
* a reference, not a cloned copy
*/
axis2_linked_list_t *(AXIS2_CALL *
get_all_properties)(
const axis2_op_t *op,
const axis2_env_t *env);
/**
* Sets WSDL operation that corresponds to this operation.
* @param op pointer to operation
* @param env pointer to environment struct
* @param wsdl_op pointer to WSDL operation struct, operation assumes
* ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_wsdl_op)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_wsdl_op *wsdl_op);
/**
* Finds operation context related to this operation using given message
* context and service context. This method would create a new operation
* context related to the operation, if one could not be found.
* @param op pointer to operation
* @param env pointer to environment struct
* @param msg_ctx pointer to message context
* @param svc_ctx pointer to service context
* @return pointer to operation context, returns
* a reference, not a cloned copy
*/
struct axis2_op_ctx *(AXIS2_CALL *
find_op_ctx)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_msg_ctx *msg_ctx,
struct axis2_svc_ctx *svc_ctx);
/**
* Finds operation context related to this operation using given message
* context. This method will not create a new operation context if
* an associated operation context could not be found.
* @param op pointer to operation
* @param env pointer to environment struct
* @param msg_ctx pointer to message context
* @return pointer to operation context if found, else NULL. Returns
* a reference, not a cloned copy
*/
struct axis2_op_ctx *(AXIS2_CALL *
find_existing_op_ctx)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_msg_ctx *msg_ctx);
/**
* Registers given operation context against this operation. Registration
* happens within the given message context, as it is the message context
* that captures the state information of a given invocation.
* @param op pointer to operation
* @param env pointer to environment struct
* @param msg_ctx pointer to message context
* @param op_ctx pointer to operation context, operation does not assume
* ownership of operation context
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
register_op_ctx)(
axis2_op_t *op,
const axis2_env_t *env,
struct axis2_msg_ctx *msg_ctx,
struct axis2_op_ctx *op_ctx);
/**
* Gets message with given label.
* @param op pointer to operation
* @param env pointer to environment struct
* @return pointer to message corresponding to given label, returns
* a reference, not a cloned copy
*/
struct axis2_msg *(AXIS2_CALL *
get_msg)(
const axis2_op_t *op,
const axis2_env_t *env,
const axis2_char_t *label);
/**
* Adds given message with the given label.
* @param op pointer to operation
* @param env pointer to environment struct
* @param label label string
* @param msg pointer to message
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
add_msg)(
axis2_op_t *op,
const axis2_env_t *env,
const axis2_char_t *label,
const struct axis2_msg *msg);
/**
* Checks if the operation is from a module.
* @param op pointer to operation
* @param env pointer to environment struct
* AXIS2_TRUE if the operation is from a module, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
is_from_module)(
const axis2_op_t *op,
const axis2_env_t *env);
};
/**
* operation struct.
*/
struct axis2_op
{
/** base WSDL operation */
axis2_wsdl_op_t base;
/** operations of operation struct */
axis2_op_ops_t *ops;
/** parameter container to hold operation related parameters */
struct axis2_param_container *param_container;
};
/**
* Creates operation struct.
* @param env pointer to environment struct
* @return pointer to newly created operation
*/
AXIS2_EXTERN axis2_op_t *AXIS2_CALL
axis2_op_create(
const axis2_env_t *env);
/**
* Creates operation struct for an operation defined in a module.
* @param env pointer to environment struct
* @return pointer to newly created operation
*/
AXIS2_EXTERN axis2_op_t *AXIS2_CALL
axis2_op_create_from_module(
const axis2_env_t *env);
/**
* Creates operation struct with given QName.
* @param env pointer to environment struct
* @param name pointer to QName
* @return pointer to newly created operation
*/
AXIS2_EXTERN axis2_op_t *AXIS2_CALL
axis2_op_create_with_qname(
const axis2_env_t *env,
const axis2_qname_t *name);
/**
* Creates operation struct with given WSDL operation as base.
* @param env pointer to environment struct
* @param wsdl_op pointer to WSDL operation
* @return pointer to newly created operation
*/
AXIS2_EXTERN axis2_op_t *AXIS2_CALL
axis2_op_create_with_wsdl_op(
const axis2_env_t *env,
struct axis2_wsdl_op *wsdl_op);
/**
* Frees the operation given as a void pointer. This method would cast the
* void parameter to an operation pointer and then call free method.
* @param pointer to operation as a void pointer
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
AXIS2_EXTERN axis2_status_t AXIS2_CALL
axis2_op_free_void_arg(
void *op,
const axis2_env_t *env);
/** Frees operation.
@sa axis2_op_ops#free */
#define AXIS2_OP_FREE(op, env) \
((op)->ops->free (op, env))
/** Adds parameter.
@sa axis2_op_ops#add_param */
#define AXIS2_OP_ADD_PARAM(op, env, param) \
((op)->ops->add_param (op, env, param))
/** Gets named parameter.
@sa axis2_op_ops#get_param */
#define AXIS2_OP_GET_PARAM(op, env, key) \
((op)->ops->get_param (op, env, key))
/** Gets all the parameters as a list.
@sa axis2_op_ops#get_all_params */
#define AXIS2_OP_GET_ALL_PARAMS(op, env) \
((op)->ops->get_all_params (op, env))
/** Checks if the named parameter is locked.
@sa axis2_op_ops#is_param_locked */
#define AXIS2_OP_IS_PARAM_LOCKED(op, env, param_name) \
((op)->ops->is_param_locked(op, env, param_name))
/** Sets parent service.
@sa axis2_op_ops#set_parent */
#define AXIS2_OP_SET_PARENT(op, env, service_desc) \
((op)->ops->set_parent (op, env, service_desc))
/** Gets parent service.
@sa axis2_op_ops#get_parent */
#define AXIS2_OP_GET_PARENT(op, env) \
((op)->ops->get_parent (op, env))
/** Sets message receiver.
@sa axis2_op_ops#set_msg_recv */
#define AXIS2_OP_SET_MSG_RECV(op, env, msg_recv) \
((op)->ops->set_msg_recv (op, env, msg_recv))
/** Gets message receiver.
@sa axis2_op_ops#get_msg_recv */
#define AXIS2_OP_GET_MSG_RECV(op, env) \
((op)->ops->get_msg_recv (op, env))
/** Sets QName.
@sa axis2_op_ops#set_qname */
#define AXIS2_OP_SET_QNAME(op, env, qname) \
((op)->ops->set_qname (op, env, qname))
/** Gets QName.
@sa axis2_op_ops#get_qname */
#define AXIS2_OP_GET_QNAME(op, env) \
(((axis2_op_t *) op)->ops->get_qname (op, env))
/** Sets message exchange pattern.
@sa axis2_op_ops#set_msg_exchange_pattern */
#define AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op , env, \
msg_exchange_pattern) \
((op)->ops->set_msg_exchange_pattern (op, env, \
msg_exchange_pattern))
/** Gets message exchange pattern.
@sa axis2_op_ops#get_msg_exchange_pattern */
#define AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env) \
((op)->ops->get_msg_exchange_pattern (op, env))
/** Gets style of operation.
@sa axis2_op_ops#get_style */
#define AXIS2_OP_GET_STYLE(op, env) \
((op)->ops->get_style (op, env))
/** Sets style of operation.
@sa axis2_op_ops#set_style */
#define AXIS2_OP_SET_STYLE(op, env, style) \
((op)->ops->set_style (op, env, style))
/** Engages the given module.
@sa axis2_op_ops#engage_module */
#define AXIS2_OP_ENGAGE_MODULE(op, env, moduleref, conf) \
((op)->ops->engage_module (op, env, moduleref, conf))
/** Adds the named module to engaged module list.
@sa axis2_op_ops#add_to_engaged_module_list */
#define AXIS2_OP_ADD_TO_ENGAGED_MODULE_LIST(op, env, module_name) \
((op)->ops->add_to_engaged_module_list (op, env, module_name))
/** Gets all modules.
@sa axis2_op_ops#get_all_modules */
#define AXIS2_OP_GET_ALL_MODULES(op, env) \
((op)->ops->get_all_modules (op, env))
/** Gets Axis specific MEP constant.
@sa axis2_op_ops#get_axis_specific_mep_const */
#define AXIS2_OP_GET_AXIS_SPECIFIC_MEP_CONST(op, env) \
((op)->ops->get_axis_specific_mep_const (op, env))
/** Gets fault in flow.
@sa axis2_op_ops#get_fault_in_flow */
#define AXIS2_OP_GET_FAULT_IN_FLOW(op, env) \
((op)->ops->get_fault_in_flow (op, env))
/** Gets fault out flow.
@sa axis2_op_ops#get_fault_out_flow */
#define AXIS2_OP_GET_FAULT_OUT_FLOW(op, env) \
((op)->ops->get_fault_out_flow (op, env))
/** Gets out flow.
@sa axis2_op_ops#get_out_flow */
#define AXIS2_OP_GET_OUT_FLOW(op, env) \
((op)->ops->get_out_flow (op, env))
/** Gets in flow.
@sa axis2_op_ops#get_in_flow */
#define AXIS2_OP_GET_IN_FLOW(op, env) \
((op)->ops->get_in_flow (op, env))
/** Sets fault in flow.
@sa axis2_op_ops#set_fault_in_flow */
#define AXIS2_OP_SET_FAULT_IN_FLOW(op, env, list) \
((op)->ops->set_fault_in_flow (op, env, list))
/** Sets fault out flow.
@sa axis2_op_ops#set_fault_out_flow */
#define AXIS2_OP_SET_FAULT_OUT_FLOW(op, env, list) \
((op)->ops->set_fault_out_flow (op, env, list))
/** Sets out flow.
@sa axis2_op_ops#set_out_flow */
#define AXIS2_OP_SET_OUT_FLOW(op, env, list) \
((op)->ops->set_out_flow (op, env, list))
/** Sets in flow.
@sa axis2_op_ops#set_in_flow */
#define AXIS2_OP_SET_IN_FLOW(op, env, list) \
((op)->ops->set_in_flow (op, env, list))
/** Adds given module QName to module qname list.
@sa axis2_op_ops#add_module_qname */
#define AXIS2_OP_ADD_MODULE_QNAME(op, env, module_name) \
((op)->ops->add_module_qname (op, env, module_name))
/** Gets all module descriptions.
@sa axis2_op_ops#get_all_module_qnames */
#define AXIS2_OP_GET_ALL_MODULE_QNAMES(op, env) \
((op)->ops->get_all_module_qnames (op, env))
/** Gets in faults.
@sa axis2_op_ops#get_all_in_faults */
#define AXIS2_OP_GET_ALL_IN_FAULTS(op, env) \
((op)->ops->get_all_in_faults (op, env))
/** Sets in faults.
@sa axis2_op_ops#set_in_faults */
#define AXIS2_OP_SET_IN_FAULTS(op, env) \
((op)->ops->set_in_faults (op, env, in_faults))
/** Gets input message.
@sa axis2_op_ops#get_input_msg */
#define AXIS2_OP_GET_INPUT_MSG(op, env) \
((op)->ops->get_input_msg (op, env))
/** Sets input message.
@sa axis2_op_ops#set_input_msg */
#define AXIS2_OP_SET_INPUT_MSG(op, env) \
((op)->ops->set_input_msg (op, env, input_msg))
/** Gets out faults.
@sa axis2_op_ops#get_all_out_faults */
#define AXIS2_OP_GET_ALL_OUT_FAULTS(op, env) \
((op)->ops->get_all_out_faults (op, env))
/** Sets out faults.
@sa axis2_op_ops#set_out_faults */
#define AXIS2_OP_SET_OUT_FAULTS(op, env) \
((op)->ops->set_out_faults (op, env, out_faults))
/** Gets output message.
@sa axis2_op_ops#get_output_msg */
#define AXIS2_OP_GET_OUTPUT_MSG(op, env) \
((op)->ops->get_output_msg (op, env))
/** Sets output message.
@sa axis2_op_ops#set_output_msg */
#define AXIS2_OP_SET_OUTPUT_MSG(op, env) \
((op)->ops->set_output_msg (op, env, output_msg))
/** Gets target namespace.
@sa axis2_op_ops#get_target_namespace */
#define AXIS2_OP_GET_TARGET_NAMESPACE(op, env) \
((op)->ops->get_target_namespace (op, env))
/** Adds in fault.
@sa axis2_op_ops#add_in_fault */
#define AXIS2_OP_ADD_IN_FAULT(op, env, in_fault) \
((op)->ops->add_in_fault (op, env, in_fault))
/** Adds out fault.
@sa axis2_op_ops#add_out_fault */
#define AXIS2_OP_ADD_OUT_FAULT(op, env, out_fault) \
((op)->ops->add_out_fault (op, env, out_fault))
/** Adds feature.
@sa axis2_op_ops#add_feature */
#define AXIS2_OP_ADD_FEATURE(op, env, feature) \
((op)->ops->add_feature (op, env, feature))
/** Gets all features.
@sa axis2_op_ops#get_all_features */
#define AXIS2_OP_GET_ALL_FEATURES(op, env) \
((op)->ops->get_all_features(op, env))
/** Adds property.
@sa axis2_op_ops#add_property */
#define AXIS2_OP_ADD_PROPERTY(op, env, wsdl_property) \
((op)->ops->add_property (op, env, wsdl_property))
/** Gets all properties.
@sa axis2_op_ops#get_all_properties */
#define AXIS2_OP_GET_ALL_PROPERTIES(op, env) \
((op)->ops->get_all_properties (op, env))
/** Sets wsdl operation.
@sa axis2_op_ops#set_wsdl_op */
#define AXIS2_OP_SET_WSDL_OP(op, env, wsdl_op) \
((op)->ops->set_wsdl_op (op, env, wsdl_op))
/** Finds operation context related to this operation.
@sa axis2_op_ops#find_op_ctx */
#define AXIS2_OP_FIND_OP_CTX(op, env, msg_ctx, svc_ctx) \
((op)->ops->find_op_ctx (op, env, msg_ctx, svc_ctx))
/** Finds existing operation context related to this operation.
@sa axis2_op_ops#find_existing_op_ctx */
#define AXIS2_OP_FIND_FOR_EXISTING_OP_CTX(op, env, wsdl_op) \
((op)->ops->find_existing_op_ctx (op, env, wsdl_op))
/** Registers given operation context against this operation.
@sa axis2_op_ops#_register_op_ctx */
#define AXIS2_OP_REGISTER_OP_CTX(op, env, msg_ctx, wsdl_op) \
((op)->ops->register_op_ctx (op, env, msg_ctx, wsdl_op))
/** Gets message corresponding to given label.
@sa axis2_op_ops#get_msg */
#define AXIS2_OP_GET_MSG(op, env, label) \
((op)->ops->get_msg(op, env, label))
/** Adds message with given label.
@sa axis2_op_ops#add_msg */
#define AXIS2_OP_ADD_MSG(op, env, label, msg) \
((op)->ops->add_msg(op, env, label, msg))
/** Checks is the operation is from a module.
@sa axis2_op_ops#is_from_module */
#define AXIS2_OP_IS_FROM_MODULE(op, env) \
((op)->ops->is_from_module(op, env))
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* AXIS2_OP_H */