blob: 6d69f15f9effe684b5c37b693fae8f5851d0afb7 [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_MSG_CTX_H
#define AXIS2_MSG_CTX_H
/**
* @defgroup axis2_msg_ctx message context
* @ingroup axis2_context
* message context captures all state information related to a message
* invocation. It holds information on the service and operation to be invoked
* as well as context hierarchy information related to the service and operation.
* It also has information on transports, that are to be used in invocation. The
* phase information is kept, along with the phase at which message invocation was
* paused as well as the handler in the phase from which the invocation is to be
* resumed. message context would hold the request SOAP message along the out
* path and would capture response along the in path.
* message context also has information on various engine specific information,
* such as if it should be doing MTOM, REST.
* As message context is inherited form context, it has the capability of
* storing user defined properties.
* @{
*/
/**
* @file axis2_msg_ctx.h
*/
#include <axis2_defines.h>
#include <axis2_env.h>
#include <axis2_ctx.h>
#include <axis2_relates_to.h>
#include <axis2_param.h>
#include <axis2_handler_desc.h>
#include <axis2_qname.h>
#include <axis2_msg_info_headers.h>
#ifdef __cplusplus
extern "C"
{
#endif
/** transport headers */
#define AXIS2_TRANSPORT_HEADERS "AXIS2_TRANSPORT_HEADERS"
/** transport in */
#define AXIS2_TRANSPORT_OUT "AXIS2_TRANSPORT_OUT"
/** transport out */
#define AXIS2_TRANSPORT_IN "AXIS2_TRANSPORT_IN"
/** character set encoding */
#define AXIS2_CHARACTER_SET_ENCODING "AXIS2_CHARACTER_SET_ENCODING"
/** UTF_8; This is the 'utf-8' value for AXIS2_CHARACTER_SET_ENCODING property */
#define AXIS2_UTF_8 "UTF-8"
/** UTF_16; This is the 'utf-16' value for AXIS2_CHARACTER_SET_ENCODING property */
#define AXIS2_UTF_16 "utf-16"
/** default char set encoding; This is the default value for AXIS2_CHARACTER_SET_ENCODING property */
#define AXIS2_DEFAULT_CHAR_SET_ENCODING "UTF-8"
/** transport succeeded */
#define AXIS2_TRANSPORT_SUCCEED "AXIS2_TRANSPORT_SUCCEED"
/** HTTP Client */
#define AXIS2_HTTP_CLIENT "AXIS2_HTTP_CLIENT"
/** Transport URL */
#define AXIS2_TRANSPORT_URL "TransportURL"
/* Message flows */
/** In flow */
/*#define AXIS2_IN_FLOW 1*/
/** In fault flow */
/*#define AXIS2_IN_FAULT_FLOW 2*/
/** Out flow */
/*#define AXIS2_OUT_FLOW 3*/
/** Out fault flow */
/*#define AXIS2_OUT_FAULT_FLOW 4*/
/** Type name for struct axis2_msg_ctx_ops */
typedef struct axis2_msg_ctx_ops axis2_msg_ctx_ops_t;
/** Type name for struct axis2_msg_ctx */
typedef struct axis2_msg_ctx axis2_msg_ctx_t;
struct axis2_svc;
struct axis2_op;
struct axis2_conf_ctx;
struct axis2_svc_grp_ctx;
struct axis2_svc_ctx;
struct axis2_op_ctx;
struct axis2_conf;
struct axiom_soap_envelope;
struct axis2_options;
/**
* message context ops struct.
* Encapsulator struct for ops of axis2_msg_ctx.
*/
struct axis2_msg_ctx_ops
{
/**
* Gets the base, which is of type context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to base context struct
*/
axis2_ctx_t *(AXIS2_CALL *
get_base)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets parent. Parent of a message context is of type operation.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to operation which is the parent
*/
struct axis2_op_ctx *(AXIS2_CALL *
get_parent)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets parent. Parent of a message context is of type operation.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param parent pointer to parent operation
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_parent)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_op_ctx *parent);
/**
* Frees message context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
free)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Initializes the message context. Based on the transport, service and
* operation qnames set on top of message context, correct instances of
* those struct instances would be extracted from configuration and
* set within message context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param conf pointer to configuration
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
init)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_conf *conf);
/**
* Gets WS-Addressing fault to address. Fault to address tells where to
* send the fault in case there is an error.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to endpoint reference struct representing the fault
* to address, returns a reference not a cloned copy
*/
axis2_endpoint_ref_t *(AXIS2_CALL *
get_fault_to)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets WS-Addressing from endpoint. From address tells where the
* request came from.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to endpoint reference struct representing the from
* address, returns a reference not a cloned copy
*/
axis2_endpoint_ref_t *(AXIS2_CALL *
get_from)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Checks if there is a SOAP fault on in flow.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if there is an in flow fault, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_in_fault_flow)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets the SOAP envelope. This SOAP envelope could be either request
* SOAP envelope or the response SOAP envelope, based on the state
* the message context is in.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to SOAP envelope stored within message context
*/
struct axiom_soap_envelope *(AXIS2_CALL *
get_soap_envelope)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets fault SOAP envelope.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to fault SOAP envelope stored within message context
*/
struct axiom_soap_envelope *(AXIS2_CALL *
get_fault_soap_envelope)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets message ID.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return message ID string corresponding to the message the message
* context is related to
*/
const axis2_char_t *(AXIS2_CALL *
get_msg_id)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets process fault status.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if process fault is on, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_process_fault)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets relates to information for the message context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to relates to struct
*/
axis2_relates_to_t *(AXIS2_CALL *
get_relates_to)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets WS-Addressing reply to endpoint. Reply to address tells where
* the the response should be sent to.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to endpoint reference struct representing the reply
* to address, returns a reference not a cloned copy
*/
axis2_endpoint_ref_t *(AXIS2_CALL *
get_reply_to)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Checks the response status, whether it is written or not.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if response is already written, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_response_written)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Checks if it is on the server side that the message is being dealt
* with, or on the client side.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if it is server side, AXIS2_FALSE if it is client
* side
*/
axis2_bool_t (AXIS2_CALL *
get_server_side)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets WS-Addressing to endpoint. To address tells where message should
* be sent to.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to endpoint reference struct representing the
* to address, returns a reference not a cloned copy
*/
axis2_endpoint_ref_t *(AXIS2_CALL *
get_to)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets WS-Addressing fault to endpoint. Fault to address tells where
* the fault message should be sent when there is an error.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param reference pointer to endpoint reference representing fault to
* address. message context assumes the ownership of endpoint struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_fault_to)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
axis2_endpoint_ref_t *reference);
/**
* Sets WS-Addressing from endpoint. From address tells where
* the message came from.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param reference pointer to endpoint reference representing from
* address. message context assumes the ownership of endpoint struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_from)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
axis2_endpoint_ref_t *reference);
/**
* Sets in fault flow status.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param in_fault_flow AXIS2_TRUE if there is a fault on in path,
* else AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_in_fault_flow)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t in_fault_flow);
/**
* Sets SOAP envelope. The fact that if it is the request SOAP envelope
* or that of response depends on the current status represented by
* message context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param soap_envelope pointer to SOAP envelope, message context
* assumes ownership of SOAP envelope
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_soap_envelope)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axiom_soap_envelope *soap_envelope);
/**
* Sets fault SOAP envelope.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param soap_envelope pointer to SOAP envelope, message context
* assumes ownership of SOAP envelope
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_fault_soap_envelope)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axiom_soap_envelope *soap_envelope);
/**
* Sets message ID.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param message_id message ID string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_message_id)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *message_id);
/**
* Sets process fault bool value.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param process_fault AXIS2_TRUE if SOAP faults are to be processed,
* else AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_process_fault)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t process_fault);
/**
* Sets relates to struct.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param reference pointer to relates to struct, message context
* assumes ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_relates_to)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
axis2_relates_to_t *reference);
/**
* Sets WS-Addressing reply to address indicating the location to which
* the reply would be sent.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param reference pointer to endpoint reference representing reply to
* address
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_reply_to)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
axis2_endpoint_ref_t *referance);
/**
* Sets the bool value indicating the status of response.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param response_written AXIS2_TRUE if response is written, else
* AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_response_written)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t response_written);
/**
* Sets the bool value indicating if it is the server side or the
* client side.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param server_side AXIS2_TRUE if it is server side, AXIS2_FALSE if it
* is client side
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_server_side)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t server_side);
/**
* Sets WS-Addressing to address.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param reference pointer to endpoint reference struct representing
* the address where the request should be sent to. message context
* assumes ownership of endpoint struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_to)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
axis2_endpoint_ref_t *referance);
/**
* Gets the bool value indicating if it is required to have a new thread
* for the invocation, or if the same thread of execution could be used.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if new thread is required, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_new_thread_required)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the bool value indicating if it is required to have a new thread
* for the invocation, or if the same thread of execution could be used.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param new_thread_required AXIS2_TRUE if a new thread is required,
* else AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_new_thread_required)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t new_thread_required);
/**
* Sets WS-Addressing action.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param action_uri WSA action URI string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_wsa_action)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *action_uri);
/**
* Gets WS-Addressing action.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to WSA action URI string
*/
const axis2_char_t *(AXIS2_CALL *
get_wsa_action)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets WS-Addressing message ID.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param message_id pointer to message ID string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_wsa_message_id)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *message_id);
/**
* Gets WS-Addressing message ID.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return WSA message ID string
*/
const axis2_char_t *(AXIS2_CALL *
get_wsa_message_id)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets WS-Addressing message information headers.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to message information headers struct with
* WS-Addressing information. Returns a reference, not a cloned copy
*/
axis2_msg_info_headers_t *(AXIS2_CALL *
get_msg_info_headers)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets the bool value indicating the paused status. It is possible
* to pause the engine invocation by any handler. By calling this method
* one can find out if some handler has paused the invocation.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if message context is paused, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_paused)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the bool value indicating the paused status of invocation.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param paused paused
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_paused)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t paused);
/**
* Gets the bool value indicating the keep value status. It is possible
* to keep alive the message context by any handler. By calling this method
* one can see whether it is possible to clean the message context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if message context is keep alive, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
is_keep_alive)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the bool value indicating the keep alive status of invocation.
* By setting this one can indicate the engine not to clean the message
* context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param keep_alive keep alive
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_keep_alive)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t keep_alive);
/**
* Gets transport in description.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to transport in description struct, returns a
* reference not a cloned copy
*/
struct axis2_transport_in_desc *(AXIS2_CALL *
get_transport_in_desc)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets transport out description.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to transport out description struct, returns a
* reference not a cloned copy
*/
struct axis2_transport_out_desc *(AXIS2_CALL *
get_transport_out_desc)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets transport in description.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param transport_in_desc pointer to transport in description struct,
* message context does not assume the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_transport_in_desc)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_transport_in_desc *transport_in_desc);
/**
* Sets transport out description.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param transport_out_desc pointer to transport out description,
* message context does not assume the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_transport_out_desc)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_transport_out_desc *transport_out_desc);
/**
* Gets operation context related to the operation that this message
* context is related to.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to operation context struct
*/
struct axis2_op_ctx *(AXIS2_CALL *
get_op_ctx)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets operation context related to the operation that this message
* context is related to.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param op_ctx pointer to operation context, message context does not
* assume the ownership of operation context
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_op_ctx)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_op_ctx *op_ctx);
/**
* Gets the bool value indicating the output written status.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if output is written, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_output_written)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the bool value indicating the output written status.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param output_written AXIS2_TRUE if output is written, else AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_output_written)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t output_written);
/**
* Gets the ID of service context that relates to the service that is
* related to the message context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return service context ID string
*/
const axis2_char_t *(AXIS2_CALL *
get_svc_ctx_id)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the ID of service context that relates to the service that is
* related to the message context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param svc_ctx_id The service context ID string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_svc_ctx_id)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *svc_ctx_id);
/**
* Gets configuration context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to configuration context
*/
struct axis2_conf_ctx *(AXIS2_CALL *
get_conf_ctx)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets service context that relates to the service that the message
* context is related to.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to message context struct
*/
struct axis2_svc_ctx *(AXIS2_CALL *
get_svc_ctx)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets configuration context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param conf_ctx pointer to configuration context struct, message
* context does not assume the ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_conf_ctx)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_conf_ctx *conf_ctx);
/**
* Sets service context.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param svc_ctx pointer to service context struct, message
* context does not assume the ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_svc_ctx)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_svc_ctx *svc_ctx);
/**
* Sets message information headers.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param msg_info_headers pointer to message information headers,
* message context assumes the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_msg_info_headers)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
axis2_msg_info_headers_t *msg_info_headers);
/**
* Gets configuration descriptor parameter with given key. This method
* recursively search the related description hierarchy for the parameter
* with given key until it is found or the parent of the description
* hierarchy is reached. The order of search is as follows:
* 1. search in operation description, if its there return
* 2. if the parameter is not found in operation or operation is NULL,
* search in service
* 3. if the parameter is not found in service or service is NULL search
* in configuration
* @param msg_ctx message context
* @param env pointer to environment struct
* @param key parameter key
* @return pointer to parameter struct corresponding to the given key
*/
axis2_param_t *(AXIS2_CALL *
get_parameter)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *key);
/**
* Gets parameters related to a named module and a given handler
* description. The order of searching for parameter is as follows:
* 1. search in module configuration stored inside corresponding operation
* description if its there
* 2. search in corresponding operation if its there
* 3. search in module configurations stored inside corresponding
* service description if its there
* 4. search in corresponding service description if its there
* 5. search in module configurations stored inside configuration
* 6. search in configuration for parameters
* 7. get the corresponding module and search for the parameters
* 8. search in handler description for the parameter
* @param msg_ctx pointer to message context
* @param env pointer to environment struct
* @param key parameter key
* @param module_name name of the module
* @param handler_desc pointer to handler description
* @return pointer to parameter
*/
axis2_param_t *(AXIS2_CALL *
get_module_parameter)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *key,
const axis2_char_t *module_name,
axis2_handler_desc_t *handler_desc);
/**
* Gets property corresponding to the given key.
* @param msg_ctx pointer to message context
* @param env pointer to environment struct
* @param key key string with which the property is stored
* @param persistent AXIS2_TRUE if the property is to be retrieved from
* persistent map, AXIS2_FALSE if the property is to be retrieved from
* non-persistent map
* @return pointer to property struct
*/
axis2_property_t *(AXIS2_CALL *
get_property)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *key,
const axis2_bool_t persistent);
/**
* Sets property with given key.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param key key string
* @param value property to be stored
* @param persistent AXIS2_TRUE if the property is to be stored in
* persistent map, AXIS2_FALSE if the property is to be stored in
* non-persistent map
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_property)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *key,
axis2_property_t *value,
const axis2_bool_t persistent);
/**
* Gets the QName of the handler at which invocation was paused.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to QName of the paused handler
*/
const axis2_qname_t *(AXIS2_CALL *
get_paused_handler_name)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets the name of the phase at which the invocation was paused.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return name string of the paused phase.
*/
const axis2_char_t *(AXIS2_CALL *
get_paused_phase_name)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the name of the phase at which the invocation was paused.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param paused_phase_name paused phase name string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_paused_phase_name)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *paused_phase_name);
/**
* Gets SOAP action.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return SOAP action string
*/
const axis2_char_t *(AXIS2_CALL *
get_soap_action)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets SOAP action.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param soap_action SOAP action string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_soap_action)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *soap_action);
/**
* Gets the boolean value indicating if MTOM is enabled or not.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if MTOM is enabled, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_doing_mtom)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the boolean value indicating if MTOM is enabled or not.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param doing_mtom AXIS2_TRUE if MTOM is enabled, else AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_doing_mtom)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t doing_mtom);
/**
* Gets the boolean value indicating if REST is enabled or not.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if REST is enabled, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
get_doing_rest)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the boolean value indicating if REST is enabled or not.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param doing_rest AXIS2_TRUE if REST is enabled, else AXIS2_FALSE
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_doing_rest)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t doing_rest);
/**
* Sets the boolean value indicating if REST should be done through
* HTTP POST or HTTP GET.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param do_rest_through_post AXIS2_TRUE if REST is to be done with
* HTTP POST, else AXIS2_FALSE if REST is to be done with HTTP GET
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_do_rest_through_post)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t do_rest_through_post);
/**
* Sets the boolean value indicating if REST should be done through
* HTTP POST or HTTP GET.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if REST is to be done with HTTP POST, else
* AXIS2_FALSE if REST is to be done with HTTP GET
*/
axis2_bool_t (AXIS2_CALL *
get_do_rest_through_post)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets the bool value indicating the SOAP version being used either
* SOAP 1.1 or SOAP 1.2
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if SOAP 1.1 is being used, else AXIS2_FALSE if
* SOAP 1.2 is being used
*/
axis2_bool_t (AXIS2_CALL *
get_is_soap_11)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the bool value indicating the SOAP version being used either
* SOAP 1.1 or SOAP 1.2
* @param msg_ctx message context
* @param env pointer to environment struct
* @param is_soap11 AXIS2_TRUE if SOAP 1.1 is being used, else
* AXIS2_FALSE if SOAP 1.2 is being used
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_is_soap_11)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_bool_t is_soap11);
/**
* Gets service group context. The returned service group context
* relates to the service group to which the service, related to the
* message context, belongs.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to service group struct
*/
struct axis2_svc_grp_ctx *(AXIS2_CALL *
get_svc_grp_ctx)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets service group context. The returned service group context
* relates to the service group to which the service, related to the
* message context, belongs.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param svc_grp_ctx pointer to service group context
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_svc_grp_ctx)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_svc_grp_ctx *svc_grp_ctx);
/**
* Gets the operation that is to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to operation, returns a reference not a cloned copy
*/
struct axis2_op *(AXIS2_CALL *
get_op)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the operation that is to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param op pointer to operation, message context does not assume the
* ownership of operation
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_op)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_op *op);
/**
* Gets the service to which the operation to be invoked belongs.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to service struct, returns a reference not a cloned copy
*/
struct axis2_svc *(AXIS2_CALL *
get_svc)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the service to which the operation to be invoked belongs.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param svc pointer to service struct, message context does not assume
* the ownership of struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_svc)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_svc *svc);
/**
* Gets the service group to which the service to be invoked belongs.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to service group struct, returns a reference not
* a cloned copy
*/
struct axis2_svc_grp *(AXIS2_CALL *
get_svc_grp)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the service group to which the service to be invoked belongs.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param svc_grp pointer to service group struct, message context does
* not assume the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_svc_grp)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_svc_grp *svc_grp);
/**
* Gets the service group context ID.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return service group context ID string
*/
const axis2_char_t *(AXIS2_CALL *
get_svc_grp_ctx_id)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the service group context ID.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param svc_grp_ctx_id service group context ID string
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_svc_grp_ctx_id)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const axis2_char_t *svc_grp_ctx_id);
/**
* Finds the service to be invoked. This function is used by dispatchers
* to locate the service to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer to service to be invoked
*/
struct axis2_svc *(AXIS2_CALL *
find_svc)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Finds the operation to be invoked in the given service. This function
* is used by dispatchers to locate the operation to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param svc pointer to service to whom the operation belongs
* @return pointer to the operation to be invoked
*/
struct axis2_op *(AXIS2_CALL *
find_op)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_svc *svc);
/**
* Gets the bool value indicating the paused status.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return AXIS2_TRUE if invocation is paused, else AXIS2_FALSE
*/
axis2_bool_t (AXIS2_CALL *
is_paused)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the options to be used in invocation.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param options pointer to options struct , message context does not
* assume the ownership of the struct
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_options )(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
struct axis2_options *options);
/**
* Sets the flow to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param flow int value indicating the flow
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_flow )(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
int flow);
/**
* Gets the flow to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return int value indicating the flow
*/
int (AXIS2_CALL *
get_flow )(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets the execution chain to be invoked. The execution chain is a
* list of phases containing the handlers to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param execution_chain pointer array list containing the list of
* handlers that constitute the execution chain. message context does
* not assume the ownership of the array list
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_execution_chain)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
axis2_array_list_t *execution_chain);
/**
* Gets the execution chain to be invoked. The execution chain is a
* list of phases containing the handlers to be invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return pointer array list containing the list of handlers that
* constitute the execution chain. message context does not assume
* the ownership of the array list
*/
axis2_array_list_t *(AXIS2_CALL *
get_execution_chain)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets current handler index, indicating which handler is currently
* being invoked in the execution chain
* @param msg_ctx message context
* @param env pointer to environment struct
* @param index index of currently executed handler
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_current_handler_index)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const int index);
/**
* Gets current handler index, indicating which handler is currently
* being invoked in the execution chain
* @param msg_ctx message context
* @param env pointer to environment struct
* @return index of currently executed handler
*/
int (AXIS2_CALL *
get_current_handler_index)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets paused handler index, indicating at which handler the execution
* chain was paused.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return index of handler at which invocation was paused
*/
int (AXIS2_CALL *
get_paused_handler_index)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Sets index of the current phase being invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @param index index of current phase
* @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
*/
axis2_status_t (AXIS2_CALL *
set_current_phase_index)(
axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env,
const int index);
/**
* Gets index of the current phase being invoked.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return index of current phase
*/
int (AXIS2_CALL *
get_current_phase_index)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
/**
* Gets the phase at which the invocation was paused.
* @param msg_ctx message context
* @param env pointer to environment struct
* @return index of paused phase
*/
int (AXIS2_CALL *
get_paused_phase_index)(
const axis2_msg_ctx_t *msg_ctx,
const axis2_env_t *env);
};
/**
* message context struct.
*/
struct axis2_msg_ctx
{
/** operations of message context */
axis2_msg_ctx_ops_t *ops;
};
/**
* Creates a message context struct instance.
* @param env pointer to environment struct
* @param conf_ctx pointer to configuration context struct, message context
* does not assume the ownership of the struct
* @param transport_in_desc pointer to transport in description struct,
* message context does not assume the ownership of the struct
* @param transport_out_desc pointer to transport out description struct,
* message context does not assume the ownership of the struct
* @return pointer to newly created message context instance
*/
AXIS2_EXTERN axis2_msg_ctx_t *AXIS2_CALL
axis2_msg_ctx_create (
const axis2_env_t *env,
struct axis2_conf_ctx *conf_ctx,
struct axis2_transport_in_desc *transport_in_desc,
struct axis2_transport_out_desc *transport_out_des);
/** Gets base context struct.
@sa axis2_msg_ctx_ops#get_base */
#define AXIS2_MSG_CTX_GET_BASE(msg_ctx, env) \
((msg_ctx)->ops->get_base(msg_ctx, env))
/** Gets parent operation context.
@sa axis2_msg_ctx_ops#get_parent */
#define AXIS2_MSG_CTX_GET_PARENT(msg_ctx, env) \
((msg_ctx)->ops->get_parent(msg_ctx, env))
/** Sets parent operation context.
@sa axis2_msg_ctx_ops#set_parent */
#define AXIS2_MSG_CTX_SET_PARENT(msg_ctx, env, parent) \
((msg_ctx)->ops->get_parent(msg_ctx, env, parent))
/** Frees message context.
@sa axis2_msg_ctx_ops#free */
#define AXIS2_MSG_CTX_FREE(msg_ctx, env) \
((msg_ctx)->ops->free(msg_ctx, env))
/** Initializes message context.
@sa axis2_msg_ctx_ops#init */
#define AXIS2_MSG_CTX_INIT(msg_ctx, env, conf) \
((msg_ctx)->ops->init(msg_ctx, env, conf))
/** Gets WS-Addressing fault to address.
@sa axis2_msg_ctx_ops#get_fault_to */
#define AXIS2_MSG_CTX_GET_FAULT_TO(msg_ctx, env) \
((msg_ctx)->ops->get_fault_to(msg_ctx, env))
/** Gets WS-Addressing from address.
@sa axis2_msg_ctx_ops#get_from */
#define AXIS2_MSG_CTX_GET_FROM(msg_ctx, env) \
((msg_ctx)->ops->get_from(msg_ctx, env))
/** Gets in fault flow.
@sa axis2_msg_ctx_ops#get_in_fault_flow */
#define AXIS2_MSG_CTX_GET_IN_FAULT_FLOW(msg_ctx, env) \
((msg_ctx)->ops->get_in_fault_flow(msg_ctx, env))
/** Gets SOAP envelope.
@sa axis2_msg_ctx_ops#get_soap_envelope */
#define AXIS2_MSG_CTX_GET_SOAP_ENVELOPE(msg_ctx, env) \
((msg_ctx)->ops->get_soap_envelope(msg_ctx, env))
/** Gets fault SOAP envelope.
@sa axis2_msg_ctx_ops#get_fault_soap_envelope */
#define AXIS2_MSG_CTX_GET_FAULT_SOAP_ENVELOPE(msg_ctx, env) \
((msg_ctx)->ops->get_fault_soap_envelope(msg_ctx, env))
/** Gets message ID.
@sa axis2_msg_ctx_ops#get_msg_id */
#define AXIS2_MSG_CTX_GET_MSG_ID(msg_ctx, env) \
((msg_ctx)->ops->get_msg_id(msg_ctx, env))
/** Gets bool value indicating if to process SOAP fault or not.
@sa axis2_msg_ctx_ops#get_process_fault */
#define AXIS2_MSG_CTX_GET_PROCESS_FAULT(msg_ctx, env) \
((msg_ctx)->ops->get_process_fault(msg_ctx, env))
/** Gets WS-Addressing relates to information.
@sa axis2_msg_ctx_ops#get_relates_to */
#define AXIS2_MSG_CTX_GET_RELATES_TO(msg_ctx, env) \
((msg_ctx)->ops->get_relates_to(msg_ctx, env))
/** Gets WS-Addressing reply to address.
@sa axis2_msg_ctx_ops#get_reply_to */
#define AXIS2_MSG_CTX_GET_REPLY_TO(msg_ctx, env) \
((msg_ctx)->ops->get_reply_to(msg_ctx, env))
/** Gets bool value indicating response written status.
@sa axis2_msg_ctx_ops#get_response_written */
#define AXIS2_MSG_CTX_GET_RESPONSE_WRITTEN(msg_ctx, env) \
((msg_ctx)->ops->get_response_written(msg_ctx, env))
/** Gets bool value indicating whether the invocation is happening on server
side or client side.
@sa axis2_msg_ctx_ops#get_server_side */
#define AXIS2_MSG_CTX_GET_SERVER_SIDE(msg_ctx, env) \
((msg_ctx)->ops->get_server_side(msg_ctx, env))
/** Gets WS-Addressing to address.
@sa axis2_msg_ctx_ops#get_to */
#define AXIS2_MSG_CTX_GET_TO(msg_ctx, env) \
((msg_ctx)->ops->get_to(msg_ctx, env))
/** Sets WS-Addressing fault to address.
@sa axis2_msg_ctx_ops#set_fault_to */
#define AXIS2_MSG_CTX_SET_FAULT_TO(msg_ctx, env, reference) \
((msg_ctx)->ops->set_fault_to(msg_ctx, env, reference))
/** Sets WS-Addressing from address.
@sa axis2_msg_ctx_ops#set_from */
#define AXIS2_MSG_CTX_SET_FROM(msg_ctx, env, reference) \
((msg_ctx)->ops->set_from(msg_ctx, env, reference))
/** Sets in fault flow.
@sa axis2_msg_ctx_ops#set_in_fault_flow */
#define AXIS2_MSG_CTX_SET_IN_FAULT_FLOW(msg_ctx, env, in_fault_flow) \
((msg_ctx)->ops->get_in_fault_flow(msg_ctx, env, in_fault_flow))
/** Sets SOAP envelope.
@sa axis2_msg_ctx_ops#set_soap_envelope */
#define AXIS2_MSG_CTX_SET_SOAP_ENVELOPE(msg_ctx, env, soap_envelope) \
((msg_ctx)->ops->set_soap_envelope(msg_ctx, env, soap_envelope))
/** Sets fault SOAP envelope.
@sa axis2_msg_ctx_ops#set_fault_soap_envelope */
#define AXIS2_MSG_CTX_SET_FAULT_SOAP_ENVELOPE(msg_ctx, env, soap_envelope) \
((msg_ctx)->ops->set_fault_soap_envelope(msg_ctx, env, soap_envelope))
/** Sets the message ID.
@sa axis2_msg_ctx_ops#set_message_id */
#define AXIS2_MSG_CTX_SET_MESSAGE_ID(msg_ctx, env, message_id) \
((msg_ctx)->ops->set_message_id(msg_ctx, env, message_id))
/** Sets bool value indicating whether to process SOAP fault.
@sa axis2_msg_ctx_ops#set_process_fault */
#define AXIS2_MSG_CTX_SET_PROCESS_FAULT(msg_ctx, env, process_fault) \
((msg_ctx)->ops->set_process_fault(msg_ctx, env, process_fault))
/** Sets WS-Addressing relates to information.
@sa axis2_msg_ctx_ops#set_relates_to */
#define AXIS2_MSG_CTX_SET_RELATES_TO(msg_ctx, env, reference) \
((msg_ctx)->ops->set_relates_to(msg_ctx, env, reference))
/** Sets WS-Addressing reply to address.
@sa axis2_msg_ctx_ops#set_reply_to */
#define AXIS2_MSG_CTX_SET_REPLY_TO(msg_ctx, env, reference) \
((msg_ctx)->ops->set_reply_to(msg_ctx, env, reference))
/** Sets bool value indicating response written status.
@sa axis2_msg_ctx_ops#set_response_written */
#define AXIS2_MSG_CTX_SET_RESPONSE_WRITTEN(msg_ctx, env, response_written) \
((msg_ctx)->ops->set_response_written(msg_ctx, env, response_written))
/** Sets bool value indicating whether the invocation is happening on server
side or client side.
@sa axis2_msg_ctx_ops#set_server_side */
#define AXIS2_MSG_CTX_SET_SERVER_SIDE(msg_ctx, env, server_side) \
((msg_ctx)->ops->set_server_side(msg_ctx, env, server_side))
/** Sets WS-Addressing to address.
@sa axis2_msg_ctx_ops#set_to */
#define AXIS2_MSG_CTX_SET_TO(msg_ctx, env, reference) \
((msg_ctx)->ops->set_to(msg_ctx, env, reference))
/** Gets bool value indicating if a new thread required in invocation.
@sa axis2_msg_ctx_ops#get_new_thread_required */
#define AXIS2_MSG_CTX_GET_NEW_THREAD_REQUIRED(msg_ctx, env) \
((msg_ctx)->ops->set_response_written(msg_ctx, env))
/** Sets bool value indicating if a new thread required in invocation.
@sa axis2_msg_ctx_ops#set_new_thread_required */
#define AXIS2_MSG_CTX_SET_NEW_THREAD_REQUIRED(msg_ctx, env, new_thread_required) \
((msg_ctx)->ops->set_response_written(msg_ctx, env, new_thread_required))
/** Sets WS-Addressing action.
@sa axis2_msg_ctx_ops#set_wsa_action */
#define AXIS2_MSG_CTX_SET_WSA_ACTION(msg_ctx, env, action_uri) \
((msg_ctx)->ops->set_wsa_action(msg_ctx, env, action_uri))
/** Gets WS-Addressing action.
@sa axis2_msg_ctx_ops#get_wsa_action */
#define AXIS2_MSG_CTX_GET_WSA_ACTION(msg_ctx, env) \
((msg_ctx)->ops->get_wsa_action(msg_ctx, env))
/** Sets WS-Addressing message ID.
@sa axis2_msg_ctx_ops#set_wsa_message_id */
#define AXIS2_MSG_CTX_SET_WSA_MESSAGE_ID(msg_ctx, env, message_id) \
((msg_ctx)->ops->set_wsa_message_id(msg_ctx, env, message_id))
/** Gets WS-Addressing message ID.
@sa axis2_msg_ctx_ops#get_wsa_message_id */
#define AXIS2_MSG_CTX_GET_WSA_MESSAGE_ID(msg_ctx, env) \
((msg_ctx)->ops->get_wsa_message_id(msg_ctx, env))
/** Gets WS-Addressing message information headers.
@sa axis2_msg_ctx_ops#get_msg_info_headers */
#define AXIS2_MSG_CTX_GET_MSG_INFO_HEADERS(msg_ctx, env) \
((msg_ctx)->ops->get_msg_info_headers(msg_ctx, env))
/** Gets bool value indicating the paused status of invocation.
@sa axis2_msg_ctx_ops#get_paused */
#define AXIS2_MSG_CTX_GET_PAUSED(msg_ctx, env) \
((msg_ctx)->ops->get_paused(msg_ctx, env))
/** Sets bool value indicating the paused status of invocation.
@sa axis2_msg_ctx_ops#set_paused */
#define AXIS2_MSG_CTX_SET_PAUSED(msg_ctx, env, paused) \
((msg_ctx)->ops->set_paused(msg_ctx, env, paused))
/** Gets bool value indicating the keep alive status of invocation.
@sa axis2_msg_ctx_ops#is_keep_alive */
#define AXIS2_MSG_CTX_IS_KEEP_ALIVE(msg_ctx, env) \
((msg_ctx)->ops->is_keep_alive(msg_ctx, env))
/** Sets bool value indicating the keep alive status of invocation.
@sa axis2_msg_ctx_ops#set_keep_alive */
#define AXIS2_MSG_CTX_SET_KEEP_ALIVE(msg_ctx, env, keep_alive) \
((msg_ctx)->ops->set_keep_alive(msg_ctx, env, keep_alive))
/** Gets transport in description.
@sa axis2_msg_ctx_ops#get_transport_in_desc */
#define AXIS2_MSG_CTX_GET_TRANSPORT_IN_DESC(msg_ctx, env) \
((msg_ctx)->ops->get_transport_in_desc(msg_ctx, env))
/** Gets transport out description.
@sa axis2_msg_ctx_ops#get_transport_out_desc */
#define AXIS2_MSG_CTX_GET_TRANSPORT_OUT_DESC(msg_ctx, env) \
((msg_ctx)->ops->get_transport_out_desc(msg_ctx, env))
/** Sets transport in description.
@sa axis2_msg_ctx_ops#set_transport_in_desc */
#define AXIS2_MSG_CTX_SET_TRANSPORT_IN_DESC(msg_ctx, env, transport_in_desc) \
((msg_ctx)->ops->set_transport_in_desc(msg_ctx, env, transport_in_desc))
/** Sets transport out description.
@sa axis2_msg_ctx_ops#set_transport_out_desc */
#define AXIS2_MSG_CTX_SET_TRANSPORT_OUT_DESC(msg_ctx, env, transport_out_desc) \
((msg_ctx)->ops->set_transport_out_desc(msg_ctx, env, transport_out_desc))
/** Gets operation context.
@sa axis2_msg_ctx_ops#get_op_ctx */
#define AXIS2_MSG_CTX_GET_OP_CTX(msg_ctx, env) \
((msg_ctx)->ops->get_op_ctx(msg_ctx, env))
/** Sets operation context.
@sa axis2_msg_ctx_ops#set_op_ctx */
#define AXIS2_MSG_CTX_SET_OP_CTX(msg_ctx, env, op_ctx) \
((msg_ctx)->ops->set_op_ctx(msg_ctx, env, op_ctx))
/** Gets bool value indicating output written status.
@sa axis2_msg_ctx_ops#get_output_written */
#define AXIS2_MSG_CTX_GET_OUTPUT_WRITTEN(msg_ctx, env) \
((msg_ctx)->ops->get_output_written(msg_ctx, env))
/** Sets bool value indicating output written status.
@sa axis2_msg_ctx_ops#set_output_written */
#define AXIS2_MSG_CTX_SET_OUTPUT_WRITTEN(msg_ctx, env, output_written) \
((msg_ctx)->ops->set_output_written(msg_ctx, env, output_written))
/** Gets service context ID.
@sa axis2_msg_ctx_ops#get_svc_ctx_id */
#define AXIS2_MSG_CTX_GET_SVC_CTX_ID(msg_ctx, env) \
((msg_ctx)->ops->get_svc_ctx_id(msg_ctx, env))
/** Sets service context ID.
@sa axis2_msg_ctx_ops#set_svc_ctx_id */
#define AXIS2_MSG_CTX_SET_SVC_CTX_ID(msg_ctx, env, svc_ctx_id) \
((msg_ctx)->ops->set_svc_ctx_id(msg_ctx, env, svc_ctx_id))
/** Gets configuration context.
@sa axis2_msg_ctx_ops#get_conf_ctx */
#define AXIS2_MSG_CTX_GET_CONF_CTX(msg_ctx, env) \
((msg_ctx)->ops->get_conf_ctx(msg_ctx, env))
/** Sets configuration context.
@sa axis2_msg_ctx_ops#set_conf_ctx */
#define AXIS2_MSG_CTX_SET_CONF_CTX(msg_ctx, env, conf_ctx) \
((msg_ctx)->ops->set_conf_ctx(msg_ctx, env, conf_ctx))
/** Gets service context.
@sa axis2_msg_ctx_ops#get_svc_ctx */
#define AXIS2_MSG_CTX_GET_SVC_CTX(msg_ctx, env) \
((msg_ctx)->ops->get_svc_ctx(msg_ctx, env))
/** Sets service context.
@sa axis2_msg_ctx_ops#set_svc_ctx */
#define AXIS2_MSG_CTX_SET_SVC_CTX(msg_ctx, env, svc_ctx) \
((msg_ctx)->ops->set_svc_ctx(msg_ctx, env, svc_ctx))
/** Sets WS-Addressing message information headers.
@sa axis2_msg_ctx_ops#set_msg_info_headers */
#define AXIS2_MSG_CTX_SET_MSG_INFO_HEADERS(msg_ctx, env, msg_info_headers) \
((msg_ctx)->ops->set_msg_info_headers(msg_ctx, env, msg_info_headers))
/** Gets parameter with the given key.
@sa axis2_msg_ctx_ops#get_parameter */
#define AXIS2_MSG_CTX_GET_PARAMETER(msg_ctx, env, key) \
((msg_ctx)->ops->get_parameter(msg_ctx, env, key))
/** Gets module parameter corresponding to given key, module name and handler
description.
@sa axis2_msg_ctx_ops#get_module_parameter */
#define AXIS2_MSG_CTX_GET_MODULE_PARAMETER(msg_ctx, env, key, module_name, handler_desc) \
((msg_ctx)->ops->get_module_parameter(msg_ctx, env, key, module_name, handler_desc))
/** Gets property with given key.
@sa axis2_msg_ctx_ops#get_property */
#define AXIS2_MSG_CTX_GET_PROPERTY(msg_ctx, env, key, persistent) \
((msg_ctx)->ops->get_property(msg_ctx, env, key, persistent))
/** Sets property with given key.
@sa axis2_msg_ctx_ops#set_property */
#define AXIS2_MSG_CTX_SET_PROPERTY(msg_ctx, env, key, value, persistent) \
((msg_ctx)->ops->set_property(msg_ctx, env, key, value, persistent))
/** Gets name of the handler at which invocation was paused.
@sa axis2_msg_ctx_ops#get_paused_handler_name */
#define AXIS2_MSG_CTX_GET_PAUSED_HANDLER_NAME(msg_ctx, env) \
((msg_ctx)->ops->get_paused_handler_name(msg_ctx, env))
/** Gets name of the phase at which invocation was paused.
@sa axis2_msg_ctx_ops#get_paused_phase_name */
#define AXIS2_MSG_CTX_GET_PAUSED_PHASE_NAME(msg_ctx, env) \
((msg_ctx)->ops->get_paused_phase_name(msg_ctx, env))
/** Sets name of the phase at which invocation was paused.
@sa axis2_msg_ctx_ops#set_paused_phase_name */
#define AXIS2_MSG_CTX_SET_PAUSED_PHASE_NAME(msg_ctx, env, paused_phase_name) \
((msg_ctx)->ops->set_paused_phase_name(msg_ctx, env, paused_phase_name))
/** Gets SOAP action.
@sa axis2_msg_ctx_ops#get_soap_action */
#define AXIS2_MSG_CTX_GET_SOAP_ACTION(msg_ctx, env) \
((msg_ctx)->ops->get_soap_action(msg_ctx, env))
/** Sets SOAP action.
@sa axis2_msg_ctx_ops#set_soap_action */
#define AXIS2_MSG_CTX_SET_SOAP_ACTION(msg_ctx, env, soap_action) \
((msg_ctx)->ops->set_soap_action(msg_ctx, env, soap_action))
/** Gets bool value indicating whether MTOM is enabled.
@sa axis2_msg_ctx_ops#get_doing_mtom */
#define AXIS2_MSG_CTX_GET_DOING_MTOM(msg_ctx, env) \
((msg_ctx)->ops->get_doing_mtom(msg_ctx, env))
/** Sets bool value indicating whether MTOM is enabled.
@sa axis2_msg_ctx_ops#set_doing_mtom */
#define AXIS2_MSG_CTX_SET_DOING_MTOM(msg_ctx, env, doing_mtom) \
((msg_ctx)->ops->set_doing_mtom(msg_ctx, env, doing_mtom))
/** Gets bool value indicating whether REST is enabled.
@sa axis2_msg_ctx_ops#get_doing_rest */
#define AXIS2_MSG_CTX_GET_DOING_REST(msg_ctx, env) \
((msg_ctx)->ops->get_doing_rest(msg_ctx, env))
/** Sets bool value indicating whether REST is enabled.
@sa axis2_msg_ctx_ops#set_doing_rest */
#define AXIS2_MSG_CTX_SET_DOING_REST(msg_ctx, env, doing_rest) \
((msg_ctx)->ops->set_doing_rest(msg_ctx, env, doing_rest))
/** Sets bool value indicating whether REST should be done with HTTP POST.
@sa axis2_msg_ctx_ops#set_do_rest_through_post */
#define AXIS2_MSG_CTX_SET_DO_REST_THROUGH_POST(msg_ctx, env, do_rest_through_post) \
((msg_ctx)->ops->set_do_rest_through_post(msg_ctx, env, do_rest_through_post))
/** Gets bool value indicating the SOAP version in use.
@sa axis2_msg_ctx_ops#set_is_soap_11 */
#define AXIS2_MSG_CTX_GET_IS_SOAP_11(msg_ctx, env) \
((msg_ctx)->ops->get_is_soap_11(msg_ctx, env))
/** Sets bool value indicating the SOAP version in use.
@sa axis2_msg_ctx_ops#set_is_soap_11 */
#define AXIS2_MSG_CTX_SET_IS_SOAP_11(msg_ctx, env, is_soap11) \
((msg_ctx)->ops->set_is_soap_11(msg_ctx, env, is_soap11))
/** Gets service group context.
@sa axis2_msg_ctx_ops#get_svc_grp_ctx */
#define AXIS2_MSG_CTX_GET_SVC_GRP_CTX(msg_ctx, env) \
((msg_ctx)->ops->get_svc_grp_ctx(msg_ctx, env))
/** Sets service group context.
@sa axis2_msg_ctx_ops#set_svc_grp_ctx */
#define AXIS2_MSG_CTX_SET_SVC_GRP_CTX(msg_ctx, env, svc_grp_ctx) \
((msg_ctx)->ops->set_svc_grp_ctx(msg_ctx, env, svc_grp_ctx))
/** Gets operation to be invoked.
@sa axis2_msg_ctx_ops#get_op */
#define AXIS2_MSG_CTX_GET_OP(msg_ctx, env) \
((msg_ctx)->ops->get_op(msg_ctx, env))
/** Sets operation to be invoked.
@sa axis2_msg_ctx_ops#set_op */
#define AXIS2_MSG_CTX_SET_OP(msg_ctx, env, op) \
((msg_ctx)->ops->set_op(msg_ctx, env, op))
/** Gets service to be invoked.
@sa axis2_msg_ctx_ops#get_svc */
#define AXIS2_MSG_CTX_GET_SVC(msg_ctx, env) \
((msg_ctx)->ops->get_svc(msg_ctx, env))
/** Sets service to be invoked.
@sa axis2_msg_ctx_ops#set_svc */
#define AXIS2_MSG_CTX_SET_SVC(msg_ctx, env, svc) \
((msg_ctx)->ops->set_svc(msg_ctx, env, svc))
/** Gets service group.
@sa axis2_msg_ctx_ops#get_svc_grp */
#define AXIS2_MSG_CTX_GET_SVC_GRP(msg_ctx, env) \
((msg_ctx)->ops->get_svc_grp(msg_ctx, env))
/** Sets service group.
@sa axis2_msg_ctx_ops#set_svc_grp */
#define AXIS2_MSG_CTX_SET_SVC_GRP(msg_ctx, env, svc_grp) \
((msg_ctx)->ops->set_svc_grp(msg_ctx, env, svc_grp))
/** Gets service group context ID.
@sa axis2_msg_ctx_ops#get_svc_grp_ctx_id */
#define AXIS2_MSG_CTX_GET_SVC_GRP_CTX_ID(msg_ctx, env) \
((msg_ctx)->ops->get_svc_grp_ctx_id(msg_ctx, env))
/** Sets the service group context ID.
@sa axis2_msg_ctx_ops#set_svc_grp_ctx_id */
#define AXIS2_MSG_CTX_SET_SVC_GRP_CTX_ID(msg_ctx, env, svc_grp_ctx_id) \
((msg_ctx)->ops->set_svc_grp_ctx_id(msg_ctx, env, svc_grp_ctx_id))
/** Gets bool value indicating whether invocation is paused.
@sa axis2_msg_ctx_ops#is_paused */
#define AXIS2_MSG_CTX_IS_PAUSED(msg_ctx, env) \
((msg_ctx)->ops->is_paused(msg_ctx, env))
/** Finds service.
@sa axis2_msg_ctx_ops#find_svc */
#define AXIS2_MSG_CTX_FIND_SVC(msg_ctx, env) \
((msg_ctx)->ops->find_svc(msg_ctx, env))
/** Finds operation.
@sa axis2_msg_ctx_ops#find_op */
#define AXIS2_MSG_CTX_FIND_OP(msg_ctx, env, svc) \
((msg_ctx)->ops->find_op(msg_ctx, env, svc))
/** Sets options.
@sa axis2_msg_ctx_ops#set_options */
#define AXIS2_MSG_CTX_SET_OPTIONS(msg_ctx, env, options) \
((msg_ctx)->ops->set_options(msg_ctx, env, options))
/** Sets flow.
@sa axis2_msg_ctx_ops#set_flow */
#define AXIS2_MSG_CTX_SET_FLOW(msg_ctx, env, flow) \
((msg_ctx)->ops->set_flow(msg_ctx, env, flow))
/** Gets flow.
@sa axis2_msg_ctx_ops#get_flow */
#define AXIS2_MSG_CTX_GET_FLOW(msg_ctx, env) \
((msg_ctx)->ops->get_flow(msg_ctx, env))
/** Sets execution chain.
@sa axis2_msg_ctx_ops#set_execution_chain */
#define AXIS2_MSG_CTX_SET_EXECUTION_CHAIN(msg_ctx, env, chain) \
((msg_ctx)->ops->set_execution_chain(msg_ctx, env, chain))
/** Gets execution chain.
@sa axis2_msg_ctx_ops#get_execution_chain */
#define AXIS2_MSG_CTX_GET_EXECUTION_CHAIN(msg_ctx, env) \
((msg_ctx)->ops->get_execution_chain(msg_ctx, env))
/** Sets current handler index.
@sa axis2_msg_ctx_ops#set_current_handler_index */
#define AXIS2_MSG_CTX_SET_CURRENT_HANDLER_INDEX(msg_ctx, env, index) \
((msg_ctx)->ops->set_current_handler_index(msg_ctx, env, index))
/** Gets current handler index.
@sa axis2_msg_ctx_ops#get_current_handler_index */
#define AXIS2_MSG_CTX_GET_CURRENT_HANDLER_INDEX(msg_ctx, env) \
((msg_ctx)->ops->get_current_handler_index(msg_ctx, env))
/** Gets paused handler index.
@sa axis2_msg_ctx_ops#get_paused_handler_index */
#define AXIS2_MSG_CTX_GET_PAUSED_HANDLER_INDEX(msg_ctx, env) \
((msg_ctx)->ops->get_paused_handler_index(msg_ctx, env))
/** Sets current phase index.
@sa axis2_msg_ctx_ops#set_current_phase_index */
#define AXIS2_MSG_CTX_SET_CURRENT_PHASE_INDEX(msg_ctx, env, index) \
((msg_ctx)->ops->set_current_phase_index(msg_ctx, env, index))
/** Gets current phase index.
@sa axis2_msg_ctx_ops#get_current_phase_index */
#define AXIS2_MSG_CTX_GET_CURRENT_PHASE_INDEX(msg_ctx, env) \
((msg_ctx)->ops->get_current_phase_index(msg_ctx, env))
/** Gets paused phase index.
@sa axis2_msg_ctx_ops#get_paused_phase_index */
#define AXIS2_MSG_CTX_GET_PAUSED_PHASE_INDEX(msg_ctx, env) \
((msg_ctx)->ops->get_paused_phase_index(msg_ctx, env))
/** @} */
#ifdef __cplusplus
}
#endif
#endif /* AXIS2_MSG_CTX_H */