You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/01/30 11:10:26 UTC
svn commit: r373486 - in /webservices/axis2/trunk/c: include/
modules/core/clientapi/ modules/core/context/ modules/core/deployment/
modules/core/phaseresolver/ modules/util/
Author: damitha
Date: Mon Jan 30 02:10:05 2006
New Revision: 373486
URL: http://svn.apache.org/viewcvs?rev=373486&view=rev
Log:
Wrote stub.*
Modified:
webservices/axis2/trunk/c/include/axis2_call.h
webservices/axis2/trunk/c/include/axis2_error.h
webservices/axis2/trunk/c/include/axis2_om_element.h
webservices/axis2/trunk/c/include/axis2_stub.h
webservices/axis2/trunk/c/include/axis2_transport_out_desc.h
webservices/axis2/trunk/c/modules/core/clientapi/call.c
webservices/axis2/trunk/c/modules/core/clientapi/stub.c
webservices/axis2/trunk/c/modules/core/context/conf_ctx.c
webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c
webservices/axis2/trunk/c/modules/util/error.c
Modified: webservices/axis2/trunk/c/include/axis2_call.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_call.h?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_call.h (original)
+++ webservices/axis2/trunk/c/include/axis2_call.h Mon Jan 30 02:10:05 2006
@@ -73,31 +73,6 @@
*/
/**
- * This invocation done via this method blocks till the result arrives,
- * using this method does not indicate
- * anyhting about the transport used or the nature of the transport.
- * e.g. invocation done with this method might
- * <ol>
- * <li>send request via http and recevie the response via the return path of the same http connection</li>
- * <li>send request via http and recevie the response different http connection</li>
- * <li>send request via an email smtp and recevie the response via an email</li>
- * </ol>
- */
-
- axis2_msg_ctx_t* (AXIS2_CALL *invoke_blocking)(struct axis2_call *call,
- axis2_env_t **env,
- axis2_op_t *op,
- axis2_msg_ctx_t *msg_ctx);
- /**
- * This invocation done via this method blocks till the result arrives, using this method does not indicate
- * anyhting about the transport used or the nature of the transport.
- */
- axis2_status_t (AXIS2_CALL *invoke_non_blocking)(struct axis2_call *call,
- axis2_env_t **env,
- axis2_op_t *op,
- axis2_msg_ctx_t *msg_ctx,
- axis2_callback_t *callback);
- /**
* @param to
*/
axis2_status_t (AXIS2_CALL *set_to)(struct axis2_call *call,
@@ -211,6 +186,17 @@
*/
axis2_msg_ctx_t* (AXIS2_CALL *get_last_res_msg_ctx)(struct axis2_call *call,
axis2_env_t **env);
+
+ /**
+ * @param key
+ * @param value
+ */
+ axis2_status_t (AXIS2_CALL *
+ set)(axis2_call_t *call,
+ axis2_env_t **env,
+ axis2_char_t *key,
+ void *value);
+
axis2_status_t (AXIS2_CALL *free)(struct axis2_call *call,
axis2_env_t **env);
};
@@ -229,19 +215,19 @@
/************************** Start of function macros **************************/
-#define AXIS2_CALL_INVOKE_BLOCKING(call, env, op, msg_ctx) ((call)->ops->invoke_blocking(call, env, op, msg_ctx))
-#define AXIS2_CALL_INVOKE_NON_BLOCKING(call, env, op, msg_ctx, callback) ((call)->ops->invoke_non_blocking(call, env, op, msg_ctx, callback))
#define AXIS2_CALL_SET_TO(call, env, to) ((call)->ops->set_to(call, env, to))
#define AXIS2_CALL_SET_TRANSPORT_INFO(call, env, sender_transport, listener_transport, use_separate_listener) ((call)->ops->set_transport_info(call, env, sender_transport, listener_transport, use_separate_listener))
#define AXIS2_CALL_CHECK_TRANSPORT(call, env, msg_ctx) ((call)->ops->check_transport(call, env, msg_ctx))
#define AXIS2_CALL_CLOSE(call, env) ((call)->ops->close(call, env))
#define AXIS2_CALL_SET_TIME(call, env, time_out_ms) ((call)->ops->set_time(call, env, time_out_ms))
-#define AXIS2_CALL_INVOKE_BLOCKING_WITH_OM ((call)->ops->invoke_blocking_with_om(call, env, op_name, om_node_to_send))
+#define AXIS2_CALL_INVOKE_BLOCKING_WITH_OM(call, env, op_name, om_node_to_send) ((call)->ops->invoke_blocking_with_om(call, env, op_name, om_node_to_send))
#define AXIS2_CALL_INVOKE_BLOCKING_WITH_SOAP(call, env, op_name, envelope) ((call)->ops->invoke_blocking_with_soap(call, env, op_name, envelope))
#define AXIS2_CALL_INVOKE_NON_BLOCKING_WITH_OM(call, env, op_name, om_node_to_send, callback) ((call)->ops->invoke_non_blocking_with_om(call, env, op_name, om_node_to_send, callback))
#define AXIS2_CALL_INVOKE_NON_BLOCKING_WITH_SOAP(call, env, op_name, envelope, callback) ((call)->ops->invoke_non_blocking_with_soap(call, env, op_name, envelope, callback))
#define AXIS2_CALL_CREATE_OP_FILL_FLOW(call, env, op_name) ((call)->ops->create_op_fill_flow(call, env, op_name))
#define AXIS2_CALL_GET_LAST_RES_MSG_CTX(call, env) ((call)->ops->get_last_res_msg_ctx(call, env))
+#define AXIS2_CALL_SET(call, env, key, value) \
+ ((call)->ops->set(call, env, key, value))
#define AXIS2_CALL_FREE(call, env) ((call)->ops->free(call, env))
/************************** End of function macros ****************************/
Modified: webservices/axis2/trunk/c/include/axis2_error.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_error.h?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_error.h (original)
+++ webservices/axis2/trunk/c/include/axis2_error.h Mon Jan 30 02:10:05 2006
@@ -455,6 +455,7 @@
AXIS2_ERROR_FILE_NAME_NOT_SET,
AXIS2_ERROR_REPOS_LISTENER_INIT_FAILED,
AXIS2_ERROR_INVALID_STATE_DLL_DESC,
+ AXIS2_ERROR_UNSUPPORTED_TYPE,
/* Null soap envelope in msg_ctx */
AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX,
/* Generation of platform dependent uuid failed */
Modified: webservices/axis2/trunk/c/include/axis2_om_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_om_element.h?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_om_element.h (original)
+++ webservices/axis2/trunk/c/include/axis2_om_element.h Mon Jan 30 02:10:05 2006
@@ -297,7 +297,8 @@
* @return the contanated text of all text childrens text values
* return null if no text children is avilable or on error
*/
- axis2_char_t* (AXIS2_CALL *get_text)(axis2_om_element_t *om_element,
+ axis2_char_t* (AXIS2_CALL *
+ get_text)(axis2_om_element_t *om_element,
axis2_env_t **env,
axis2_om_node_t *element_node);
@@ -306,19 +307,20 @@
* @param element_node the container node of this om_element
* @return om_element if one is availble otherwise return NULL
*/
- axis2_om_element_t* (AXIS2_CALL *get_first_element)
- (axis2_om_element_t *om_element,
- axis2_env_t **env,
- axis2_om_node_t *element_node,
- axis2_om_node_t **first_element_node);
+ axis2_om_element_t* (AXIS2_CALL *
+ get_first_element)(axis2_om_element_t *om_element,
+ axis2_env_t **env,
+ axis2_om_node_t *element_node,
+ axis2_om_node_t **first_element_node);
/**
* returns the serilized text of this element and its children
* @param element_node the container node this on element is contained
* @return a char array of xml , returns NULL on error
*/
- axis2_char_t* (AXIS2_CALL *to_string)(axis2_om_element_t *om_element,
- axis2_env_t **env,
- axis2_om_node_t *element_node);
+ axis2_char_t* (AXIS2_CALL *
+ to_string)(axis2_om_element_t *om_element,
+ axis2_env_t **env,
+ axis2_om_node_t *element_node);
/**
* returns an iterator with child elements of type AXIS2_OM_ELEMENT
* iterator must be freed by user
@@ -327,7 +329,8 @@
* @param env enviroment must not be null
* @returns axis2_om_child_element_iterator_t , NULL on error
*/
- axis2_om_child_element_iterator_t* (AXIS2_CALL *get_child_elements)
+ axis2_om_child_element_iterator_t* (AXIS2_CALL *
+ get_child_elements)
(axis2_om_element_t *om_element,
axis2_env_t **env,
axis2_om_node_t *element_node);
Modified: webservices/axis2/trunk/c/include/axis2_stub.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_stub.h?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_stub.h (original)
+++ webservices/axis2/trunk/c/include/axis2_stub.h Mon Jan 30 02:10:05 2006
@@ -19,6 +19,8 @@
#include <axis2_endpoint_ref.h>
#include <axis2_call.h>
+#include <axis2_xml_reader.h>
+
#ifdef __cplusplus
extern "C"
@@ -38,7 +40,10 @@
typedef struct axis2_stub_ops axis2_stub_ops_t;
typedef struct axis2_stub axis2_stub_t;
-
+
+#define AXIS2_SOAP_11 0
+#define AXIS2_SOAP_12 1
+
AXIS2_DECLARE_DATA struct axis2_stub_ops
{
axis2_status_t (AXIS2_CALL *
@@ -55,79 +60,103 @@
axis2_env_t **env,
axis2_char_t *endpoint_uri);
- axis2_status_t (AXIS2_CALL *
- invoke_blocking) (axis2_stub_t *stub,
- axis2_env_t **env,
- axis2_msg_ctx_t *msg_ctx);
+ /**
+ *
+ * @param sender_transport
+ * @param listener_transport
+ * @param use_separate_transport
+ */
axis2_status_t (AXIS2_CALL *
- invoke_non_blocking) (axis2_stub_t *stub,
+ set_transport_info)(axis2_stub_t *stub,
axis2_env_t **env,
- axis2_msg_ctx_t *msg_ctx,
- axis2_callback_t *callback);
-
+ axis2_char_t *sender_transport,
+ axis2_char_t *listener_transport,
+ axis2_bool_t use_separate_listener);
+
/**
- * Invoke the blocking/Synchronous call
*
- * @param op - this will be used to identify the operation in the client
- * side, without dispatching
- * @param toSend - This should be OM Element (payload)
- * @return
+ * @param key
+ * @param value
*/
- axis2_om_node_t* (AXIS2_CALL *
- invoke_blocking_with_om)(struct axis2_stub *stub,
- axis2_env_t **env,
- axis2_char_t *op_name,
- axis2_om_node_t *om_node_to_send);
+ axis2_status_t (AXIS2_CALL *
+ put)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *key,
+ void *value);
+
/**
- * Invoke the blocking/Synchronous call
*
- * @param op_name - this will be used to identify the operation in the client
- * side, without dispatching
- * @param envelope - This should be SOAPEnvelope
- * @return
+ * @param key
+ * @return the object
*/
- axis2_soap_envelope_t* (AXIS2_CALL *
- invoke_blocking_with_soap)(struct axis2_stub *stub,
- axis2_env_t **env,
- axis2_char_t *op_name,
- axis2_soap_envelope_t *envelope);
+ void *(AXIS2_CALL *
+ get)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *key);
+
+ axis2_status_t (AXIS2_CALL *
+ engage_module)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *module_name);
/**
- * Invoke the nonblocking/Asynchronous call
- *
- * @param op_name
- * @param om_node_to_send - This should be OM Element (payload)
- * invocation behaves accordingly
- * @param callback
+ * Set the soap version
+ * @param soap_version
*/
axis2_status_t (AXIS2_CALL *
- invoke_non_blocking_with_om)(struct axis2_stub *stub,
- axis2_env_t **env,
- axis2_char_t *op_name,
- axis2_om_node_t *om_node_to_send,
- axis2_callback_t *callback);
+ set_soap_version)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ int soap_version);
+
+ axis2_char_t *(AXIS2_CALL *
+ get_svc_ctx_id)(axis2_stub_t *stub,
+ axis2_env_t **env);
+
+
+ axis2_om_node_t *(AXIS2_CALL *
+ get_element_from_reader)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_xml_reader_t *reader);
+
+
+ axis2_status_t (AXIS2_CALL *
+ set_value_doc)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_soap_envelope_t *envelope,
+ axis2_om_node_t *value,
+ axis2_bool_t is_header);
+
/**
- * Invoke the nonblocking/Asynchronous call
- *
- * @param op_name
- * @param envelope - This should be a SOAP Envelope
- * invocation behaves accordingly
- * @param callback
+ * Extract the correct element - A util method
+ * @param env
+ * @param type
+ * @return the relevant element to be databound
*/
+ axis2_om_node_t *(AXIS2_CALL *
+ get_element)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_soap_envelope_t *envelope,
+ axis2_char_t *type);
axis2_status_t (AXIS2_CALL *
- invoke_non_blocking_with_soap)(struct axis2_stub *call,
- axis2_env_t **env,
- axis2_char_t *op_name,
- axis2_soap_envelope_t *envelope,
- axis2_callback_t * callback);
+ populate_properties)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_call_t *call);
+
+ axis2_status_t (AXIS2_CALL *
+ populate_modules)(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_call_t *call);
+
+ axis2_call_t *(AXIS2_CALL *
+ get_call_obj)(axis2_stub_t *stub,
+ axis2_env_t **env);
} ;
AXIS2_DECLARE_DATA struct axis2_stub
{
- axis2_stub_ops_t *ops;
- axis2_array_list_t *func_array;
+ axis2_stub_ops_t *ops;
};
/**
@@ -159,23 +188,44 @@
#define AXIS2_STUB_SET_ENDPOINT_URI(stub, env, endpoint_uri) \
((stub)->ops->set_endpoint_uri (stub, env, endpoint_uri))
-#define AXIS2_STUB_INVOKE_BLOCKING(stub, env, msg_ctx) \
- ((stub)->ops->invoke_blocking (stub, env, msg_ctx))
+#define AXIS2_STUB_SET_TRANSPORT_INFO(stub, env, sender_transport, listener_transport, \
+ use_separate_listener) \
+ ((stub)->ops->set_transport_info (stub, env, sender_transport, \
+ listener_transport, use_separate_listener))
-#define AXIS2_STUB_INVOKE_NON_BLOCKING(stub, env, msg_ctx, callback) \
- ((stub)->ops->invoke_non_blocking (stub, env, msg_ctx, callback))
+#define AXIS2_STUB_PUT(stub, env, key, value) \
+ ((stub)->ops->put (stub, env, key, value))
+
+#define AXIS2_STUB_GET(stub, env, key) \
+ ((stub)->ops->get (stub, env, key))
-#define AXIS2_STUB_INVOKE_BLOCKING_WITH_OM(stub, env, op_name, om_node_to_send) \
- ((stub)->ops->invoke_blocking_with_om (stub, env, op_name, om_node_to_send))
+#define AXIS2_STUB_ENGAGE_MODULE(stub, env, module_name) \
+ ((stub)->ops->engage_module (stub, env, module_name))
+
+#define AXIS2_STUB_SET_SOAP_VERSION(stub, env, soap_version) \
+ ((stub)->ops->set_soap_version (stub, env, soap_version))
-#define AXIS2_STUB_INVOKE_NON_BLOCKING_WITH_OM(stub, env, op_name, om_node_to_send, callback) \
- ((stub)->ops->invoke_non_blocking_with_om (stub, env, op_name, om_node_to_send, callback))
+#define AXIS2_STUB_GET_SVC_CTX_ID(stub, env) \
+ ((stub)->ops->get_svc_ctx_id (stub, env))
-#define AXIS2_STUB_INVOKE_BLOCKING_WITH_SOAP(stub, env, op_name, envelope) \
- ((stub)->ops->invoke_blocking_with_soap (stub, env, op_name, envelope))
+#define AXIS2_STUB_GET_ELEMENT_FROM_READER(stub, env, reader) \
+ ((stub)->ops->get_element_from_reader (stub, env, reader))
-#define AXIS2_STUB_INVOKE_NON_BLOCKING_WITH_SOAP(stub, env, op_name, envelope, callback) \
- ((stub)->ops->invoke_non_blocking_with_soap (stub, env, op_name, envelope, callback))
+#define AXIS2_STUB_SET_VALUE_DOC(stub, env, envelope, value, is_header) \
+ ((stub)->ops->set_value_doc (stub, env, envelope, value, is_header))
+
+#define AXIS2_STUB_GET_ELEMENT(stub, env, envelope, type) \
+ ((stub)->ops->get_element (stub, env, envelope, type))
+
+#define AXIS2_STUB_POPULATE_PROPERTIES(stub, env, call) \
+ ((stub)->ops->populate_properties (stub, env, call))
+
+#define AXIS2_STUB_POPULATE_MODULES(stub, env, call) \
+ ((stub)->ops->populate_modules (stub, env, call))
+
+#define AXIS2_STUB_GET_CALL_OBJ(stub, env) \
+ ((stub)->ops->get_call_obj (stub, env))
+
/** @} */
Modified: webservices/axis2/trunk/c/include/axis2_transport_out_desc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_transport_out_desc.h?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_transport_out_desc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_transport_out_desc.h Mon Jan 30 02:10:05 2006
@@ -68,66 +68,66 @@
*/
axis2_qname_t *(AXIS2_CALL *
get_qname) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env);
+ axis2_env_t **env);
/**
* @param name
*/
axis2_status_t (AXIS2_CALL *
set_qname) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env,
- axis2_qname_t *qname);
+ axis2_env_t **env,
+ axis2_qname_t *qname);
struct axis2_flow *(AXIS2_CALL *
get_outflow) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
set_outflow) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env,
- struct axis2_flow *outflow);
+ axis2_env_t **env,
+ struct axis2_flow *outflow);
struct axis2_flow *(AXIS2_CALL *
get_faultflow) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
set_faultflow) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env,
- struct axis2_flow *faultflow);
+ axis2_env_t **env,
+ struct axis2_flow *faultflow);
/**
* @return
*/
struct axis2_transport_sender * (AXIS2_CALL *
get_sender) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env);
+ axis2_env_t **env);
/**
* @param receiver
*/
axis2_status_t (AXIS2_CALL *
set_sender) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env,
- struct axis2_transport_sender *sender);
+ axis2_env_t **env,
+ struct axis2_transport_sender *sender);
struct axis2_phase * (AXIS2_CALL *
get_out_phase) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
set_out_phase) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env,
- struct axis2_phase *out_phase);
+ axis2_env_t **env,
+ struct axis2_phase *out_phase);
struct axis2_phase *(AXIS2_CALL *
get_faultphase) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env);
+ axis2_env_t **env);
axis2_status_t (AXIS2_CALL *
set_faultphase) (struct axis2_transport_out_desc *transport_out,
- axis2_env_t **env,
- struct axis2_phase *faultphase);
+ axis2_env_t **env,
+ struct axis2_phase *faultphase);
};
Modified: webservices/axis2/trunk/c/modules/core/clientapi/call.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/call.c?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/call.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/call.c Mon Jan 30 02:10:05 2006
@@ -64,52 +64,86 @@
/** Interface to implementation conversion macro */
#define AXIS2_INTF_TO_IMPL(call) ((axis2_call_impl_t *)call)
-axis2_msg_ctx_t* AXIS2_CALL axis2_call_invoke_blocking(struct axis2_call *call,
+axis2_msg_ctx_t* AXIS2_CALL
+axis2_call_invoke_blocking(struct axis2_call *call,
axis2_env_t **env,
axis2_op_t *op,
axis2_msg_ctx_t *msg_ctx);
-axis2_status_t AXIS2_CALL axis2_call_invoke_non_blocking(struct axis2_call *call,
+
+axis2_status_t AXIS2_CALL
+axis2_call_invoke_non_blocking(struct axis2_call *call,
axis2_env_t **env,
axis2_op_t *op,
axis2_msg_ctx_t *msg_ctx,
axis2_callback_t *callback);
-axis2_status_t AXIS2_CALL axis2_call_set_to(struct axis2_call *call,
- axis2_env_t **env,
- axis2_endpoint_ref_t *to);
-axis2_status_t AXIS2_CALL axis2_call_set_transport_info(struct axis2_call *call,
+
+axis2_status_t AXIS2_CALL
+axis2_call_set_to(struct axis2_call *call,
+ axis2_env_t **env,
+ axis2_endpoint_ref_t *to);
+
+axis2_status_t AXIS2_CALL
+axis2_call_set_transport_info(struct axis2_call *call,
axis2_env_t **env,
axis2_char_t *sender_transport,
axis2_char_t *listener_transport,
axis2_bool_t use_separate_listener);
-axis2_status_t AXIS2_CALL axis2_call_check_transport(struct axis2_call *call,
- axis2_env_t **env,
- axis2_msg_ctx_t *msg_ctx);
-axis2_status_t AXIS2_CALL axis2_call_close(struct axis2_call *call,
- axis2_env_t **env);
-axis2_status_t AXIS2_CALL axis2_call_set_time(struct axis2_call *call,
- axis2_env_t **env,
- long timeout_ms);
-axis2_om_node_t* AXIS2_CALL axis2_call_invoke_blocking_with_om(struct axis2_call *call,
- axis2_env_t **env,
- axis2_char_t *op_name, axis2_om_node_t *om_node_to_send);
-axis2_soap_envelope_t* AXIS2_CALL axis2_call_invoke_blocking_with_soap(struct axis2_call *call,
- axis2_env_t **env,
- axis2_char_t *op_name, axis2_soap_envelope_t *envelope);
-axis2_status_t AXIS2_CALL axis2_call_invoke_non_blocking_with_om(struct axis2_call *call,
- axis2_env_t **env,
- axis2_char_t *op_name,
- axis2_om_node_t *om_node_to_send,
- axis2_callback_t *callback);
-axis2_status_t AXIS2_CALL axis2_call_invoke_non_blocking_with_soap(struct axis2_call *call,
- axis2_env_t **env,
- axis2_char_t *op_name,
- axis2_soap_envelope_t *envelope,
- axis2_callback_t * callback);
-axis2_op_t* AXIS2_CALL axis2_call_create_op_fill_flow(struct axis2_call *call,
- axis2_env_t **env,
- axis2_char_t *op_name);
-axis2_msg_ctx_t* AXIS2_CALL axis2_call_get_last_res_msg_ctx(struct axis2_call *call,
- axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_call_check_transport(struct axis2_call *call,
+ axis2_env_t **env,
+ axis2_msg_ctx_t *msg_ctx);
+
+axis2_status_t AXIS2_CALL
+axis2_call_close(struct axis2_call *call,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_call_set_time(struct axis2_call *call,
+ axis2_env_t **env,
+ long timeout_ms);
+
+axis2_om_node_t* AXIS2_CALL
+axis2_call_invoke_blocking_with_om(struct axis2_call *call,
+ axis2_env_t **env,
+ axis2_char_t *op_name,
+ axis2_om_node_t *om_node_to_send);
+
+axis2_soap_envelope_t* AXIS2_CALL
+axis2_call_invoke_blocking_with_soap(struct axis2_call *call,
+ axis2_env_t **env,
+ axis2_char_t *op_name,
+ axis2_soap_envelope_t *envelope);
+
+axis2_status_t AXIS2_CALL
+axis2_call_invoke_non_blocking_with_om(struct axis2_call *call,
+ axis2_env_t **env,
+ axis2_char_t *op_name,
+ axis2_om_node_t *om_node_to_send,
+ axis2_callback_t *callback);
+
+axis2_status_t AXIS2_CALL
+axis2_call_invoke_non_blocking_with_soap(struct axis2_call *call,
+ axis2_env_t **env,
+ axis2_char_t *op_name,
+ axis2_soap_envelope_t *envelope,
+ axis2_callback_t * callback);
+
+axis2_op_t* AXIS2_CALL
+axis2_call_create_op_fill_flow(struct axis2_call *call,
+ axis2_env_t **env,
+ axis2_char_t *op_name);
+
+axis2_msg_ctx_t* AXIS2_CALL
+axis2_call_get_last_res_msg_ctx(struct axis2_call *call,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_call_set(axis2_call_t *call,
+ axis2_env_t **env,
+ axis2_char_t *key,
+ void *value);
+
axis2_status_t AXIS2_CALL axis2_call_free(struct axis2_call *call,
axis2_env_t **env);
@@ -139,9 +173,12 @@
call_impl->listener_manager = NULL;
call_impl->op_template = NULL;
call_impl->last_res_msg_ctx = NULL;
+ call_impl->svc_ctx = NULL;
- if (svc_ctx)
+ if(svc_ctx)
+ {
call_impl->svc_ctx = svc_ctx;
+ }
call_impl->base = axis2_mep_client_create(env, svc_ctx, AXIS2_MEP_URI_OUT_IN);
if (!(call_impl->base))
@@ -165,9 +202,6 @@
axis2_call_free(&(call_impl->call), env);
return NULL;
}
-
- call_impl->call.ops->invoke_blocking = axis2_call_invoke_blocking;
- call_impl->call.ops->invoke_non_blocking = axis2_call_invoke_non_blocking;
call_impl->call.ops->set_to = axis2_call_set_to;
call_impl->call.ops->set_transport_info = axis2_call_set_transport_info;
call_impl->call.ops->check_transport = axis2_call_check_transport;
@@ -179,6 +213,7 @@
call_impl->call.ops->invoke_non_blocking_with_soap = axis2_call_invoke_non_blocking_with_soap;
call_impl->call.ops->create_op_fill_flow = axis2_call_create_op_fill_flow;
call_impl->call.ops->get_last_res_msg_ctx = axis2_call_get_last_res_msg_ctx;
+ call_impl->call.ops->set = axis2_call_set;
call_impl->call.ops->free = axis2_call_free;
return &(call_impl->call);
@@ -263,10 +298,12 @@
axis2_call_impl_t *call_impl = NULL;
axis2_status_t status = AXIS2_SUCCESS;
axis2_svc_ctx_t *svc_ctx = NULL;
+ axis2_svc_t *svc = NULL;
AXIS2_FUNC_PARAM_CHECK(call, env, AXIS2_FAILURE);
call_impl = AXIS2_INTF_TO_IMPL(call);
+ svc = AXIS2_SVC_CTX_GET_SVC(call_impl->svc_ctx, env);
status = AXIS2_MEP_CLIENT_PREPARE_INVOCATION(call_impl->base, env, op, msg_ctx);
if (status != AXIS2_SUCCESS)
@@ -1018,6 +1055,10 @@
axis2_svc_t *svc = NULL;
op = axis2_op_create_with_qname(env, op_qname);
+ if(!op)
+ {
+ return AXIS2_FAILURE;
+ }
AXIS2_OP_SET_REMAINING_PHASES_INFLOW(op, env,
AXIS2_OP_GET_REMAINING_PHASES_INFLOW(call_impl->op_template, env));
AXIS2_OP_SET_PHASES_OUTFLOW(op, env,
@@ -1037,6 +1078,36 @@
}
return op;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_call_set(axis2_call_t *call,
+ axis2_env_t **env,
+ axis2_char_t *key,
+ void *value)
+{
+ axis2_call_impl_t *call_impl = NULL;
+ axis2_conf_ctx_t *conf_ctx = NULL;
+ axis2_ctx_t *conf_ctx_base = NULL;
+ axis2_status_t status = AXIS2_FAILURE;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, key, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, value, AXIS2_FAILURE);
+ call_impl = AXIS2_INTF_TO_IMPL(call);
+
+ conf_ctx = AXIS2_SVC_CTX_GET_CONF_CTX(call_impl->svc_ctx, env);
+ if(!conf_ctx)
+ {
+ return AXIS2_FAILURE;
+ }
+ conf_ctx_base = AXIS2_CONF_CTX_GET_BASE(conf_ctx, env);
+ if(!conf_ctx_base)
+ {
+ return AXIS2_FAILURE;
+ }
+ status = AXIS2_CTX_SET_PROPERTY(conf_ctx_base, env, key, value, AXIS2_FALSE);
+ return status;
}
/**
Modified: webservices/axis2/trunk/c/modules/core/clientapi/stub.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/stub.c?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/stub.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/stub.c Mon Jan 30 02:10:05 2006
@@ -15,7 +15,11 @@
*/
#include <axis2_stub.h>
-#include <string.h>
+#include <axis2_http_transport.h>
+#include <axis2_wsdl_svc.h>
+#include <axis2_om_stax_builder.h>
+#include <axis2_soap_header.h>
+#include <axis2_soap_body.h>
/**
* @brief
@@ -25,6 +29,26 @@
axis2_stub_t stub;
axis2_call_t *call;
+
+ axis2_conf_ctx_t *conf_ctx;
+ axis2_svc_t *svc;
+ axis2_svc_ctx_t *svc_ctx;
+ axis2_endpoint_ref_t *to_epr;
+ axis2_bool_t do_rest;
+ axis2_char_t *sender_transport;
+ axis2_char_t *listener_transport;
+ axis2_bool_t use_separate_listener;
+ /*Default SOAP version is 11 */
+ int soap_version;
+ axis2_hash_t *property_map;
+ axis2_array_list_t *modules;
+ /**
+ * If _maintainSession is set to True all the calls will use the same
+ * ServiceContext and the user can Share information through that
+ * ServiceContext across operations.
+ */
+ axis2_bool_t maintain_session;
+ axis2_char_t *current_session_id;
} axis2_stub_impl_t;
@@ -46,7 +70,101 @@
axis2_stub_set_endpoint_uri (axis2_stub_t *stub,
axis2_env_t **env,
axis2_char_t *endpoint_uri);
+
+/**
+ *
+ * @param sender_transport
+ * @param listener_transport
+ * @param use_separate_transport
+ */
+axis2_status_t AXIS2_CALL
+axis2_stub_set_transport_info(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *sender_transport,
+ axis2_char_t *listener_transport,
+ axis2_bool_t use_separate_listener);
+
+/**
+ *
+ * @param key
+ * @param value
+ */
+axis2_status_t AXIS2_CALL
+axis2_stub_put(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *key,
+ void *value);
+
+/**
+ *
+ * @param key
+ * @return the object
+ */
+void *AXIS2_CALL
+axis2_stub_get(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *key);
+
+axis2_status_t AXIS2_CALL
+axis2_stub_engage_module(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *module_name);
+
+/**
+ * Set the soap version
+ * @param soap_version
+ */
+axis2_status_t AXIS2_CALL
+axis2_stub_set_soap_version(axis2_stub_t *stub,
+ axis2_env_t **env,
+ int soap_version);
+axis2_char_t *AXIS2_CALL
+axis2_stub_get_svc_ctx_id(axis2_stub_t *stub,
+ axis2_env_t **env);
+
+axis2_char_t *
+axis2_stub_get_id(axis2_stub_t *stub,
+ axis2_env_t **env);
+
+axis2_om_node_t *AXIS2_CALL
+axis2_stub_get_element_from_reader(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_xml_reader_t *reader);
+
+
+axis2_status_t AXIS2_CALL
+axis2_stub_set_value_doc(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_soap_envelope_t *envelope,
+ axis2_om_node_t *value,
+ axis2_bool_t is_header);
+
+/**
+ * Extract the correct element - A util method
+ * @param env
+ * @param type
+ * @return the relevant element to be databound
+ */
+axis2_om_node_t *AXIS2_CALL
+axis2_stub_get_element(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_soap_envelope_t *envelope,
+ axis2_char_t *type);
+
+axis2_status_t AXIS2_CALL
+axis2_stub_populate_properties(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_call_t *call);
+
+axis2_status_t AXIS2_CALL
+axis2_stub_populate_modules(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_call_t *call);
+
+axis2_call_t *AXIS2_CALL
+axis2_stub_get_call_obj(axis2_stub_t *stub,
+ axis2_env_t **env);
/************************** End of function prototypes ************************/
@@ -67,8 +185,49 @@
}
stub_impl->call = NULL;
+ stub_impl->conf_ctx = NULL;
+ stub_impl->svc = NULL;
+ stub_impl->svc_ctx = NULL;
+ stub_impl->to_epr = NULL;
+ stub_impl->do_rest = AXIS2_FALSE;
+ stub_impl->sender_transport = NULL;
+ stub_impl->listener_transport = NULL;
+ stub_impl->use_separate_listener = AXIS2_FALSE;
+ /* Default SOAP version is 11 */
+ stub_impl->soap_version = AXIS2_SOAP_11;
+ stub_impl->property_map = NULL;
+ stub_impl->modules = NULL;
+ stub_impl->maintain_session = AXIS2_FALSE;
+ stub_impl->current_session_id = NULL;
stub_impl->stub.ops = NULL;
+ stub_impl->sender_transport = AXIS2_STRDUP(AXIS2_TRANSPORT_HTTP, env);
+ if(!stub_impl->sender_transport)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ stub_impl->listener_transport = AXIS2_STRDUP(AXIS2_TRANSPORT_HTTP, env);
+ if(!stub_impl->sender_transport)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ stub_impl->property_map = axis2_hash_make(env);
+ if(!stub_impl->property_map)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ stub_impl->modules = axis2_array_list_create(env, 0);
+ if(!stub_impl->modules)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
stub_impl->stub.ops =
AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_stub_ops_t));
if(NULL == stub_impl->stub.ops)
@@ -81,7 +240,19 @@
stub_impl->stub.ops->free = axis2_stub_free;
stub_impl->stub.ops->set_endpoint_ref = axis2_stub_set_endpoint_ref;
stub_impl->stub.ops->set_endpoint_uri = axis2_stub_set_endpoint_uri;
-
+ stub_impl->stub.ops->set_transport_info = axis2_stub_set_transport_info;
+ stub_impl->stub.ops->put = axis2_stub_put;
+ stub_impl->stub.ops->get = axis2_stub_get;
+ stub_impl->stub.ops->engage_module = axis2_stub_engage_module;
+ stub_impl->stub.ops->set_soap_version = axis2_stub_set_soap_version;
+ stub_impl->stub.ops->get_svc_ctx_id = axis2_stub_get_svc_ctx_id;
+ stub_impl->stub.ops->get_element_from_reader =
+ axis2_stub_get_element_from_reader;
+ stub_impl->stub.ops->set_value_doc = axis2_stub_set_value_doc;
+ stub_impl->stub.ops->get_element = axis2_stub_get_element;
+ stub_impl->stub.ops->populate_properties = axis2_stub_populate_properties;
+ stub_impl->stub.ops->populate_modules = axis2_stub_populate_modules;
+ stub_impl->stub.ops->get_call_obj = axis2_stub_get_call_obj;
return &(stub_impl->stub);
}
@@ -150,7 +321,7 @@
{
axis2_stub_impl_t *stub_impl = NULL;
- AXIS2_FUNC_PARAM_CHECK(stub, env, AXIS2_FAILURE);
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
stub_impl = AXIS2_INTF_TO_IMPL(stub);
@@ -182,7 +353,7 @@
{
axis2_stub_impl_t *stub_impl = NULL;
- AXIS2_FUNC_PARAM_CHECK(stub,env, AXIS2_FAILURE);
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, endpoint_ref, AXIS2_FAILURE);
stub_impl = AXIS2_INTF_TO_IMPL(stub);
@@ -197,7 +368,7 @@
axis2_stub_impl_t *stub_impl = NULL;
axis2_endpoint_ref_t *endpoint_ref = NULL;
- AXIS2_FUNC_PARAM_CHECK(stub,env, AXIS2_FAILURE);
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, endpoint_uri, AXIS2_FAILURE);
stub_impl = AXIS2_INTF_TO_IMPL(stub);
@@ -208,3 +379,377 @@
}
return AXIS2_CALL_SET_TO(stub_impl->call, env, endpoint_ref);
}
+
+/**
+ *
+ * @param sender_transport
+ * @param listener_transport
+ * @param use_separate_transport
+ */
+axis2_status_t AXIS2_CALL
+axis2_stub_set_transport_info(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *sender_transport,
+ axis2_char_t *listener_transport,
+ axis2_bool_t use_separate_listener)
+{
+ axis2_stub_impl_t *stub_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, sender_transport, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, listener_transport, AXIS2_FAILURE);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ if(stub_impl->sender_transport)
+ {
+ AXIS2_FREE((*env)->allocator, stub_impl->sender_transport);
+ stub_impl->sender_transport = NULL;
+ }
+ stub_impl->sender_transport = sender_transport;
+
+ if(stub_impl->listener_transport)
+ {
+ AXIS2_FREE((*env)->allocator, stub_impl->listener_transport);
+ stub_impl->listener_transport = NULL;
+ }
+ stub_impl->listener_transport = listener_transport;
+ stub_impl->use_separate_listener = use_separate_listener;
+ return AXIS2_SUCCESS;
+}
+
+/**
+ *
+ * @param key
+ * @param value
+ */
+axis2_status_t AXIS2_CALL
+axis2_stub_put(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *key,
+ void *value)
+{
+ axis2_stub_impl_t *stub_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, key, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, value, AXIS2_FAILURE);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ axis2_hash_set(stub_impl->property_map, key, AXIS2_HASH_KEY_STRING, value);
+ return AXIS2_SUCCESS;
+}
+
+/**
+ *
+ * @param key
+ * @return the object
+ */
+void *AXIS2_CALL
+axis2_stub_get(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *key)
+{
+ axis2_stub_impl_t *stub_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, key, AXIS2_FAILURE);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ return axis2_hash_get(stub_impl->property_map, key, AXIS2_HASH_KEY_STRING);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_stub_engage_module(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_char_t *module_name)
+{
+ axis2_stub_impl_t *stub_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, module_name, AXIS2_FAILURE);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ return AXIS2_ARRAY_LIST_ADD(stub_impl->modules, env, module_name);
+}
+
+/**
+ * Set the soap version
+ * @param soap_version
+ */
+axis2_status_t AXIS2_CALL
+axis2_stub_set_soap_version(axis2_stub_t *stub,
+ axis2_env_t **env,
+ int soap_version)
+{
+ axis2_stub_impl_t *stub_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ stub_impl->soap_version = soap_version;
+ return AXIS2_SUCCESS;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_stub_get_svc_ctx_id(axis2_stub_t *stub,
+ axis2_env_t **env)
+{
+ axis2_stub_impl_t *stub_impl = NULL;
+ axis2_char_t *svc_ctx_id = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ if(stub_impl->maintain_session)
+ {
+ svc_ctx_id = stub_impl->current_session_id;
+ }
+ else
+ {
+ svc_ctx_id = axis2_stub_get_id(stub, env);
+ }
+ return svc_ctx_id;
+}
+
+axis2_char_t *
+axis2_stub_get_id(axis2_stub_t *stub,
+ axis2_env_t **env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+
+ /* TODO Get the UUID generator to generate values */
+ return "uuid";
+}
+
+axis2_om_node_t *AXIS2_CALL
+axis2_stub_get_element_from_reader(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_xml_reader_t *reader)
+{
+ axis2_om_stax_builder_t *builder = NULL;
+ axis2_om_document_t *document = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+ AXIS2_PARAM_CHECK((*env)->error, reader, NULL);
+
+ /** create axis2_om_stax_builder by parsing pull_parser struct */
+ builder = axis2_om_stax_builder_create (env, reader);
+ if(!builder)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_CREATING_XML_STREAM_READER,
+ AXIS2_FAILURE)
+ return NULL;
+ }
+ document = AXIS2_OM_STAX_BUILDER_GET_DOCUMENT(builder, env);
+ return AXIS2_OM_DOCUMENT_GET_ROOT_ELEMENT(document, env);
+
+}
+
+axis2_status_t AXIS2_CALL
+axis2_stub_set_value_doc(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_soap_envelope_t *envelope,
+ axis2_om_node_t *value,
+ axis2_bool_t is_header)
+{
+ axis2_status_t status = AXIS2_FAILURE;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, envelope, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, value, AXIS2_FAILURE);
+
+ if(is_header)
+ {
+ axis2_soap_header_t *soap_header = NULL;
+
+ soap_header = AXIS2_SOAP_ENVELOPE_GET_HEADER(envelope, env);
+ if(!soap_header)
+ {
+ return AXIS2_FAILURE;
+ }
+ status = AXIS2_SOAP_HEADER_SET_BASE_NODE(soap_header, env, value);
+ }
+ else
+ {
+ axis2_soap_body_t *body = NULL;
+
+ body = AXIS2_SOAP_ENVELOPE_GET_BODY(envelope, env);
+ if(!body)
+ {
+ return AXIS2_FAILURE;
+ }
+ status = AXIS2_SOAP_BODY_SET_BASE_NODE(body, env, value);
+ }
+ return status;
+}
+
+/**
+ * Extract the correct element - A util method
+ * @param env
+ * @param type
+ * @return the relevant element to be databound
+ */
+axis2_om_node_t *AXIS2_CALL
+axis2_stub_get_element(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_soap_envelope_t *envelope,
+ axis2_char_t *type)
+{
+ axis2_soap_body_t *body = NULL;
+ axis2_om_node_t *node = NULL;
+
+ body = AXIS2_SOAP_ENVELOPE_GET_BODY(envelope, env);
+ node = AXIS2_SOAP_BODY_GET_BASE_NODE(body, env);
+ if(0 == AXIS2_STRCMP(AXIS2_STYLE_RPC, type))
+ {
+ /* todo this needs to be fixed */
+ return AXIS2_OM_NODE_GET_FIRST_CHILD(node, env);
+ }
+ else if(0 == AXIS2_STRCMP(AXIS2_STYLE_DOC, type))
+ {
+ return node;
+ }
+ else
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_UNSUPPORTED_TYPE,
+ AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
+}
+
+axis2_status_t AXIS2_CALL
+axis2_stub_populate_properties(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_call_t *call)
+{
+ axis2_hash_index_t *index = NULL;
+ axis2_stub_impl_t *stub_impl = NULL;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, call, AXIS2_FAILURE);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ for(index = axis2_hash_first(stub_impl->property_map, env); index; index =
+ axis2_hash_next(env, index))
+ {
+ void *key = NULL;
+ void *val = NULL;
+
+ axis2_hash_this(index, &key, NULL, &val);
+ AXIS2_CALL_SET(call, env, key, val);
+
+ }
+ return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_stub_populate_modules(axis2_stub_t *stub,
+ axis2_env_t **env,
+ axis2_call_t *call)
+{
+ axis2_stub_impl_t *stub_impl = NULL;
+ int i = 0;
+ int size = 0;
+ axis2_status_t status = AXIS2_FAILURE;
+
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, call, AXIS2_FAILURE);
+ stub_impl = AXIS2_INTF_TO_IMPL(stub);
+
+ size = AXIS2_ARRAY_LIST_SIZE(stub_impl->modules, env);
+ for (i = 0; i < size; i++)
+ {
+ axis2_qname_t *module_qname = NULL;
+ axis2_char_t *module_name = NULL;
+
+ module_name = (axis2_char_t *) AXIS2_ARRAY_LIST_GET(stub_impl->modules,
+ env, i);
+ module_qname = axis2_qname_create(env, module_name, NULL, NULL);
+ /* TODO uncomment this when method is available
+ status = AXIS2_CALL_ENGAGE_MODULE(stub_impl->call, env, modue_qname);
+ */
+ if(AXIS2_SUCCESS != status)
+ {
+ return status;
+ }
+ AXIS2_QNAME_FREE(module_qname, env);
+ module_qname = NULL;
+ }
+ return status;
+}
+
+axis2_call_t *AXIS2_CALL
+axis2_stub_get_call_obj(axis2_stub_t *stub,
+ axis2_env_t **env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+ return AXIS2_INTF_TO_IMPL(stub)->call;
+}
+
+/**
+ *
+ * @param doRest
+ */
+/* public void setDoREST(boolean doRest) {
+ this.doRest = doRest;
+ }
+*/
+
+/*
+protected void setValueRPC(SOAPEnvelope env,
+ String methodNamespaceURI,
+ String methodName,
+ String[] paramNames,
+ Object[] values) {
+ SOAPBody body = env.getBody();
+ OMFactory fac = this.getFactory(this.soapVesrion);
+
+ OMNamespace methodNamespace = fac.createOMNamespace(methodNamespaceURI,
+ "ns1");
+ OMElement elt = fac.createOMElement(methodName, methodNamespace);
+ if (paramNames != null) {
+ //find the relevant object here, convert it and add it to the elt
+ for (int i = 0; i < paramNames.length; i++) {
+ String paramName = paramNames[i];
+ Object value = values[i];
+ elt.addChild(StubSupporter.createRPCMappedElement(paramName,
+ fac.createOMNamespace("", null), //empty namespace
+ value,
+ fac));
+ }
+ }
+ body.addChild(elt);
+}
+*/
+
+/*
+public void _setSessionInfo(String key, Object value) throws java.lang.Exception {
+ if (!_maintainSession) {
+ //TODO Comeup with a Exception
+ throw new java.lang.Exception(
+ "Client is running the session OFF mode: Start session before saving to a session ");
+ }
+ _configurationContext.getServiceContext(_currentSessionId).setProperty(
+ key, value);
+}
+
+
+public Object _getSessionInfo(String key) throws java.lang.Exception {
+ if (!_maintainSession) {
+ //TODO Comeup with a Exception
+ throw new java.lang.Exception(
+ "Client is running the session OFF mode: Start session before saving to a session ");
+ }
+ return _configurationContext.getServiceContext(_currentSessionId)
+ .getProperty(key);
+}
+
+public void _startSession() {
+ _maintainSession = true;
+ _currentSessionId = getID();
+}
+
+public void _endSession() {
+ _maintainSession = false;
+}
+*/
Modified: webservices/axis2/trunk/c/modules/core/context/conf_ctx.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/context/conf_ctx.c?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/context/conf_ctx.c (original)
+++ webservices/axis2/trunk/c/modules/core/context/conf_ctx.c Mon Jan 30 02:10:05 2006
@@ -551,4 +551,3 @@
AXIS2_MSG_CTX_SET_SVC_GRP_CTX(msg_ctx, env, svc_grp_ctx);
return svc_grp_ctx;
}
-
Modified: webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c (original)
+++ webservices/axis2/trunk/c/modules/core/deployment/desc_builder.c Mon Jan 30 02:10:05 2006
@@ -246,11 +246,11 @@
axis2_build_OM(axis2_desc_builder_t *desc_builder,
axis2_env_t **env)
{
- struct axis2_desc_builder_impl *builder_impl = NULL;
- struct axis2_om_stax_builder *builder = NULL;
- struct axis2_xml_reader *reader = NULL;
- struct axis2_om_document *document = NULL;
- struct axis2_om_node *root = NULL;
+ axis2_desc_builder_impl_t *builder_impl = NULL;
+ axis2_om_stax_builder_t *builder = NULL;
+ axis2_xml_reader_t *reader = NULL;
+ axis2_om_document_t *document = NULL;
+ axis2_om_node_t *root = NULL;
AXIS2_FUNC_PARAM_CHECK(desc_builder, env, NULL);
@@ -299,14 +299,14 @@
return root;
}
-struct axis2_flow *AXIS2_CALL
+axis2_flow_t *AXIS2_CALL
axis2_desc_builder_process_flow(axis2_desc_builder_t *desc_builder,
axis2_env_t **env,
axis2_om_element_t *flow_element,
axis2_param_container_t *parent,
axis2_om_node_t *flow_node)
{
- struct axis2_flow *flow = NULL;
+ axis2_flow_t *flow = NULL;
axis2_om_children_qname_iterator_t *handlers = NULL;
axis2_qname_t *child = NULL;
@@ -358,9 +358,9 @@
struct axis2_param_container *parent)
{
axis2_handler_desc_t *handler = NULL;
- struct axis2_om_attribute *name_attrib = NULL;
+ axis2_om_attribute_t *name_attrib = NULL;
axis2_qname_t *attr_qname = NULL;
- struct axis2_om_attribute *class_attrib = NULL;
+ axis2_om_attribute_t *class_attrib = NULL;
axis2_qname_t *class_qname = NULL;
axis2_status_t status = AXIS2_FAILURE;
axis2_char_t *attrib_value = NULL;
Modified: webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c (original)
+++ webservices/axis2/trunk/c/modules/core/phaseresolver/phase_resolver.c Mon Jan 30 02:10:05 2006
@@ -883,17 +883,17 @@
axis2_qname_t *mod_name = NULL;
axis2_hash_this (index_i, NULL, NULL, &v);
- svc_grp = (struct axis2_svc_grp *) v;
+ svc_grp = (axis2_svc_grp_t *) v;
svcs = AXIS2_SVC_GRP_GET_SVCS(svc_grp, env);
index_j = axis2_hash_first (svcs, env);
while(NULL != index_j)
{
- struct axis2_svc *svc = NULL;
+ axis2_svc_t *svc = NULL;
void *w = NULL;
axis2_hash_this (index_i, NULL, NULL, &w);
- svc = (struct axis2_svc *) w;
+ svc = (axis2_svc_t *) w;
status = AXIS2_SVC_ADD_MODULE_OPS(svc, env, module,
resolver_impl->axis2_config);
Modified: webservices/axis2/trunk/c/modules/util/error.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/util/error.c?rev=373486&r1=373485&r2=373486&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/util/error.c (original)
+++ webservices/axis2/trunk/c/modules/util/error.c Mon Jan 30 02:10:05 2006
@@ -387,6 +387,8 @@
axis2_error_messages[AXIS2_ERROR_INVALID_STATE_DLL_DESC] =
"dll description has invalid state of not having valid dll create function, \
of valid delete function or valid dll_handler";
+ axis2_error_messages[AXIS2_ERROR_UNSUPPORTED_TYPE] =
+ "type is not supported";
axis2_error_messages[AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX] =
"Null soap envelope in msg_ctx";
axis2_error_messages[AXIS2_ERROR_UUID_GEN_FAILED] =