You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/04/03 06:41:56 UTC
svn commit: r390952 [1/2] - in /webservices/axis2/trunk/c: ./ include/
modules/core/clientapi/diclient/ modules/wsdl/ modules/wsdl/builder/
samples/client/ samples/client/diclient/
Author: damitha
Date: Sun Apr 2 21:41:53 2006
New Revision: 390952
URL: http://svn.apache.org/viewcvs?rev=390952&view=rev
Log:
Dynamic Invocation client is now working fine. Added api documentation
as well
Modified:
webservices/axis2/trunk/c/build.sh
webservices/axis2/trunk/c/include/axis2_di_client.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h
webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h
webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h
webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c
webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c
webservices/axis2/trunk/c/modules/wsdl/wsdl_binding.c
webservices/axis2/trunk/c/modules/wsdl/wsdl_interface.c
webservices/axis2/trunk/c/modules/wsdl/wsdl_op.c
webservices/axis2/trunk/c/samples/client/Makefile.am
webservices/axis2/trunk/c/samples/client/diclient/Makefile.am
webservices/axis2/trunk/c/samples/client/diclient/README
webservices/axis2/trunk/c/samples/client/diclient/echo_client.c
webservices/axis2/trunk/c/samples/client/diclient/wsaTestService.wsdl
Modified: webservices/axis2/trunk/c/build.sh
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/build.sh?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/build.sh (original)
+++ webservices/axis2/trunk/c/build.sh Sun Apr 2 21:41:53 2006
@@ -2,7 +2,7 @@
./autogen.sh
AXIS2C_HOME=`pwd`/deploy
export AXIS2C_HOME
-./configure --prefix=${AXIS2C_HOME} --enable-tests=yes --enable-trace=yes --with-apache2=/usr/include/apache2 --with-apr=/usr/include/apr-0 --enable-diclient=yes
+./configure --prefix=${AXIS2C_HOME} --enable-tests=yes --enable-trace=yes --with-apache2=/usr/include/apache2 --with-apr=/usr/include/apr-0 --enable-diclient=no
make
make install
cd samples
Modified: webservices/axis2/trunk/c/include/axis2_di_client.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_di_client.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_di_client.h (original)
+++ webservices/axis2/trunk/c/include/axis2_di_client.h Sun Apr 2 21:41:53 2006
@@ -14,12 +14,12 @@
* limitations under the License.
*/
-#ifndef AXIS2_DI_CLIENT_H
-#define AXIS2_DI_CLIENT_H
+#ifndef AXIS2_DICLIENT_H
+#define AXIS2_DICLIENT_H
/**
- * @file axis2_di_client.h
+ * @file axis2_diclient.h
* @brief axis2 Dynamic Invocation Client interface
*/
@@ -32,59 +32,162 @@
{
#endif
-/** @defgroup axis2_di_client Dynamic Invocation Client
+/** @defgroup axis2_diclient Dynamic Invocation Client
* @ingroup axis2_core_clientapi
* @{
*/
-typedef struct axis2_di_client_ops axis2_di_client_ops_t;
-typedef struct axis2_di_client axis2_di_client_t;
+typedef struct axis2_diclient_ops axis2_diclient_ops_t;
+typedef struct axis2_diclient axis2_diclient_t;
struct axis2_om_node;
-
+struct axis2_op;
+
/**
* @brief Dynamic Invocation Client ops struct
- * Encapsulator struct for ops of axis2_di_client
+ * Encapsulator struct for ops of axis2_diclient
*/
-struct axis2_di_client_ops
+struct axis2_diclient_ops
{
axis2_status_t (AXIS2_CALL *
- free)(struct axis2_di_client *di_client,
+ free)(struct axis2_diclient *diclient,
axis2_env_t **env);
+ /**
+ * Invoke the operation by passing om node and axis2 operation as
+ * parameters
+ * @param om node
+ * @param axis2 operation
+ * @return status code
+ */
axis2_status_t (AXIS2_CALL *
- invoke) (axis2_di_client_t *di_client,
+ invoke) (axis2_diclient_t *diclient,
axis2_env_t **env,
- axis2_om_node_t *node);
-
+ axis2_om_node_t *node,
+ struct axis2_op *op);
+
+ /**
+ * Do the initialization work. Here wsdl parser is created and
+ * Pumping of wsdl object model from Wsdl Pull Parser into the
+ * Axis2 Wsdl Object modle is initiated. Also operation map and
+ * endpoint map is populated
+ * @param wsdl file name
+ * @return status code
+ */
axis2_status_t (AXIS2_CALL *
- init) (axis2_di_client_t *di_client,
+ init) (axis2_diclient_t *diclient,
axis2_env_t **env,
axis2_char_t *wsdl_file_name);
+
+ /**
+ * By passing the operation qualified name and the endpoint qualified
+ * name operations action and address is set
+ * @param operation qualified name
+ * @param endpoint qualified name
+ * @return status code
+ */
+ axis2_status_t *(AXIS2_CALL *
+ set_address_and_action_for_op) (axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname,
+ axis2_qname_t *endpoint_qname);
+
+
+ /**
+ * Return all the endpoints associated with the wsdl
+ * @return table of endpoints associated with the wsdl
+ */
+ axis2_hash_t *(AXIS2_CALL *
+ get_endpoints) (axis2_diclient_t *diclient,
+ axis2_env_t **env);
+
+ /**
+ * Return the all operations associated with the wsdl
+ * @return table of operations associated with the wsdl
+ */
+ axis2_hash_t *(AXIS2_CALL *
+ get_operations) (axis2_diclient_t *diclient,
+ axis2_env_t **env);
+
+ /**
+ * Return the operation parameter's localname. This method
+ * can be used in document style operations where operation has
+ * only one parameter
+ * @param operation qualified name
+ * @return parameter's localname
+ */
+ axis2_char_t *(AXIS2_CALL *
+ get_param_localname) (axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname);
+
+ /**
+ * Return the operation parameter's namespace. This method
+ * can be used in document style operations where operation has
+ * only one parameter
+ * @param operation qualified name
+ * @return parameter's namespace
+ */
+ axis2_char_t *(AXIS2_CALL *
+ get_param_namespace) (axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname);
+
+ /**
+ * Return the set of parameters associated with the operation.
+ * This can be used in rpc style operations where operation has
+ * multiple parameters.
+ * @param operation qualified name
+ * @return set of parameters assoicated with the operation
+ */
+ axis2_hash_t *(AXIS2_CALL *
+ get_params) (axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname);
};
/**
* @brief Dynamic Invocation Client struct
* Axis2 Dynamic Invocation Client
*/
-struct axis2_di_client
+struct axis2_diclient
{
- axis2_di_client_ops_t *ops;
+ axis2_diclient_ops_t *ops;
};
-AXIS2_DECLARE(axis2_di_client_t*)
-axis2_di_client_create(axis2_env_t **env);
+AXIS2_DECLARE(axis2_diclient_t*)
+axis2_diclient_create(axis2_env_t **env);
/************************** Start of function macros **************************/
-#define AXIS2_DI_CLIENT_FREE(di_client, env) \
- ((di_client)->ops->free (di_client, env))
+#define AXIS2_DICLIENT_FREE(diclient, env) \
+ ((diclient)->ops->free (diclient, env))
-#define AXIS2_DI_CLIENT_INVOKE(di_client, env, node) \
- ((di_client)->ops->invoke (di_client, env, node))
+#define AXIS2_DICLIENT_INVOKE(diclient, env, node, op) \
+ ((diclient)->ops->invoke (diclient, env, node, op))
+
+#define AXIS2_DICLIENT_INIT(diclient, env, wsdl_file_name) \
+ ((diclient)->ops->init (diclient, env, wsdl_file_name))
+
+#define AXIS2_DICLIENT_SET_ADDRESS_AND_ACTION_FOR_OP(diclient, env, op_qname, \
+ endpoint_qname) \
+ ((diclient)->ops->set_address_and_action_for_op (diclient, env, \
+ op_qname, endpoint_qname))
+
+#define AXIS2_DICLIENT_GET_ENDPOINTS(diclient, env) \
+ ((diclient)->ops->get_endpoints (diclient, env))
+
+#define AXIS2_DICLIENT_GET_OPERATIONS(diclient, env) \
+ ((diclient)->ops->get_operations (diclient, env))
+
+#define AXIS2_DICLIENT_GET_PARAM_LOCALNAME(diclient, env, op_qname) \
+ ((diclient)->ops->get_param_localname (diclient, env, op_qname))
+
+#define AXIS2_DICLIENT_GET_PARAM_NAMESPACE(diclient, env, op_qname) \
+ ((diclient)->ops->get_param_namespace (diclient, env, op_qname))
-#define AXIS2_DI_CLIENT_INIT(di_client, env, wsdl_file_name) \
- ((di_client)->ops->init (di_client, env, wsdl_file_name))
+#define AXIS2_DICLIENT_GET_PARAMS(diclient, env, op_qname) \
+ ((diclient)->ops->get_params (diclient, env, op_qname))
/************************** End of function macros ****************************/
@@ -93,5 +196,5 @@
}
#endif
-#endif /* AXIS2_DI_CLIENT_H */
+#endif /* AXIS2_DICLIENT_H */
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h Sun Apr 2 21:41:53 2006
@@ -31,8 +31,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_binding constants
- * @ingroup axis2_wsdl4c_binding
+ * @defgroup axis2 wsdl4c_binding
+ * @ingroup axis2_wsdl4c
* @{
*/
void *
@@ -42,58 +42,59 @@
axis2_wsdl4c_binding_destroy(void *binding);
/**
- * axis2_wsdl4c_binding_get_binding_info
- * @return the extensibility element id of the main binding extension element.
- * In case of soap it would be the id of the soap:binding element
- */
+ * axis2_wsdl4c_binding_get_binding_info
+ * @return the extensibility element id of the main binding extension
+ * element. In case of soap it would be the id of the soap:binding element
+ */
int
axis2_wsdl4c_binding_get_binding_info(void *binding);
/**
- * axis2_wsdl4c_binding_get_port_type
- * @return the wsdl port type associated with this binding
- */
- const void *
+ * axis2_wsdl4c_binding_get_port_type
+ * @return the wsdl port type associated with this binding
+ */
+ void *
axis2_wsdl4c_binding_get_port_type(void *binding);
/**
- * axis2_wsdl4c_binding_get_service_ext_id
- * @return the id of the service element assocaited with this binding
- */
+ * axis2_wsdl4c_binding_get_service_ext_id
+ * @return the id of the service element assocaited with this binding
+ */
int
axis2_wsdl4c_binding_get_service_ext_id(void *binding);
/**
- * axis2_wsdl4c_binding_num_ops
- * @return number of operations in this binding
- */
+ * axis2_wsdl4c_binding_num_ops
+ * @return number of operations in this binding
+ */
int
axis2_wsdl4c_binding_num_ops(void *binding);
/**
- * axis2_wsdl4c_binding_get_operation
- * @param the index of the operation (index ranges from 0 to Ops_.size()-1)
- * @return pointer to the operation
- */
- const void *
+ * axis2_wsdl4c_binding_get_operation
+ * @param the index of the operation (index ranges from 0 to number of
+ * operations)
+ * @return pointer to the operation
+ */
+ void *
axis2_wsdl4c_binding_get_operation(void *binding,
int index);
/**
- * axis2_wsdl4c_binding_get_binding_method
- * @param void
- * @return The namespace of the binding protocol
- * example "http://schemas.xmlsoap.org/wsdl/soap/"
- */
- const char *
+ * axis2_wsdl4c_binding_get_binding_method
+ * @param void
+ * @return The namespace of the binding protocol
+ * example "http://schemas.xmlsoap.org/wsdl/soap/"
+ */
+ char *
axis2_wsdl4c_binding_get_binding_method(void *binding);
/**
- * axis2_wsdl4c_binding_get_op_binding
- * @return The number of binding extensibility elements assocated with each
- * message of the operation whose index is given
- * returns a pointer to a list of extensibility binding ids
- */
+ * axis2_wsdl4c_binding_get_op_binding
+ * @return The number of binding extensibility elements assocated with each
+ * message of the operation whose index is given
+ * returns a pointer to a list of extensibility binding ids
+ */
int
axis2_wsdl4c_binding_get_op_binding(void *binding,
int index,
@@ -131,9 +132,9 @@
int id);
/**
- * Add an operation to the binding .The index returned is to be used
- * to add more bindings to the operation
- */
+ * Add an operation to the binding .The index returned is to be used
+ * to add more bindings to the operation
+ */
int
axis2_wsdl4c_binding_add_operation(void *binding,
void *operation);
@@ -142,7 +143,7 @@
axis2_wsdl4c_binding_add_op_binding(void *binding,
int index,
int oBn);
- void
+ void
axis2_wsdl4c_binding_add_output_binding(void *binding,
int index,
int opBn);
@@ -158,27 +159,26 @@
int fBn);
/**
- * get_name
- * @return name of the Wsdl Element
- */
+ * get_name
+ * @return name of the Wsdl Element
+ */
char *
axis2_wsdl4c_binding_get_name(void *binding);
/**
- * get_documentation
- *
- */
+ * get_documentation
+ *
+ */
char *
axis2_wsdl4c_binding_get_documentation(void *binding);
/**
- *@name get_extensibility_elements/get_extensibility_attributes
- *@brief return the extensibility elements/attributes belonging
- * to a given namespace
- *@params namspace uri
- *@params reference to a vector<int>
- *@return true if any extensibility elements were found
- */
+ *@name get_extensibility_elements/get_extensibility_attributes
+ *@brief return the extensibility elements/attributes belonging
+ * to a given namespace
+ *@params namspace uri
+ *@return true if any extensibility elements were found
+ */
int *
axis2_wsdl4c_binding_get_extensibility_elements(void *binding,
char *namespc);
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_constraint.h
- * @brief defines WSDL4C_CONSTRAINT constants
+ * @brief defines WSDL4C_CONSTRAINT
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,15 +31,15 @@
#endif
/**
- * @defgroup axis2 wsdl4c_constraint constants
- * @ingroup axis2_wsdl4c_constraint
+ * @defgroup axis2 wsdl4c_constraint
+ * @ingroup axis2_wsdl4c
* @{
*/
enum axis2_wsdl4c_constraints
{
- Key,
- Keyref,
- Unique
+ AXIS2_WSDL4C_KEY,
+ AXIS2_WSLD4C_KEYREF,
+ AXIS2_WSDL4C_UNIQUE
};
typedef enum axis2_wsdl4c_constraints axis2_wsdl4c_constraints_t;
@@ -47,16 +47,17 @@
void *
axis2_wsdl4c_constraint_create(axis2_wsdl4c_constraints_t constraints);
- const char *
+ char *
axis2_wsdl4c_constraint_get_name(void *constraint);
void
axis2_wsdl4c_constraint_set_name(void *constraint,
char *name);
- /*axis2_wsdl4c_constraints_t *
- axis2_wsdl4c_constraint_get_constraint_type(void *constraint);
- */
+ /** A
+ * xis2_wsdl4c_constraints_t *
+ * axis2_wsdl4c_constraint_get_constraint_type(void *constraint);
+ */
void
axis2_wsdl4c_constraint_set_selector(void *constraint,
@@ -66,7 +67,7 @@
axis2_wsdl4c_constraint_add_field(void *constraint,
char *xpath);
- const char *
+ char *
axis2_wsdl4c_constraint_selector(void *constraint);
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_element.h
- * @brief defines WSDL4C_ELEMENT constants
+ * @brief defines WSDL4C_ELEMENT
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,8 +31,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_element constants
- * @ingroup axis2_wsdl4c_element
+ * @defgroup axis2 wsdl4c_element
+ * @ingroup axis2_wsdl4c
* @{
*/
void *
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_message.h
- * @brief defines WSDL4C_MESSAGE constants
+ * @brief defines WSDL4C_MESSAGE
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -33,8 +33,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_message constants
- * @ingroup axis2_wsdl4c_message
+ * @defgroup axis2 wsdl4c_message
+ * @ingroup axis2_wsdl4c
* @{
*/
void *
@@ -46,29 +46,30 @@
/**
- * @name axis2_wsdl4c_msg_get_num_parts
- * @return number of parts in the message
- */
+ * @name axis2_wsdl4c_msg_get_num_parts
+ * @return number of parts in the message
+ */
int
axis2_wsdl4c_msg_get_num_parts(void *message);
/**
- * @name axis2_wsdl4c_msg_get_part_index
- * @param the name of the part
- * @return index of the of the part whose name is passed
- * index:0..nParts-1
- */
+ * @name axis2_wsdl4c_msg_get_part_index
+ * @param the name of the part
+ * @return index of the of the part whose name is passed
+ * index:0..number of parts
+ */
int
axis2_wsdl4c_msg_get_part_index(void *message,
char *name);
- /* @name axis2_wsdl4c_msg_get_part_type
- * @param the index of the part index:0..nParts-1
- * @return type id of the part
- * for ex if we have <part name="one" type="xsd:int">
- * the id returned represents xsd:int,the schema type for integers
- */
+ /**
+ * @name axis2_wsdl4c_msg_get_part_type
+ * @param the index of the part index:0..number of parts
+ * @return type id of the part
+ * for ex if we have <part name="one" type="xsd:int">
+ * the id returned represents xsd:int,the schema type for integers
+ */
int
axis2_wsdl4c_msg_get_part_type_a_index(void *message,
int index);
@@ -79,36 +80,39 @@
char *name);
- /* @name axis2_wsdl4c_msg_get_part_element
- * @param the index of the part index:0..nParts-1
- * @return pointer to the Element which the part uses
- * for ex if we have <part name="one" element="ns:elem">
- * a pointer to the Element representing ns:elem is returned
- * I the part's reftype is Type ,0 is returned
- */
- const void *
+ /**
+ * @name axis2_wsdl4c_msg_get_part_element
+ * @param the index of the part index:0..number of parts
+ * @return pointer to the Element which the part uses
+ * for ex if we have <part name="one" element="ns:elem">
+ * a pointer to the Element representing ns:elem is returned
+ * If the part's reftype is Type ,0 is returned
+ */
+ void *
axis2_wsdl4c_msg_get_part_element(void *message,
int index);
- /* @name axis2_wsdl4c_msg_get_message_part
- * @param the index of the part,or the name
- * @return pointer to the Part
- */
- const void*
+ /**
+ * @name axis2_wsdl4c_msg_get_message_part
+ * @param the index of the part,or the name
+ * @return pointer to the Part
+ */
+ void*
axis2_wsdl4c_msg_get_message_part_a_index(void *message,
size_t index);
- const void *
+ void *
axis2_wsdl4c_msg_get_message_part_a_nam(void *message,
char *nam);
- /* @name axis2_wsdl4c_msg_get_part_content_schema_id
- * @param the index of the part,or the name
- * @return schema id to which the part's type or element belongs to
- */
+ /**
+ * @name axis2_wsdl4c_msg_get_part_content_schema_id
+ * @param the index of the part,or the name
+ * @return schema id to which the part's type or element belongs to
+ */
int
axis2_wsdl4c_msg_get_part_content_schema_id_a_index(void *message,
int index);
@@ -141,27 +145,27 @@
int schema_id);
/**
- * get_name
- * @return name of the Wsdl Element
- */
+ * get_name
+ * @return name of the Wsdl Element
+ */
char *
axis2_wsdl4c_msg_get_name(void *message);
/**
- * get_documentation
- *
- */
+ * get_documentation
+ *
+ */
char *
axis2_wsdl4c_msg_get_documentation(void *message);
/**
- *@name get_extensibility_elements/get_extensibility_attributes
- *@brief return the extensibility elements/attributes belonging
- * to a given namespace
- *@params namspace uri
- *@params reference to a vector<int>
- *@return true if any extensibility elements were found
- */
+ *@name get_extensibility_elements/get_extensibility_attributes
+ *@brief return the extensibility elements/attributes belonging
+ * to a given namespace
+ *@params namspace uri
+ *@params reference to a vector<int>
+ *@return true if any extensibility elements were found
+ */
int *
axis2_wsdl4c_msg_get_extensibility_elements(void *message,
char *namespc);
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_operation.h
- * @brief defines WSDL4C_OPERATION constants
+ * @brief defines WSDL4C_OPERATION
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -32,8 +32,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_operation constants
- * @ingroup axis2_wsdl4c_operation
+ * @defgroup axis2 wsdl4c_operation
+ * @ingroup axis2_wsdl4c
* @{
*/
@@ -64,11 +64,11 @@
axis2_wsdl4c_operation_destroy(void *operation);
/**
- * axis2_wsdl4c_operation_get_message
- * @param mesage type , WSDL4C_INPUT, WSDL4C_OUTPUT or WSDL4C_FAULT
- * @return pointer to the message
- */
- const void *
+ * axis2_wsdl4c_operation_get_message
+ * @param mesage type , WSDL4C_INPUT, WSDL4C_OUTPUT or WSDL4C_FAULT
+ * @return pointer to the message
+ */
+ void *
axis2_wsdl4c_operation_get_message(void *operation,
axis2_wsdl4c_msg_type_t type );
@@ -76,17 +76,17 @@
axis2_wsdl4c_operation_get_faults(void *operation);
/**
- * axis2_wsdl4c_operation_get_optype
- * @return type of the operation in,in-out,out,out-in
- */
+ * axis2_wsdl4c_operation_get_optype
+ * @return type of the operation in,in-out,out,out-in
+ */
axis2_wsdl4c_optype_t
axis2_wsdl4c_operation_get_type(void *operation);
/**
- * axis2_wsdl4c_operation_port_type
- * @return The porttype to which this operation belongs
- */
- const void *
+ * axis2_wsdl4c_operation_port_type
+ * @return The port type to which this operation belongs
+ */
+ void *
axis2_wsdl4c_operation_port_type(void *operation);
void
@@ -95,27 +95,27 @@
axis2_wsdl4c_msg_type_t type);
/**
- * get_name
- * @return name of the Wsdl Element
- */
+ * get_name
+ * @return name of the Wsdl Element
+ */
char *
axis2_wsdl4c_operation_get_name(void *operation);
/**
- * get_documentation
- *
- */
+ * get_documentation
+ *
+ */
char *
axis2_wsdl4c_operation_get_documentation(void *operation);
/**
- *@name get_extensibility_elements/get_extensibility_attributes
- *@brief return the extensibility elements/attributes belonging
- * to a given namespace
- *@params namspace uri
- *@params reference to a vector<int>
- *@return true if any extensibility elements were found
- */
+ *@name get_extensibility_elements/get_extensibility_attributes
+ *@brief return the extensibility elements/attributes belonging
+ * to a given namespace
+ *@params namspace uri
+ *@params reference to a vector<int>
+ *@return true if any extensibility elements were found
+ */
int *
axis2_wsdl4c_operation_get_extensibility_elements(void *operation,
char *namespc);
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_parser.h
- * @brief defines WSDLPARSER_WRAPPER constants
+ * @brief defines WSDL PARSER
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,14 +31,14 @@
#endif
/**
- * @defgroup axis2 wsdl4c_parser constants
- * @ingroup axis2_wsdl4c_parser
+ * @defgroup axis2 wsdl4c_parser
+ * @ingroup axis2_wsdl4c
* @{
*/
/**
- *The various states of the Wsdl Parser
- */
+ * The various states of the Wsdl Parser
+ */
enum
{
AXIS2_WSDL4C_PARSER_NONE ,
@@ -64,12 +64,12 @@
};
/**
- * The default constructor for WsdlParser
- * @param input stream for the wsdl file
- * @param output stream for any error outputs
- * @param schemaPath path to directory containing XML schema files
- *
- */
+ * The default constructor for Wsdl Parser
+ * @param input stream for the wsdl file
+ * @param output stream for any error outputs
+ * @param schemaPath path to directory containing XML schema files
+ *
+ */
void *
axis2_wsdl4c_parser_create(char* wsdl_file, char *schema_path);
@@ -87,203 +87,210 @@
* get_next_element processes the next Wsdl ELement in the stream and
* returns the type of the root Wsdl element parsed.
* @return one of START,DEFINITION,DOCUMENTATION,ANNOTATION,
- * TYPES,MESSAGE,PORT_TYPE,BINDING,SERVICE,IMPORT
+ * TYPES,MESSAGE,PORT_TYPE,BINDING,SERVICE,IMPORT
*/
int
axis2_wsdl4c_parser_get_next_element(void *parser);
/**
- * get_event_type
- * returns the type Wsdl element parsed.
- * @return one of the Wsdl event types
- */
+ * get_event_type
+ * returns the type Wsdl element parsed.
+ * @return one of the Wsdl Event types
+ */
int
axis2_wsdl4c_parser_get_event_type(void *parser);
/**
- * get_target_namespace
- * @return target namespace of the wsdl document
- */
- const char *
+ * get_target_namespace
+ * @return target namespace of the wsdl document
+ */
+ char *
axis2_wsdl4c_parser_get_namespace(void *parser);
/**
- * get_name
- * @return name of the wsdl document
- */
- const char *
+ * get_name
+ * @return name of the wsdl document
+ */
+ char *
axis2_wsdl4c_parser_get_name(void *parser);
/**
- * getDocumentation Returns the documentation string for the WSDL file
- * This method must be called after <code>getEventType</code> returns DOCUMENT
- * @return documentation std::string .
- */
- const char *
+ * get_documentation Returns the documentation string for the WSDL file
+ * This method must be called after <code>get_event_type</code> returns
+ * DOCUMENT
+ * @return documentation string .
+ */
+ char *
axis2_wsdl4c_parser_get_documentation(void *parser);
/**
- * get_binding .This method must be called after
- * <code>get_event_type</code> returns BINDING
- * @return reference to the Binding element just parsed.
- */
- const void *
+ * get_binding .This method must be called after
+ * <code>get_event_type</code> returns BINDING
+ * @return reference to the Binding element just parsed.
+ */
+ void *
axis2_wsdl4c_parser_get_binding(void *parser);
/**
- * get_binding_q .
- * @param Qname refering to the binding element
- * @return reference to the Binding element
- */
- const void *
+ * get_binding_q .
+ * @param Qname refering to the binding element
+ * @return reference to the Binding element
+ */
+ void *
axis2_wsdl4c_parser_get_binding_q(void *parser, void *q);
/**
- * get_bindings
- * @return iterator to a list of binding elements
- */
+ * get_bindings
+ * @return iterator to a list of binding elements
+ */
axis2_array_list_t *
axis2_wsdl4c_parser_get_bindings(void *parser);
/**
- * get_services
- * @return iterator to a list of service elements
- */
+ * get_services
+ * @return iterator to a list of service elements
+ */
axis2_array_list_t *
axis2_wsdl4c_parser_get_services(void *parser);
/**
- * get_service .This method must be called after
- * <code>getEventType</code> returns SERVICE
- * @return reference to the Binding element just parsed.
- */
- const void *
+ * get_service .This method must be called after
+ * <code>get_event_type</code> returns SERVICE
+ * @return reference to the Binding element just parsed.
+ */
+ void *
axis2_wsdl4c_parser_get_service(void *parser);
/**
- * get_service.
- * @param Qname refering to the service element
- * @return reference to the Service element
- */
- const void *
+ * get_service.
+ * @param Qname refering to the service element
+ * @return reference to the Service element
+ */
+ void *
axis2_wsdl4c_parser_get_service_a_q(void *parser, void *q);
/**
- * get_port_type .This method must be called after
- * <code>get_event_type</code> returns PORT_TYPE
- * @return reference to the port type element just parsed.
- */
- const void *
+ * get_port_type .This method must be called after
+ * <code>get_event_type</code> returns PORT_TYPE
+ * @return reference to the port type element just parsed.
+ */
+ void *
axis2_wsdl4c_parser_get_port_type(void *parser);
/**
- * get_port_type_q
- * @param Qname refering to the port type element
- * @return reference to the port type element
- */
- const void *
+ * get_port_type_q
+ * @param Qname refering to the port type element
+ * @return reference to the port type element
+ */
+ void *
axis2_wsdl4c_parser_get_port_type_q(void *parser, void *q);
/**
- * get_port_types
- * @return iterators to a container of port types
- */
+ * get_port_types
+ * @return iterators to a container of port types
+ */
axis2_array_list_t *
axis2_wsdl4c_parser_get_port_types(void *parser);
/**
- * get_operations
- * @param Qname refering to the port type element
- * @return Returns the array list of operations
- */
+ * get_operations
+ * @param Qname refering to the port type element
+ * @return Returns the array list of operations
+ */
axis2_array_list_t *
axis2_wsdl4c_parser_get_operations(void *parser, void *port_type_qname);
/**
- * get_operation
- * @param Qname refering to the port type element
- * @param Qname refering to the operation element
- * @return reference to the operation element
- */
- const void *
+ * get_operation
+ * @param Qname refering to the port type element
+ * @param Qname refering to the operation element
+ * @return reference to the operation element
+ */
+ void *
axis2_wsdl4c_parser_get_operation(void *parser, void *port_type_qname, void *q);
/**
- * get_message .
- * This method must be called after
- * <code>get_event_type</code> returns MESSAGE
- * @return reference to the message element just parsed.
- */
- const void *
+ * get_message .
+ * This method must be called after
+ * <code>get_event_type</code> returns MESSAGE
+ * @return reference to the message element just parsed.
+ */
+ void *
axis2_wsdl4c_parser_get_message(void *parser);
/**
- * get_message_q_q .
- * @param Qname of the message element
- * @return reference to the message element
- */
- const void *
+ * get_message_q_q .
+ * @param Qname of the message element
+ * @return reference to the message element
+ */
+ void *
axis2_wsdl4c_parser_get_message_a_q(void *parser, void *q);
/**
- * get_messages
- * @return list of all messages parsed.
- */
+ * get_messages
+ * @return list of all messages parsed.
+ */
void *
axis2_wsdl4c_parser_get_messages(void *parser);
/**
- * get_num_schemas
- * @return number of schemas in the wsdl document
- */
+ * get_num_schemas
+ * @return number of schemas in the wsdl document
+ */
int
axis2_wsdl4c_parser_get_num_schemas(void *parser);
/**
- * get_schema_parser
- * @param target namespace of the schema
- * @return pointer to the schema parser for the namespace
- */
- const void *
- axis2_wsdl4c_parser_get_schema_parser(void *parser, char *target_namespace);
+ * get_schema_parser
+ * @param target namespace of the schema
+ * @return pointer to the schema parser for the namespace
+ */
+ void *
+ axis2_wsdl4c_parser_get_schema_parser_a_namespc(void *parser,
+ char *target_namespace);
+
+ void *
+ axis2_wsdl4c_parser_get_schema_parser_a_schema_id(void *parser,
+ int schema_id);
/**
- * to query the status of wsdl parsing
- */
+ * to query the status of wsdl parsing
+ */
axis2_bool_t
axis2_wsdl4c_parser_status(void *parser);
- const char *
+ char *
axis2_wsdl4c_parser_wsdl_path(void *parser);
/**
- * add_extensibility_handler
- * Registers an extensibility handler
- * for Wsdl extensibility namespaces
- * @param pointer to the instance of WsdlExtension
- */
+ * add_extensibility_handler
+ * Registers an extensibility handler
+ * for Wsdl extensibility namespaces
+ * @param pointer to the instance of Wsdl Extension
+ */
void
axis2_wsdl4c_parser_add_extensibility_handler(void *parser, void *ext);
/**
- * get_extensibility_handler_q_ns returns theextensibility handler
- * for the namespaces
- * @param namespace
- */
+ * get_extensibility_handler_q_ns returns theextensibility handler
+ * for the namespaces
+ * @param namespace
+ */
void *
axis2_wsdl4c_parser_get_extensibility_handler_a_ns(void *parser, char *ns);
- /*
- *return the extensibility handler for the given id.
- * WsdlParser only stores ids for the extensibilit elements.
- */
+ /**
+ * Return the extensibility handler for the given id.
+ * Wsdl Parser only stores ids for the extensibilit elements.
+ */
void *
- axis2_wsdl4c_parser_get_extensibility_handler_a_ext_id(void *parser, int ext_id);
+ axis2_wsdl4c_parser_get_extensibility_handler_a_ext_id(void *parser,
+ int ext_id);
/**
- * set_feature enables one of the features of the parser
- * @return true or false
- */
+ * set_feature enables one of the features of the parser
+ * @return true or false
+ */
/*bool
axis2_wsdl4c_parser_set_feature(void *parser, int feature_id)
{
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_part.h
- * @brief defines WSDL4C_PART constants
+ * @brief defines WSDL4C_PART
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,8 +31,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_part constants
- * @ingroup axis2_wsdl4c_part
+ * @defgroup axis2 wsdl4c_part
+ * @ingroup axis2_wsdl4c
* @{
*/
@@ -52,9 +52,9 @@
axis2_wsdl4c_part_destroy(void *part);
/**
- * @name axis2_wsdl4c_part_ref_type
- * @return number of part ref type
- */
+ * @name axis2_wsdl4c_part_ref_type
+ * @return number of part ref type
+ */
axis2_wsdl4c_part_ref_type_t
axis2_wsdl4c_part_ref_type(void *part);
@@ -64,7 +64,7 @@
int
axis2_wsdl4c_part_type(void *part);
- const void *
+ void *
axis2_wsdl4c_part_element(void *part);
int
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_port_type.h
- * @brief defines WSDL4C_PORT_TYPE constants
+ * @brief defines WSDL4C_PORT_TYPE
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,8 +31,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_port_type constants
- * @ingroup axis2_wsdl4c_port_type
+ * @defgroup axis2 wsdl4c_port_type
+ * @ingroup axis2_wsdl4c
* @{
*/
void *
@@ -45,20 +45,20 @@
axis2_wsdl4c_port_type_get_num_ops(void *port_type);
/**
- * axis2_wsdl4c_port_type_get_operation
- * @param index of the operation index:0..ops.size()-1
- * @return pointer to the Operation
- */
- const void *
+ * axis2_wsdl4c_port_type_get_operation
+ * @param index of the operation index:0..number of operations
+ * @return pointer to the Operation
+ */
+ void *
axis2_wsdl4c_port_type_get_operation_a_index(void *port_type,
int index);
/**
- * axis2_wsdl4c_port_type_get_operation
- * @param name of the operation
- * @return pointer to the Operation
- */
- const void *
+ * axis2_wsdl4c_port_type_get_operation
+ * @param name of the operation
+ * @return pointer to the Operation
+ */
+ void *
axis2_wsdl4c_port_type_get_operation_a_qname(void *port_type,
void *qname);
@@ -67,20 +67,20 @@
axis2_char_t *op_name);
/**
- * axis2_wsdl4c_port_type_get_operations
- * @return axis2_array_list_t
- * returns array list of operations
- */
+ * axis2_wsdl4c_port_type_get_operations
+ * @return axis2_array_list_t
+ * returns array list of operations
+ */
axis2_array_list_t *
axis2_wsdl4c_port_type_get_operations(void *port_type);
/**
- * @name binding
- * @return const Binding*
- * returns Binding associated with the port type
- * which has a binding protocol specified by 'nsp'
- */
- const void *
+ * @name binding
+ * @return const Binding*
+ * returns Binding associated with the port type
+ * which has a binding protocol specified by 'nsp'
+ */
+ void *
axis2_wsdl4c_port_type_binding(void *port_type,
char *nsp);
@@ -93,27 +93,27 @@
void *bn);
/**
- * get_name
- * @return name of the Wsdl Element
- */
+ * get_name
+ * @return name of the Wsdl Element
+ */
char *
axis2_wsdl4c_port_type_get_name(void *port_type);
/**
- * get_documentation
- *
- */
+ * get_documentation
+ *
+ */
char *
axis2_wsdl4c_port_type_get_documentation(void *port_type);
/**
- *@name get_extensibility_elements/get_extensibility_attributes
- *@brief return the extensibility elements/attributes belonging
- * to a given namespace
- *@params namspace uri
- *@params reference to a vector<int>
- *@return true if any extensibility elements were found
- */
+ *@name get_extensibility_elements/get_extensibility_attributes
+ *@brief return the extensibility elements/attributes belonging
+ * to a given namespace
+ *@params namspace uri
+ *@params reference to a vector<int>
+ *@return true if any extensibility elements were found
+ */
int *
axis2_wsdl4c_port_type_get_extensibility_elements(void *port_type,
char *namespc);
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_qname.h
- * @brief defines WSDL4C_QNAME constants
+ * @brief defines WSDL4C_QNAME
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,8 +31,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_qname constants
- * @ingroup axis2_wsdl4c_qname
+ * @defgroup axis2 wsdl4c_qname
+ * @ingroup axis2_wsdl4c
* @{
*/
void *
@@ -48,20 +48,20 @@
axis2_wsdl4c_qname_destroy(void *qname);
/**
- * @name axis2_wsdl4c_get_local_name
- * @return
- */
- const char *
- axis2_wsdl4c_part_get_local_name(void *qname);
+ * @name axis2_wsdl4c_get_localname
+ * @return
+ */
+ char *
+ axis2_wsdl4c_qname_get_localname(void *qname);
- const char *
- axis2_wsdl4c_part_get_prefix(void *qname);
+ char *
+ axis2_wsdl4c_qname_get_prefix(void *qname);
- const char *
- axis2_wsdl4c_part_get_namespace(void *qname);
+ char *
+ axis2_wsdl4c_qname_get_namespace(void *qname);
void
- axis2_wsdl4c_part_set_namespace(void *qname,
+ axis2_wsdl4c_qname_set_namespace(void *qname,
char *uri);
/** @} */
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_service.h
- * @brief defines WSDL4C_SERVICE constants
+ * @brief defines WSDL4C_SERVICE
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,8 +31,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_service constants
- * @ingroup axis2_wsdl4c_service
+ * @defgroup axis2 wsdl4c_service
+ * @ingroup axis2_wsdl4c
* @{
*/
void *
@@ -42,10 +42,10 @@
axis2_wsdl4c_service_destroy(void *service);
/**
- * axis2_wsdl4c_service_add_port
- * @return the extensibility element id of the main binding extension element.
- * In case of soap it would be the id of the soap:binding element
- */
+ * axis2_wsdl4c_service_add_port
+ * @return the extensibility element id of the main binding extension
+ * element. In case of soap it would be the id of the soap:binding element
+ */
void
axis2_wsdl4c_service_add_port(void *service,
char *name,
@@ -65,7 +65,7 @@
* @param port name
* @return binding associated with the port
*/
- const void *
+ void *
axis2_wsdl4c_service_get_port_binding(void *service,
char *name);
@@ -76,27 +76,27 @@
axis2_wsdl4c_service_get_ports(void *service);
/**
- * get_name
- * @return name of the Wsdl Element
- */
+ * get_name
+ * @return name of the Wsdl Element
+ */
char *
axis2_wsdl4c_service_get_name(void *service);
/**
- * get_documentation
- *
- */
+ * get_documentation
+ *
+ */
char *
axis2_wsdl4c_service_get_documentation(void *service);
/**
- *@name get_extensibility_elements/get_extensibility_attributes
- *@brief return the extensibility elements/attributes belonging
- * to a given namespace
- *@params namspace uri
- *@params reference to a vector<int>
- *@return true if any extensibility elements were found
- */
+ *@name get_extensibility_elements/get_extensibility_attributes
+ *@brief return the extensibility elements/attributes belonging
+ * to a given namespace
+ *@params namspace uri
+ *@params reference to a vector<int>
+ *@return true if any extensibility elements were found
+ */
int *
axis2_wsdl4c_service_get_extensibility_elements(void *service,
char *namespc);
Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h Sun Apr 2 21:41:53 2006
@@ -19,7 +19,7 @@
/**
* @file axis2_wsdl4c_soap.h
- * @brief defines WSDL4C_SOAP constants
+ * @brief defines WSDL4C_SOAP
*/
#include <axis2_array_list.h>
#include <axis2_allocator.h>
@@ -31,8 +31,8 @@
#endif
/**
- * @defgroup axis2 wsdl4c_soap constants
- * @ingroup axis2_wsdl4c_soap
+ * @defgroup axis2 wsdl4c_soap
+ * @ingroup axis2_wsdl4c
* @{
*/
#define AXIS2_WSDL4C_HTTP_TRANSPORT "http://schemas.xmlsoap.org/soap/http"
@@ -66,8 +66,8 @@
axis2_wsdl4c_soap_destroy(void *soap);
/**
- * Set path to directory containing XML schemas.
- */
+ * Set path to directory containing XML schemas.
+ */
void
axis2_wsdl4c_soap_set_schema_path(void *soap,
char *schema_path);
@@ -78,10 +78,10 @@
axis2_wsdl4c_style_t
axis2_wsdl4c_soap_get_style(void *soap);
- /*
- Returns the namespace URI of the wsdl
- extensibility elements that it can handle.
- */
+ /**
+ * Returns the namespace URI of the wsdl
+ * extensibility elements that it can handle.
+ */
char *
axis2_wsdl4c_soap_get_namespace(void *soap);
@@ -111,8 +111,8 @@
void *schema_parser);
- /*
- * parent is the Wsdl parent element type under which the extensibility
+ /**
+ * Parent is the Wsdl parent element type under which the extensibility
* element has come
*/
int
@@ -121,14 +121,18 @@
void *xml_pull_parser);
- /* att_name is the extensibility attribute */
+ /**
+ * att_name is the extensibility attribute
+ */
int
axis2_wsdl4c_soap_handle_attribute(void *soap,
int parent,
char *att_name,
void *xml_pull_parser);
- /* returns a valid extensibilty element */
+ /** R
+ * eturns a valid extensibilty element
+ */
int
axis2_wsdl4c_soap_get_element_name(void *soap,
int id);
@@ -144,13 +148,15 @@
int att_num);
- /* returns a valid extensibility attribute */
+ /**
+ * Returns a valid extensibility attribute
+ */
int
axis2_wsdl4c_soap_get_attribute_name(void *soap, int id);
- /*
- * this is the start of all ids that must be used for elems/attributes
+ /**
+ * This is the start of all ids that must be used for elems/attributes
* in this namespace
*/
void
@@ -195,7 +201,7 @@
int elem_id,
char **location);
- /* TODO add more methods like this */
+ /** TODO add more methods like this */
axis2_bool_t
axis2_wsdl4c_soap_is_soap_body(void *soap,
int id);
Modified: webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h Sun Apr 2 21:41:53 2006
@@ -39,13 +39,13 @@
typedef struct axis2_wsdl_msg_ref axis2_wsdl_msg_ref_t;
typedef struct axis2_wsdl_msg_ref_ops axis2_wsdl_msg_ref_ops_t;
-/** @defgroup axis2_wsdl_msg_ref Wsdl Binding Fault
+/** @defgroup axis2_wsdl_msg_ref Wsdl Binding Message Reference
* @ingroup axis2_wsdl
* @{
*/
/**
- * @brief Wsdl Binding Message Reference ops struct
+ * @brief Wsdl Message Reference ops struct
* Encapsulator struct for ops of axis2_wsdl_msg_ref
*/
AXIS2_DECLARE_DATA struct axis2_wsdl_msg_ref_ops
Modified: webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c Sun Apr 2 21:41:53 2006
@@ -49,134 +49,313 @@
* @brief Dynamic Invocation Client struct impl
* Dynamic Invocation Client
*/
-typedef struct axis2_di_client_impl
+typedef struct axis2_diclient_impl
{
- axis2_di_client_t di_client;
+ axis2_diclient_t diclient;
void *parser;
axis2_wsdl_desc_t *wsdl_desc;
-} axis2_di_client_impl_t;
+ axis2_hash_t *op_map;
+ axis2_hash_t *endpoint_map;
+ axis2_hash_t *op_param_map;
+ axis2_char_t *wsa_action;
+ axis2_char_t *address;
+ axis2_char_t *param_namespc;
+ axis2_char_t *param_name;
+
+} axis2_diclient_impl_t;
+
+#define AXIS2_INTF_TO_IMPL(diclient) \
+ ((axis2_diclient_impl_t *)diclient)
-#define AXIS2_INTF_TO_IMPL(di_client) \
- ((axis2_di_client_impl_t *)di_client)
/************************* Function prototypes ********************************/
axis2_status_t AXIS2_CALL
- axis2_di_client_free (axis2_di_client_t *di_client,
+ axis2_diclient_free (axis2_diclient_t *diclient,
axis2_env_t **env);
axis2_status_t AXIS2_CALL
-axis2_di_client_invoke(axis2_di_client_t *di_client,
+axis2_diclient_invoke(axis2_diclient_t *diclient,
axis2_env_t **env,
- axis2_om_node_t *node);
+ axis2_om_node_t *node,
+ axis2_op_t *op);
axis2_status_t AXIS2_CALL
-axis2_di_client_init(axis2_di_client_t *di_client,
+axis2_diclient_init(axis2_diclient_t *diclient,
axis2_env_t **env,
axis2_char_t *wsdl_file_name);
+axis2_status_t *AXIS2_CALL
+axis2_diclient_set_address_and_action_for_op(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname,
+ axis2_qname_t *endpoint_qname);
+
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_endpoints(axis2_diclient_t *diclient,
+ axis2_env_t **env);
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_operations(axis2_diclient_t *diclient,
+ axis2_env_t **env);
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_localname(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname);
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_namespace(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname);
+
+static axis2_status_t
+axis2_diclient_process_param(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname);
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_params(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname);
+
/************************** End of function prototypes ************************/
-axis2_di_client_t * AXIS2_CALL
-axis2_di_client_create (axis2_env_t **env)
+axis2_diclient_t * AXIS2_CALL
+axis2_diclient_create (axis2_env_t **env)
{
- axis2_di_client_impl_t *di_client_impl = NULL;
+ axis2_diclient_impl_t *diclient_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- di_client_impl = (axis2_di_client_impl_t *) AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_di_client_impl_t));
+ diclient_impl = (axis2_diclient_impl_t *) AXIS2_MALLOC((*env)->allocator,
+ sizeof(axis2_diclient_impl_t));
- if(NULL == di_client_impl)
+ if(NULL == diclient_impl)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- di_client_impl->parser = NULL;
- di_client_impl->wsdl_desc = NULL;
- di_client_impl->di_client.ops = NULL;
+ diclient_impl->parser = NULL;
+ diclient_impl->wsdl_desc = NULL;
+ diclient_impl->param_name = NULL;
+ diclient_impl->param_namespc = NULL;
+ diclient_impl->op_map = NULL;
+ diclient_impl->op_param_map = NULL;
+ diclient_impl->endpoint_map = NULL;
+ diclient_impl->wsa_action = NULL;
+ diclient_impl->address= NULL;
+ diclient_impl->diclient.ops = NULL;
- di_client_impl->di_client.ops =
- AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_di_client_ops_t));
- if(NULL == di_client_impl->di_client.ops)
+ diclient_impl->diclient.ops =
+ AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_diclient_ops_t));
+ if(NULL == diclient_impl->diclient.ops)
{
- axis2_di_client_free(&(di_client_impl->di_client), env);
+ axis2_diclient_free(&(diclient_impl->diclient), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- di_client_impl->di_client.ops->free = axis2_di_client_free;
- di_client_impl->di_client.ops->init = axis2_di_client_init;
- di_client_impl->di_client.ops->invoke = axis2_di_client_invoke;
+ diclient_impl->diclient.ops->free = axis2_diclient_free;
+ diclient_impl->diclient.ops->init = axis2_diclient_init;
+ diclient_impl->diclient.ops->invoke = axis2_diclient_invoke;
+ diclient_impl->diclient.ops->set_address_and_action_for_op =
+ axis2_diclient_set_address_and_action_for_op;
+ diclient_impl->diclient.ops->get_endpoints = axis2_diclient_get_endpoints;
+ diclient_impl->diclient.ops->get_operations = axis2_diclient_get_operations;
+ diclient_impl->diclient.ops->get_param_localname =
+ axis2_diclient_get_param_localname;
+ diclient_impl->diclient.ops->get_param_namespace =
+ axis2_diclient_get_param_namespace;
- return &(di_client_impl->di_client);
+ return &(diclient_impl->diclient);
}
/***************************Function implementation****************************/
axis2_status_t AXIS2_CALL
-axis2_di_client_free (axis2_di_client_t *di_client,
+axis2_diclient_free (axis2_diclient_t *diclient,
axis2_env_t **env)
{
- axis2_di_client_impl_t *di_client_impl = NULL;
+ axis2_diclient_impl_t *diclient_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- di_client_impl = AXIS2_INTF_TO_IMPL(di_client);
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+ if(diclient_impl->parser)
+ {
+ axis2_wsdl4c_parser_destroy(diclient_impl->parser);
+ diclient_impl->parser = NULL;
+ }
+
+ if(diclient_impl->wsdl_desc)
+ {
+ AXIS2_WSDL_DESC_FREE(diclient_impl->wsdl_desc, env);
+ diclient_impl->wsdl_desc = NULL;
+ }
+
+ if(diclient_impl->op_map)
+ {
+ axis2_hash_free(diclient_impl->op_map, env);
+ diclient_impl->op_map = NULL;
+ }
+
+ if(diclient_impl->endpoint_map)
+ {
+ axis2_hash_free(diclient_impl->endpoint_map, env);
+ diclient_impl->endpoint_map = NULL;
+ }
- if(di_client_impl->parser)
+ if(diclient_impl->wsa_action)
{
- /* Free wsdl parser */
+ AXIS2_FREE((*env)->allocator, diclient_impl->wsa_action);
+ diclient_impl->wsa_action = NULL;
}
- if(di_client_impl->wsdl_desc)
+ if(diclient_impl->address)
{
- /* Free wsdl parser */
+ AXIS2_FREE((*env)->allocator, diclient_impl->address);
+ diclient_impl->address = NULL;
}
- if(NULL != di_client->ops)
- AXIS2_FREE((*env)->allocator, di_client->ops);
+ if(NULL != diclient->ops)
+ AXIS2_FREE((*env)->allocator, diclient->ops);
- if(di_client_impl)
+ if(diclient_impl)
{
- AXIS2_FREE((*env)->allocator, di_client_impl);
- di_client_impl = NULL;
+ AXIS2_FREE((*env)->allocator, diclient_impl);
+ diclient_impl = NULL;
}
return AXIS2_SUCCESS;
}
axis2_status_t AXIS2_CALL
-axis2_di_client_init(axis2_di_client_t *di_client,
+axis2_diclient_init(axis2_diclient_t *diclient,
axis2_env_t **env,
axis2_char_t *wsdl_file_name)
{
- axis2_di_client_impl_t *di_client_impl = NULL;
+ axis2_diclient_impl_t *diclient_impl = NULL;
axis2_wsdl_pump_t *wsdl_pump = NULL;
-
+ axis2_hash_t *svcs = NULL;
+ axis2_hash_t *endpoints = NULL;
+ axis2_hash_index_t *index1 = NULL;
+ axis2_hash_t *ops = NULL;
+ axis2_wsdl_svc_t *wsdl_svc = NULL;
+ axis2_wsdl_endpoint_t *wsdl_endpoint = NULL;
+ axis2_wsdl_binding_t *wsdl_binding = NULL;
+ axis2_wsdl_interface_t *wsdl_interface = NULL;
+ axis2_wsdl_op_t *wsdl_op = NULL;
+ axis2_svc_t *svc = NULL;
+ axis2_op_t *op = NULL;
+ axis2_qname_t *op_qname = NULL;
+ axis2_char_t *op_name = NULL;
+
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, wsdl_file_name, AXIS2_FAILURE);
- di_client_impl = AXIS2_INTF_TO_IMPL(di_client);
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
- di_client_impl->parser = axis2_wsdl4c_parser_create(wsdl_file_name, "");
- di_client_impl->wsdl_desc = axis2_wsdl_desc_create(env);
- wsdl_pump = axis2_wsdl_pump_create(env, di_client_impl->wsdl_desc, di_client_impl->parser);
+ diclient_impl->parser = axis2_wsdl4c_parser_create(wsdl_file_name, "");
+ diclient_impl->wsdl_desc = axis2_wsdl_desc_create(env);
+ if(!diclient_impl->op_map)
+ {
+ diclient_impl->op_map = axis2_hash_make(env);
+ }
+ if(!diclient_impl->endpoint_map)
+ {
+ diclient_impl->endpoint_map = axis2_hash_make(env);
+ }
+ wsdl_pump = axis2_wsdl_pump_create(env, diclient_impl->wsdl_desc, diclient_impl->parser);
if(!wsdl_pump)
{
return AXIS2_FAILURE;
}
- return AXIS2_WSDL_PUMP_PUMP(wsdl_pump, env);
+ AXIS2_WSDL_PUMP_PUMP(wsdl_pump, env);
+
+ svcs = AXIS2_WSDL_DESC_GET_SVCS(diclient_impl->wsdl_desc, env);
+ for (index1 = axis2_hash_first (svcs, env); index1;
+ index1 = axis2_hash_next (env, index1))
+ {
+ void *value = NULL;
+ axis2_hash_index_t *index2 = NULL;
+
+ axis2_hash_this (index1, NULL, NULL, &value);
+ wsdl_svc = (axis2_wsdl_svc_t *) value;
+ if(!wsdl_svc)
+ {
+ return AXIS2_FAILURE;
+ }
+ svc = axis2_svc_create_with_wsdl_svc(env, wsdl_svc);
+ if(!svc) return AXIS2_FAILURE;
+ endpoints = AXIS2_WSDL_SVC_GET_ENDPOINTS(wsdl_svc, env);
+ for (index2 = axis2_hash_first (endpoints, env); index2;
+ index2 = axis2_hash_next (env, index2))
+ {
+ axis2_hash_index_t *index3 = NULL;
+ void *value = NULL;
+ axis2_qname_t *endpoint_qname = NULL;
+ axis2_char_t *endpoint_qname_str = NULL;
+
+ axis2_hash_this(index2, NULL, NULL, &value);
+ wsdl_endpoint = (axis2_wsdl_endpoint_t *) value;
+ if(!wsdl_endpoint)
+ {
+ return AXIS2_FAILURE;
+ }
+ endpoint_qname = AXIS2_WSDL_ENDPOINT_GET_NAME(wsdl_endpoint, env);
+ endpoint_qname_str = AXIS2_QNAME_TO_STRING(endpoint_qname, env);
+ axis2_hash_set(diclient_impl->endpoint_map, endpoint_qname_str,
+ AXIS2_HASH_KEY_STRING, wsdl_endpoint);
+ AXIS2_WSDL_SVC_SET_ENDPOINT(wsdl_svc, env, wsdl_endpoint);
+ wsdl_binding = AXIS2_WSDL_ENDPOINT_GET_BINDING(wsdl_endpoint, env);
+ if(!wsdl_binding)
+ {
+ return AXIS2_FAILURE;
+ }
+ wsdl_interface = AXIS2_WSDL_BINDING_GET_BOUND_INTERFACE(wsdl_binding, env);
+ if(!wsdl_interface)
+ {
+ return AXIS2_FAILURE;
+ }
+ AXIS2_WSDL_SVC_SET_SVC_INTERFACE(wsdl_svc, env, wsdl_interface);
+ ops = AXIS2_WSDL_INTERFACE_GET_OPS(wsdl_interface, env);
+ for (index3 = axis2_hash_first (ops, env); index3;
+ index3 = axis2_hash_next (env, index3))
+ {
+ void *value = NULL;
+
+ axis2_hash_this(index3, NULL, NULL, &value);
+ wsdl_op = (axis2_wsdl_op_t *) value;
+ if(!wsdl_op)
+ {
+ return AXIS2_FAILURE;
+ }
+ op = axis2_op_create_with_wsdl_op(env, wsdl_op);
+ if(!op)
+ {
+ return AXIS2_FAILURE;
+ }
+ AXIS2_OP_SET_PARENT(op, env, svc);
+ op_qname = AXIS2_OP_GET_QNAME(op, env);
+ op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
+ axis2_hash_set(diclient_impl->op_map, op_name,
+ AXIS2_HASH_KEY_STRING, op);
+ }
+ }
+ }
+ return AXIS2_SUCCESS;
}
axis2_status_t AXIS2_CALL
-axis2_di_client_invoke(axis2_di_client_t *di_client,
+axis2_diclient_invoke(axis2_diclient_t *diclient,
axis2_env_t **env,
- axis2_om_node_t *node)
-{
- axis2_di_client_impl_t *di_client_impl = NULL;
- axis2_char_t *address = NULL;
- axis2_char_t *wsa_action = NULL;
+ axis2_om_node_t *node,
+ axis2_op_t *op)
+{
+ axis2_diclient_impl_t *diclient_impl = NULL;
axis2_char_t *client_home = NULL;
axis2_om_node_t *ret_node = NULL;
axis2_call_t *call = NULL;
@@ -186,30 +365,12 @@
axis2_endpoint_ref_t* endpoint_ref = NULL;
axis2_conf_t *conf = NULL;
axis2_msg_ctx_t *response_ctx = NULL;
- axis2_hash_index_t *index = NULL;
- axis2_hash_t *svcs = NULL;
- axis2_hash_t *endpoints = NULL;
- axis2_hash_t *ops = NULL;
- axis2_hash_t *binding_ops = NULL;
- void *value = NULL;
- axis2_wsdl_svc_t *wsdl_svc = NULL;
- axis2_wsdl_endpoint_t *wsdl_endpoint = NULL;
- axis2_wsdl_binding_t *wsdl_binding = NULL;
- axis2_wsdl_binding_op_t *wsdl_binding_op = NULL;
- axis2_wsdl_interface_t *wsdl_interface = NULL;
- axis2_wsdl_op_t *wsdl_op = NULL;
- axis2_svc_t *svc = NULL;
- axis2_op_t *op = NULL;
- axis2_qname_t *op_qname = NULL;
- axis2_char_t *op_name = NULL;
- axis2_linked_list_t *ext_elements = NULL;
- axis2_wsdl_ext_soap_address_t *soap_address = NULL;
- axis2_wsdl_ext_soap_op_t *soap_op = NULL;
+ axis2_svc_t *svc = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, node, AXIS2_FAILURE);
- di_client_impl = AXIS2_INTF_TO_IMPL(di_client);
-
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
/* Set up deploy folder. It is from the deploy folder, the configuration is picked up
* using the axis2.xml file.
* In this sample client_home points to the Axis2/C default deploy folder. The client_home can
@@ -220,65 +381,7 @@
client_home = AXIS2_GETENV("AXIS2C_HOME");
if (!client_home)
client_home = "../../deploy";
-
- svcs = AXIS2_WSDL_DESC_GET_SVCS(di_client_impl->wsdl_desc, env);
- index = axis2_hash_first (svcs, env);
- axis2_hash_this (index, NULL, NULL, &value);
- wsdl_svc = (axis2_wsdl_svc_t *) value;
- if(!wsdl_svc)
- {
- return AXIS2_FAILURE;
- }
- endpoints = AXIS2_WSDL_SVC_GET_ENDPOINTS(wsdl_svc, env);
- index = axis2_hash_first (endpoints, env);
- axis2_hash_this(index, NULL, NULL, &value);
- wsdl_endpoint = (axis2_wsdl_endpoint_t *) value;
- if(!wsdl_endpoint)
- {
- return AXIS2_FAILURE;
- }
- wsdl_binding = AXIS2_WSDL_ENDPOINT_GET_BINDING(wsdl_endpoint, env);
- if(!wsdl_binding)
- {
- return AXIS2_FAILURE;
- }
- wsdl_interface = AXIS2_WSDL_BINDING_GET_BOUND_INTERFACE(wsdl_binding, env);
- if(!wsdl_interface)
- {
- return AXIS2_FAILURE;
- }
- ops = AXIS2_WSDL_INTERFACE_GET_OPS(wsdl_interface, env);
- index = axis2_hash_first (ops, env);
- axis2_hash_this(index, NULL, NULL, &value);
- wsdl_op = (axis2_wsdl_op_t *) value;
- if(!wsdl_op)
- {
- return AXIS2_FAILURE;
- }
- op = axis2_op_create_with_wsdl_op(env, wsdl_op);
- if(!op)
- {
- return AXIS2_FAILURE;
- }
- op_qname = AXIS2_OP_GET_QNAME(op, env);
- op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
- ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
- wsdl_endpoint->wsdl_component, env);
- soap_address = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
- if(!soap_address) return -1;
- address = AXIS2_WSDL_EXT_SOAP_ADDRESS_GET_LOCATION_URI(soap_address, env);
- printf("address:%s\n", address);
- printf("mep:%s\n", AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env));
- binding_ops = AXIS2_WSDL_BINDING_GET_BINDING_OPS(wsdl_binding, env);
- index = axis2_hash_first (binding_ops, env);
- axis2_hash_this(index, NULL, NULL, &value);
- wsdl_binding_op = (axis2_wsdl_binding_op_t *) value;
- ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
- wsdl_binding_op->extensible_component->wsdl_component, env);
- soap_op = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
- wsa_action = AXIS2_WSDL_EXT_SOAP_OP_GET_SOAP_ACTION(soap_op, env);
- printf("wsa_action:%s\n", wsa_action);
/* create call struct */
call = axis2_call_create(env, NULL, client_home);
mep_client = AXIS2_CALL_GET_BASE(call, env);
@@ -298,13 +401,13 @@
msg_info_headers = AXIS2_MSG_CTX_GET_MSG_INFO_HEADERS(msg_ctx, env);
/* create an axis2_endpoint_ref_t struct with ERP assigned */
- endpoint_ref = axis2_endpoint_ref_create(env, address);
+ endpoint_ref = axis2_endpoint_ref_create(env, diclient_impl->address);
/* Set header parameters, required for WS-Addressing.
* Required only if you need to make use of WS-Addressing.
*/
AXIS2_MSG_INFO_HEADERS_SET_TO(msg_info_headers, env, endpoint_ref);
- AXIS2_MSG_INFO_HEADERS_SET_ACTION(msg_info_headers, env, wsa_action);
+ AXIS2_MSG_INFO_HEADERS_SET_ACTION(msg_info_headers, env, diclient_impl->wsa_action);
AXIS2_CALL_SET_TO(call, env, endpoint_ref);
@@ -315,7 +418,8 @@
env),
env);
- svc = axis2_svc_create_with_wsdl_svc(env, wsdl_svc);
+ /* svc = axis2_svc_create_with_wsdl_svc(env, wsdl_svc);*/
+ svc = AXIS2_OP_GET_PARENT(op, env);
/* echo service is not in the configuration context. We need to create the
* operation and add it to service context. Then add service context into
* configuration context.
@@ -366,3 +470,156 @@
return AXIS2_SUCCESS;
}
+axis2_status_t *AXIS2_CALL
+axis2_diclient_set_address_and_action_for_op(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname,
+ axis2_qname_t *endpoint_qname)
+{
+ axis2_diclient_impl_t *diclient_impl = NULL;
+ axis2_op_t *op = NULL;
+ axis2_svc_t *svc = NULL;
+ axis2_wsdl_endpoint_t *wsdl_endpoint = NULL;
+ axis2_wsdl_binding_t *wsdl_binding = NULL;
+ axis2_char_t *op_name = NULL;
+ axis2_linked_list_t *ext_elements = NULL;
+ axis2_wsdl_ext_soap_address_t *soap_address = NULL;
+ axis2_wsdl_ext_soap_op_t *soap_op = NULL;
+ axis2_char_t *address = NULL;
+ axis2_hash_t *binding_ops = NULL;
+ axis2_hash_index_t *index = NULL;
+ axis2_wsdl_binding_op_t *wsdl_binding_op = NULL;
+ axis2_char_t *wsa_action = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+ AXIS2_PARAM_CHECK((*env)->error, op_qname, NULL);
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+ op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
+ op = axis2_hash_get(diclient_impl->op_map, op_name, AXIS2_HASH_KEY_STRING);
+ svc = AXIS2_OP_GET_PARENT(op, env);
+ wsdl_endpoint = AXIS2_SVC_GET_ENDPOINT(svc, env, endpoint_qname);
+ ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
+ wsdl_endpoint->wsdl_component, env);
+ soap_address = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
+ if(!soap_address) return AXIS2_FAILURE;
+ address = AXIS2_WSDL_EXT_SOAP_ADDRESS_GET_LOCATION_URI(
+ soap_address, env);
+ diclient_impl->address = AXIS2_STRDUP(address, env);
+ if(!diclient_impl->address) return AXIS2_FAILURE;
+ printf("address:%s\n", address);
+ printf("mep:%s\n", AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env));
+ wsdl_binding = AXIS2_WSDL_ENDPOINT_GET_BINDING(wsdl_endpoint, env);
+ binding_ops = AXIS2_WSDL_BINDING_GET_BINDING_OPS(wsdl_binding, env);
+ for (index = axis2_hash_first (binding_ops, env); index;
+ index = axis2_hash_next (env, index))
+ {
+ axis2_wsdl_op_t *op_x = NULL;
+ axis2_qname_t *op_qname_x = NULL;
+ axis2_char_t *op_name_x = NULL;
+ void *value = NULL;
+
+ axis2_hash_this(index, NULL, NULL, &value);
+ wsdl_binding_op = (axis2_wsdl_binding_op_t *) value;
+ op_x = AXIS2_WSDL_BINDING_OP_GET_OP(wsdl_binding_op, env);
+ op_qname_x = AXIS2_WSDL_OP_GET_QNAME(op_x, env);
+ op_name_x = AXIS2_QNAME_GET_LOCALPART(op_qname_x, env);
+ if(0 == AXIS2_STRCMP(op_name, op_name_x))
+ break;
+ }
+ ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
+ wsdl_binding_op->extensible_component->wsdl_component, env);
+ soap_op = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
+ wsa_action = AXIS2_WSDL_EXT_SOAP_OP_GET_SOAP_ACTION(soap_op, env);
+ diclient_impl->wsa_action = AXIS2_STRDUP(wsa_action, env);
+ if(!diclient_impl->wsa_action) return AXIS2_FAILURE;
+ printf("wsa_action:%s\n", wsa_action);
+ return AXIS2_SUCCESS;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_endpoints(axis2_diclient_t *diclient,
+ axis2_env_t **env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+ return AXIS2_INTF_TO_IMPL(diclient)->endpoint_map;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_operations(axis2_diclient_t *diclient,
+ axis2_env_t **env)
+{
+ AXIS2_ENV_CHECK(env, NULL);
+ return AXIS2_INTF_TO_IMPL(diclient)->op_map;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_localname(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname)
+{
+ axis2_diclient_impl_t *diclient_impl = NULL;
+ AXIS2_ENV_CHECK(env, NULL);
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+ if(!diclient_impl->param_name)
+ {
+ axis2_diclient_process_param(diclient, env, op_qname);
+ }
+ return AXIS2_INTF_TO_IMPL(diclient)->param_name;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_namespace(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname)
+{
+ axis2_diclient_impl_t *diclient_impl = NULL;
+ AXIS2_ENV_CHECK(env, NULL);
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+ if(!diclient_impl->param_namespc)
+ {
+ axis2_diclient_process_param(diclient, env, op_qname);
+ }
+ return AXIS2_INTF_TO_IMPL(diclient)->param_namespc;
+}
+
+static axis2_status_t
+axis2_diclient_process_param(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname)
+{
+ axis2_diclient_impl_t *diclient_impl = NULL;
+ axis2_op_t *op = NULL;
+ axis2_char_t *op_name = NULL;
+ axis2_wsdl_msg_ref_t *input_msg = NULL;
+ axis2_qname_t *element_qname = NULL;
+
+ AXIS2_ENV_CHECK(env, NULL);
+ AXIS2_PARAM_CHECK((*env)->error, op_qname, NULL);
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+ op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
+ op = axis2_hash_get(diclient_impl->op_map, op_name, AXIS2_HASH_KEY_STRING);
+ input_msg = AXIS2_OP_GET_INPUT_MSG(op, env);
+ element_qname = AXIS2_WSDL_MSG_REF_GET_ELEMENT(input_msg, env);
+ diclient_impl->param_namespc = AXIS2_QNAME_GET_URI(element_qname, env);
+ diclient_impl->param_name = AXIS2_QNAME_GET_LOCALPART(element_qname, env);
+ printf("element_name:%s\n", diclient_impl->param_name, env);
+ printf("element_namespc:%s\n", diclient_impl->param_namespc, env);
+ return AXIS2_SUCCESS;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_params(axis2_diclient_t *diclient,
+ axis2_env_t **env,
+ axis2_qname_t *op_qname)
+{
+ axis2_diclient_impl_t *diclient_impl = NULL;
+ AXIS2_ENV_CHECK(env, NULL);
+ diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+ /* TODO if not wsdl2 handle multiple params */
+ return NULL;
+}