engine


Files

file  axis2_engine.h

Modules

 configuration
 dispatcher
 phases
 phase meta data

Typedefs

typedef struct
axis2_engine 
axis2_engine_t

Functions

AXIS2_EXTERN
axis2_status_t 
axis2_engine_send (axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN
axis2_status_t 
axis2_engine_receive (axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN
axis2_status_t 
axis2_engine_send_fault (axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN
axis2_status_t 
axis2_engine_receive_fault (axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN
axis2_msg_ctx_t
axis2_engine_create_fault_msg_ctx (axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *processing_context, const axis2_char_t *code_value, const axis2_char_t *reason_text)
AXIS2_EXTERN
axis2_status_t 
axis2_engine_invoke_phases (axis2_engine_t *engine, const axutil_env_t *env, axutil_array_list_t *phases, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN
axis2_status_t 
axis2_engine_resume_invocation_phases (axis2_engine_t *engine, const axutil_env_t *env, axutil_array_list_t *phases, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN const
axis2_char_t * 
axis2_engine_get_sender_fault_code (const axis2_engine_t *engine, const axutil_env_t *env, const axis2_char_t *soap_namespace)
AXIS2_EXTERN const
axis2_char_t * 
axis2_engine_get_receiver_fault_code (const axis2_engine_t *engine, const axutil_env_t *env, const axis2_char_t *soap_namespace)
AXIS2_EXTERN void axis2_engine_free (axis2_engine_t *engine, const axutil_env_t *env)
AXIS2_EXTERN
axis2_status_t 
axis2_engine_resume_receive (axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN
axis2_status_t 
axis2_engine_resume_send (axis2_engine_t *engine, const axutil_env_t *env, axis2_msg_ctx_t *msg_ctx)
AXIS2_EXTERN
axis2_engine_t
axis2_engine_create (const axutil_env_t *env, axis2_conf_ctx_t *conf_ctx)

Detailed Description

engine has the send and receive functions that is the heart when providing and consuming services. In Axis2 SOAP engine architecture, all the others parts are build around the concept of the engine. There is only one engine for both the server side and the client side, and the engine is not aware of if it is invoked as an client or a service. engine supports both synchronous and asynchronous messaging modes based on send and receive functions.

Typedef Documentation

typedef struct axis2_engine axis2_engine_t

Type name for struct axis2_engine


Function Documentation

AXIS2_EXTERN axis2_engine_t* axis2_engine_create ( const axutil_env_t env,
axis2_conf_ctx_t conf_ctx 
)

Creates en engine struct instance.

Parameters:
env pointer to environment struct
conf_ctx pointer to configuration context struct
Returns:
pointer to newly created engine struct

AXIS2_EXTERN axis2_msg_ctx_t* axis2_engine_create_fault_msg_ctx ( axis2_engine_t engine,
const axutil_env_t env,
axis2_msg_ctx_t processing_context,
const axis2_char_t *  code_value,
const axis2_char_t *  reason_text 
)

Creates a message context that represents the fault state based on current processing state.

Parameters:
engine pointer to engine
env pointer to environment struct
processing_context pointer to message context representing current processing context
code_value pointer to a string containing fault code
reason_text pointer to a string containing reason of the fault
Returns:
pointer to message context representing the fault state

AXIS2_EXTERN void axis2_engine_free ( axis2_engine_t engine,
const axutil_env_t env 
)

Frees engine struct.

Parameters:
engine pointer to engine
env pointer to environment struct
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN const axis2_char_t* axis2_engine_get_receiver_fault_code ( const axis2_engine_t engine,
const axutil_env_t env,
const axis2_char_t *  soap_namespace 
)

Gets receiver's SOAP fault code.

Parameters:
engine pointer to engine
env pointer to environment struct
soap_namespace pointer to soap namespace

AXIS2_EXTERN const axis2_char_t* axis2_engine_get_sender_fault_code ( const axis2_engine_t engine,
const axutil_env_t env,
const axis2_char_t *  soap_namespace 
)

Gets sender's SOAP fault code.

Parameters:
engine pointer to engine
env pointer to environment struct
soap_namespace pointer to SOAP namespace
Returns:
pointer to SOAP fault code string

AXIS2_EXTERN axis2_status_t axis2_engine_invoke_phases ( axis2_engine_t engine,
const axutil_env_t env,
axutil_array_list_t phases,
axis2_msg_ctx_t msg_ctx 
)

Invokes the phases in the given array list of phases. The list of phases could be representing one of the flows. The two possible flows are in flow and out flow. Both of those flows can also have fault related representations, in fault flow and out fault flow. Invoking a phase triggers the invocation of handlers the phase contain.

Parameters:
engine pointer to engine
env pointer to environment struct
phases pointer to phases
msg_ctx pointer to message context containing current state
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_engine_receive ( axis2_engine_t engine,
const axutil_env_t env,
axis2_msg_ctx_t msg_ctx 
)

This methods represents the in flow of the Axis engine, both at the server side as well as the client side. In this function, the execution chain is created using the phases of the in flow. All handlers at each in flow phase, which are ordered in the deployment time are invoked in sequence here.

Parameters:
engine pointer to engine
env pointer to environment struct
msg_ctx pointer to message context representing current state that is used in receiving message
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_engine_receive_fault ( axis2_engine_t engine,
const axutil_env_t env,
axis2_msg_ctx_t msg_ctx 
)

This is invoked when a SOAP fault is received.

Parameters:
engine pointer to engine
env pointer to environment struct
msg_ctx pointer to message context representing that contains the details of receive state
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_engine_resume_invocation_phases ( axis2_engine_t engine,
const axutil_env_t env,
axutil_array_list_t phases,
axis2_msg_ctx_t msg_ctx 
)

Resumes phase invocation. While invoking the phases, one of the handlers in any phase could determine to pause the invocation. Often pausing happens to wait till some state is reached or some task is complete. Once paused, the invocation has to be resumed using this function, which will resume the invocation from the paused handler in the paused phase and will continue till it is paused again or it completes invoking all the remaining handlers in the remaining phases.

Parameters:
engine pointer to engine
env pointer to environment struct
phases pointer to phases
msg_ctx pointer to message context containing current paused state
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_engine_resume_receive ( axis2_engine_t engine,
const axutil_env_t env,
axis2_msg_ctx_t msg_ctx 
)

Resumes receive operation. It could be the case that receive was paused by one of the in flow handlers. In such a situation, this method could be used to resume the receive operation.

Parameters:
engine pointer to engine
env pointer to environment struct
msg_ctx pointer to message context
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_engine_resume_send ( axis2_engine_t engine,
const axutil_env_t env,
axis2_msg_ctx_t msg_ctx 
)

Resumes send operation. It could be the case that send was paused by one of the out flow handlers. In such a situation, this method could be used to resume the send operation.

Parameters:
engine pointer to engine
env pointer to environment struct
msg_ctx pointer to message context
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_engine_send ( axis2_engine_t engine,
const axutil_env_t env,
axis2_msg_ctx_t msg_ctx 
)

This methods represents the out flow of the Axis engine both at the server side as well as the client side. In this function, the execution chain is created using the phases of the out flow. All handlers at each out flow phase, which are ordered in the deployment time are invoked in sequence here.

Parameters:
engine pointer to engine
env pointer to environment struct
msg_ctx pointer to message context representing current state that is used when sending message
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE

AXIS2_EXTERN axis2_status_t axis2_engine_send_fault ( axis2_engine_t engine,
const axutil_env_t env,
axis2_msg_ctx_t msg_ctx 
)

Sends a SOAP fault.

Parameters:
engine pointer to engine
env pointer to environment struct
msg_ctx pointer to message context that contains details of fault state
Returns:
AXIS2_SUCCESS on success, else AXIS2_FAILURE


Generated on Fri Apr 17 11:49:44 2009 for Axis2/C by  doxygen 1.5.3