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 2005/10/20 04:47:39 UTC

svn commit: r326780 - in /webservices/axis2/trunk/c: ides/anjuta/ include/ modules/core/context/src/ modules/core/description/src/ modules/core/engine/src/

Author: damitha
Date: Wed Oct 19 19:47:09 2005
New Revision: 326780

URL: http://svn.apache.org/viewcvs?rev=326780&view=rev
Log:
Added more code to information model. Updated anjuta project by 
adding 4 files related to information model

Added:
    webservices/axis2/trunk/c/include/axis2_context_msg_context.h
    webservices/axis2/trunk/c/include/axis2_engine_msg_receiver.h
    webservices/axis2/trunk/c/modules/core/context/src/axis2_context_msg_context.c
    webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_msg_receiver.c
Modified:
    webservices/axis2/trunk/c/ides/anjuta/axis2c.prj
    webservices/axis2/trunk/c/include/axis2_description_module.h
    webservices/axis2/trunk/c/include/axis2_description_operation.h
    webservices/axis2/trunk/c/include/axis2_description_parameter.h
    webservices/axis2/trunk/c/include/axis2_description_service.h
    webservices/axis2/trunk/c/include/axis2_description_servicegroup.h
    webservices/axis2/trunk/c/include/axis2_engine_config.h
    webservices/axis2/trunk/c/modules/core/context/src/Makefile.am
    webservices/axis2/trunk/c/modules/core/context/src/Makefile.in
    webservices/axis2/trunk/c/modules/core/description/src/axis2_description_module.c
    webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c
    webservices/axis2/trunk/c/modules/core/description/src/axis2_description_param_include.c
    webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c
    webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c
    webservices/axis2/trunk/c/modules/core/engine/src/Makefile.am
    webservices/axis2/trunk/c/modules/core/engine/src/Makefile.in
    webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c

Modified: webservices/axis2/trunk/c/ides/anjuta/axis2c.prj
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/ides/anjuta/axis2c.prj?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/ides/anjuta/axis2c.prj (original)
+++ webservices/axis2/trunk/c/ides/anjuta/axis2c.prj Wed Oct 19 19:47:09 2005
@@ -114,7 +114,9 @@
 	include/axis2_description_service.h\
 	include/axis2_description_servicegroup.h\
 	modules/core/description/test/description_test.h\
-	include/axis2_core.h
+	include/axis2_core.h\
+	include/axis2_context_msg_context.h\
+	include/axis2_engine_msg_receiver.h
 
 module.source.name=.
 module.source.type=
@@ -167,7 +169,9 @@
 	modules/core/description/src/axis2_description_parameter.c\
 	modules/core/description/src/axis2_description_service.c\
 	modules/core/description/src/axis2_description_servicegroup.c\
-	modules/core/description/test/main.c
+	modules/core/description/test/main.c\
+	modules/core/context/src/axis2_context_msg_context.c\
+	modules/core/engine/src/axis2_engine_msg_receiver.c
 
 module.pixmap.name=.
 module.pixmap.type=

Added: webservices/axis2/trunk/c/include/axis2_context_msg_context.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_context_msg_context.h?rev=326780&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_context_msg_context.h (added)
+++ webservices/axis2/trunk/c/include/axis2_context_msg_context.h Wed Oct 19 19:47:09 2005
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef AXIS2_ENGINE_MSG_CONTEXT_H
+#define AXIS2_ENGINE_MSG_CONTEXT_H
+
+
+/**
+  * @file axis2_context_msg_context.h
+  * @brief axis2 ENGINE CORE msg_context
+  */
+  
+#include <axis2_core.h>
+#include <axis2_context_msg_context.h>
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+
+/** @defgroup axis2_context ENGINE (Axis2 Information model)
+  * @ingroup axis2
+  * @{
+  */
+
+/** @} */ 
+
+/**
+ * @defgroup axis2_context_msg_context ENGINE Msg_context
+ * @ingroup axis2_context 
+ * @{
+ */
+	
+/************************** Start of function macros **************************/
+	
+#define axis2_context_msg_ctx_free(env, msg_ctx) \
+		(axis2_context_msg_ctx_get_ops(env, \
+		msg_ctx)->free (env, msg_ctx));
+
+/************************** End of function macros ****************************/
+
+/************************** Start of function pointers ************************/
+
+typedef axis2_status_t (*axis2_context_msg_ctx_free_t) 
+		(axis2_environment_t *env
+		, axis2_context_msg_ctx_t *msg_ctx);
+
+/**************************** End of function pointers ************************/
+
+struct axis2_context_msg_ctx_ops_s
+{
+	axis2_context_msg_ctx_free_t free;
+};
+
+axis2_context_msg_ctx_t *axis2_context_msg_ctx_get_ops
+		(axis2_environment_t *env
+		, axis2_context_msg_ctx_t *msg_ctx);
+
+axis2_context_msg_ctx_t 
+		*axis2_context_msg_ctx_create (axis2_environment_t *env);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_ENGINE_MSG_CONTEXT_H */

Modified: webservices/axis2/trunk/c/include/axis2_description_module.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_description_module.h?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_description_module.h (original)
+++ webservices/axis2/trunk/c/include/axis2_description_module.h Wed Oct 19 19:47:09 2005
@@ -1,28 +1,57 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #ifndef AXIS2_DESCRIPTION_MODULE_H
 #define AXIS2_DESCRIPTION_MODULE_H
 
-#include <axis2.h>
-#include <axis2_error.h>
-#include <axis2_defines.h>
-#include <axis2_environment.h>
-#include <axis2_allocator.h>
-#include <axis2_string.h>
-#include <axis2_hash.h>
-
+/**
+  * @file axis2_description_module.h
+  * @brief Parameter handling
+  */
+ 
 #include <axis2_qname.h>
 #include <axis2_description_operation.h>
 #include <axis2_engine_config.h>
 #include <axis2_description_param_include.h>
 /*#include <axis2_om_node.h> */
 
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+	
+/** @defgroup axis2_description DESCRIPTION (Axis2 Information model)
+  * @ingroup axis2
+  * @{
+  */
+
+/** @} */ 
+
 /**
- * @file axis2_description_module.h
- * @brief Parameter handling
+ * @defgroup axis2_description_module DESCRIPTION Module
+ * @ingroup axis2_description 
+ * @{
  */
+	
+/***************************** Start of function macros ***********************/	
 
+/***************************** End of function macros *************************/	
 /**
- * <p>This holds the information about a Module. </p>
- */
+  * This holds the information about a Module
+  */
 typedef struct
 {
     axis2_qname_t *qname;
@@ -75,5 +104,8 @@
     *axis2_description_module_get_parent (axis2_description_module_t *
                                            module_desc);
 
-
+/** @} */
+#ifdef __cplusplus
+}
+#endif
 #endif /*AXIS2_DESCRIPTION_MODULE_H */

Modified: webservices/axis2/trunk/c/include/axis2_description_operation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_description_operation.h?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_description_operation.h (original)
+++ webservices/axis2/trunk/c/include/axis2_description_operation.h Wed Oct 19 19:47:09 2005
@@ -1,18 +1,50 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #ifndef AXIS2_DESCRIPTION_OPERATION_H
 #define AXIS2_DESCRIPTION_OPERATION_H
 
-#include <axis2.h>
-#include <axis2_error.h>
-#include <axis2_defines.h>
-#include <axis2_environment.h>
-#include <axis2_allocator.h>
-#include <axis2_string.h>
-#include <axis2_hash.h>
-
+/**
+  * @file axis2_description_operation.h
+  * @brief axis2 DESCRIPTION CORE operation
+  */
+  
 #include <axis2_core.h>
 #include <axis2_description_param_include.h>
 #include <axis2_description_service.h>
+#include <axis2_engine_msg_receiver.h>
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
 
+/** @defgroup axis2_description DESCRIPTION (Axis2 Information model)
+  * @ingroup axis2
+  * @{
+  */
+
+/** @} */ 
+
+/**
+ * @defgroup axis2_description_operation DESCRIPTION Operation
+ * @ingroup axis2_description 
+ * @{
+ */
+	
 /************************** Start of function macros **************************/
 	
 #define axis2_description_operation_free(env, operation_desc) \
@@ -68,11 +100,30 @@
 		(axis2_environment_t *env
 		, axis2_description_operation_t *operation_desc);
 		
+typedef axis2_qname_t *(*axis2_description_operation_get_name_t)
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc);
+
+typedef axis2_status_t (*axis2_description_operation_set_msg_exchange_pattern_t)
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc
+		, axis2_char_t *pattern);
+		
+typedef axis2_char_t *(*axis2_description_operation_get_msg_exchange_pattern_t)
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc);
+		
+typedef axis2_status_t (*axis2_description_operation_set_msg_receiver_t) 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc
+		, axis2_engine_msg_receiver_t *msg_receiver);
+
+typedef axis2_engine_msg_receiver_t *(*axis2_description_operation_get_msg_receiver_t)
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc);		
+		
 /**************************** End of function pointers ************************/
 
 struct axis2_description_operation_ops_s
 {
 	axis2_description_operation_free_t free;
+	
+	axis2_description_operation_get_name_t get_name;
 
 	axis2_description_operation_add_param_t add_param;
 
@@ -83,15 +134,24 @@
 	axis2_description_operation_set_parent_t set_parent;
 
 	axis2_description_operation_get_parent_t get_parent;
+	axis2_description_operation_set_msg_exchange_pattern_t set_msg_exchange_pattern;
+	axis2_description_operation_get_msg_exchange_pattern_t get_msg_exchange_pattern;
+	axis2_description_operation_set_msg_receiver_t set_msg_receiver;
+	axis2_description_operation_get_msg_receiver_t get_msg_receiver;
 };
 
 axis2_description_operation_t *axis2_description_operation_get_ops
-		(axis2_environment_t *env);
+		(axis2_environment_t *env
+		, axis2_description_operation_t *operation_desc);
 
 axis2_description_operation_t 
 		*axis2_description_operation_create (axis2_environment_t *env);
 
 axis2_description_operation_t *axis2_description_operation_create_with_name 
 		(axis2_environment_t *env, axis2_qname_t *name);
-		
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
 #endif /* AXIS2_DESCRIPTION_OPERATION_H */

Modified: webservices/axis2/trunk/c/include/axis2_description_parameter.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_description_parameter.h?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_description_parameter.h (original)
+++ webservices/axis2/trunk/c/include/axis2_description_parameter.h Wed Oct 19 19:47:09 2005
@@ -21,15 +21,8 @@
  * @file axis2_parameter.h
  * @brief axis2 DESCRIPTION CORE parameter
  */
- 
-#include <axis2.h>
-#include <axis2_error.h>
-#include <axis2_defines.h>
-#include <axis2_environment.h>
-#include <axis2_allocator.h>
-#include <axis2_string.h>
-#include <axis2_core.h>
 
+#include <axis2_core.h>
 /*#include <axis2_om_element.h>*/
 
 #ifdef __cplusplus

Modified: webservices/axis2/trunk/c/include/axis2_description_service.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_description_service.h?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_description_service.h (original)
+++ webservices/axis2/trunk/c/include/axis2_description_service.h Wed Oct 19 19:47:09 2005
@@ -1,29 +1,60 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #ifndef AXIS2_DESCRIPTION_SERVICE_H
 #define AXIS2_DESCRIPTION_SERVICE_H
 
-#include <axis2.h>
-#include <axis2_error.h>
-#include <axis2_defines.h>
-#include <axis2_environment.h>
-#include <axis2_allocator.h>
-#include <axis2_string.h>
-#include <axis2_hash.h>
-
+/**
+  * @file axis2_description_service.h
+  * @brief axis2 DESCRIPTION CORE service
+  */
+ 
 #include <axis2_core.h>
 #include <axis2_description_param_include.h>
 #include <axis2_description_operation.h>
 #include <axis2_description_servicegroup.h>
 #include <axis2_qname.h>
-	
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+
+/** @defgroup axis2_description DESCRIPTION (Axis2 Information model)
+  * @ingroup axis2
+  * @{
+  */
+
+/** @} */ 
+
+/**
+ * @defgroup axis2_description_service DESCRIPTION Service
+ * @ingroup axis2_description 
+ * @{
+ */
+
+/**************************** Start of function macros ************************/
+
+/**************************** End of function macros **************************/	
 /**************************** Function pointers *******************************/
+	
 
-typedef axis2_status_t *(*axis2_description_service_free_t)
+typedef axis2_status_t (*axis2_description_service_free_t)
 		(axis2_environment_t *env, axis2_description_service_t *service_desc);
 
-typedef axis2_status_t (*axis2_description_service_add_operation_t) 
-		(axis2_environment_t *env, axis2_description_service_t *service_desc
-		, axis2_description_operation_t *operation_desc);
-
 typedef axis2_status_t (*axis2_description_service_add_param_t)
 		(axis2_environment_t *env, axis2_description_service_t *service_desc
 		, axis2_description_param_t *param);
@@ -35,6 +66,10 @@
 typedef axis2_hash_t *(*axis2_description_service_get_params_t) 
 		(axis2_environment_t *env, axis2_description_service_t *service_desc);
 
+typedef axis2_status_t (*axis2_description_service_add_operation_t) 
+		(axis2_environment_t *env, axis2_description_service_t *service_desc
+		, axis2_description_operation_t *operation_desc);
+		
 typedef axis2_description_operation_t *(*axis2_description_service_get_operation_with_qname_t)
 		(axis2_environment_t *env, axis2_description_service_t *service_desc
 		, axis2_qname_t *operation_name);
@@ -57,6 +92,10 @@
 
 /************************ End function pointers *******************************/
 
+/** @struct axis2_description_service_ops_s
+  * @brief operations for the axis2_description_service_t
+  * This contain all the operations for axis2_description_service struct
+  */
 struct axis2_description_service_ops_s
 {
 	axis2_description_service_free_t free;
@@ -82,11 +121,22 @@
 
 };
 
-/******************************************************************************/
+/** To get the operation struct for axis_description_service_t call this
+  * function
+  * @return operation struct for service
+  */
 axis2_description_service_ops_t * axis2_description_service_get_ops
-		(axis2_environment_t *env);
+		(axis2_environment_t *env, axis2_description_service_t *service_desc);
 
+/** Create a service with qualified name
+  * @param qualified name
+  * @return service struct
+  */
 axis2_description_service_t *axis2_description_service_create_with_qname
-		(axis2_environment_t *env);
+		(axis2_environment_t *env, axis2_qname_t *qname);
 
+/** @} */
+#ifdef __cplusplus
+}
+#endif
 #endif /* AXIS2_DESCRIPTION_SERVICE_H */

Modified: webservices/axis2/trunk/c/include/axis2_description_servicegroup.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_description_servicegroup.h?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_description_servicegroup.h (original)
+++ webservices/axis2/trunk/c/include/axis2_description_servicegroup.h Wed Oct 19 19:47:09 2005
@@ -1,18 +1,49 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #ifndef AXIS2_DESCRIPTION_SERVICEGROUP_H
 #define AXIS2_DESCRIPTION_SERVICEGROUP_H
 
-#include <axis2.h>
-#include <axis2_error.h>
-#include <axis2_defines.h>
-#include <axis2_environment.h>
-#include <axis2_allocator.h>
-#include <axis2_string.h>
-#include <axis2_hash.h>
-
+/**
+ * @file axis2_description_servicegroup.h
+ * @brief axis2 DESCRIPTION CORE servicegroup
+ */
+ 
 #include <axis2_core.h>
 #include <axis2_description_param_include.h>
 #include <axis2_description_service.h>
 
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+
+/** @defgroup axis2_description DESCRIPTION (Axis2 Information model)
+  * @ingroup axis2
+  * @{
+  */
+
+/** @} */ 
+
+/**
+ * @defgroup axis2_description_servicegroup DESCRIPTION Servicegroup
+ * @ingroup axis2_description 
+ * @{
+ */
+	
 /**************************** Function pointers *******************************/
 
 typedef axis2_status_t (*axis2_description_servicegroup_add_service_t)
@@ -26,9 +57,11 @@
 	axis2_description_servicegroup_add_service_t add_service;	
 };
 
-/******************************************************************************/
-
 axis2_description_servicegroup_ops_t *axis2_description_servicegroup_get_ops
 		(axis2_environment_t *env);
 
+/** @} */
+#ifdef __cplusplus
+}
+#endif
 #endif /* AXIS2_DESCRIPTION_SERVICEGROUP_H	*/

Modified: webservices/axis2/trunk/c/include/axis2_engine_config.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_engine_config.h?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_engine_config.h (original)
+++ webservices/axis2/trunk/c/include/axis2_engine_config.h Wed Oct 19 19:47:09 2005
@@ -18,24 +18,33 @@
 #define AXIS2_ENGINE_CONFIG_H
 
 /**
- * @file axis2_engine_config.h
- * @brief Global states of all the Axis can
- *        can be accessed here
- */
+  * @file axis2_engine_config.h
+  * @brief Global states of all the Axis can
+  *        can be accessed here
+  */
 
-#include <axis2.h>
-#include <axis2_error.h>
-#include <axis2_defines.h>
-#include <axis2_environment.h>
-#include <axis2_allocator.h>
-#include <axis2_string.h>
 #include <axis2_core.h>
-
 #include <axis2_description_param_include.h>
 #include <axis2_description_servicegroup.h>
 
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+/** @defgroup axis2_context CONTEXT (Axis2 Information model)
+  * @ingroup axis2
+  * @{
+  */
+
+/** @} */ 
 
 /**
+ * @defgroup axis2_context_ CONTEXT engine_config
+ * @ingroup axis2_engine_config 
+ * @{
+ */
+	
+/**
  * The palce where all the global states of Axis is accessed.
  * All the global states kept in the <code>EngineRegistry</code> and all the
  * Service states kept in the <code>MessageContext</code>. Other runtime
@@ -43,8 +52,10 @@
  */
 
 /**
- * <p>This holds the information about engine. </p>
- */
+  * @struct axis2_engine_config
+  * @brief CONTEXT engine_config operations
+  * This holds the information about engine.
+  */
 typedef struct
 {
     axis2_description_param_include_t * param_include;
@@ -65,4 +76,8 @@
 void axis2_engine_config_remove_service(axis2_engine_config_t *engine_config,
     char *name);
 
+/** @} */
+#ifdef __cplusplus
+}
+#endif
 #endif /* AXIS2_ENGINE_CONFIG_H */

Added: webservices/axis2/trunk/c/include/axis2_engine_msg_receiver.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_engine_msg_receiver.h?rev=326780&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_engine_msg_receiver.h (added)
+++ webservices/axis2/trunk/c/include/axis2_engine_msg_receiver.h Wed Oct 19 19:47:09 2005
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#ifndef AXIS2_ENGINE_MSG_RECEIVER_H
+#define AXIS2_ENGINE_MSG_RECEIVER_H
+
+
+/**
+  * @file axis2_engine_msg_receiver.h
+  * @brief axis2 ENGINE CORE msg_receiver
+  */
+  
+#include <axis2_core.h>
+
+#ifdef __cplusplus
+extern "C" 
+{
+#endif
+
+/** @defgroup axis2_engine ENGINE (Axis2 Information model)
+  * @ingroup axis2
+  * @{
+  */
+
+/** @} */ 
+
+/**
+ * @defgroup axis2_engine_msg_receiver ENGINE Msg_receiver
+ * @ingroup axis2_engine 
+ * @{
+ */
+	
+/************************** Start of function macros **************************/
+	
+#define axis2_engine_msg_receiver_free(env, msg_receiver) \
+		(axis2_engine_msg_receiver_get_ops(env, \
+		msg_receiver)->free (env, msg_receiver));
+
+#define axis2_engine_msg_receiver_receive(env, msg_receiver, msg_ctx) \
+		(axis2_engine_msg_receiver_get_ops(env, \
+		msg_receiver)->receive (env, msg_receiver, msg_ctx));
+
+/************************** End of function macros ****************************/
+
+/************************** Start of function pointers ************************/
+
+typedef axis2_status_t (*axis2_engine_msg_receiver_free_t) 
+		(axis2_environment_t *env
+		, axis2_engine_msg_receiver_t *msg_receiver);
+
+typedef axis2_status_t (*axis2_engine_msg_receiver_receive_t)
+		(axis2_environment_t *env, axis2_engine_msg_receiver_t *msg_receiver
+		, axis2_context_msg_ctx_t *msg_ctx);
+
+/**************************** End of function pointers ************************/
+
+struct axis2_engine_msg_receiver_ops_s
+{
+	axis2_engine_msg_receiver_free_t free;
+	
+	axis2_engine_msg_receiver_receive_t receive;
+};
+
+axis2_engine_msg_receiver_t *axis2_engine_msg_receiver_get_ops
+		(axis2_environment_t *env
+		, axis2_engine_msg_receiver_t *msg_receiver);
+
+axis2_engine_msg_receiver_t 
+		*axis2_engine_msg_receiver_create (axis2_environment_t *env);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIS2_ENGINE_MSG_RECEIVER_H */

Modified: webservices/axis2/trunk/c/modules/core/context/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/context/src/Makefile.am?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/context/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/context/src/Makefile.am Wed Oct 19 19:47:09 2005
@@ -1,6 +1,6 @@
 noinst_LTLIBRARIES = libcontext.la
 AM_CPPFLAGS = $(CPPFLAGS)
-libcontext_la_SOURCES = 
+libcontext_la_SOURCES = axis2_context_msg_context.c
 
 libcontext_la_LIBADD = $(LDFLAGS)
 INCLUDES = -I$(APR_HOME)/include/apr-1 -I${CUTEST_HOME}/include -I../../../xml/guththila/src -I../../../../include 

Modified: webservices/axis2/trunk/c/modules/core/context/src/Makefile.in
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/context/src/Makefile.in?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/context/src/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/core/context/src/Makefile.in Wed Oct 19 19:47:09 2005
@@ -55,9 +55,11 @@
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libcontext_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am_libcontext_la_OBJECTS =
+am_libcontext_la_OBJECTS = axis2_context_msg_context.lo
 libcontext_la_OBJECTS = $(am_libcontext_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/conftools/depcomp
+am__depfiles_maybe = depfiles
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
@@ -68,6 +70,8 @@
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(libcontext_la_SOURCES)
 DIST_SOURCES = $(libcontext_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 AMDEP_FALSE = @AMDEP_FALSE@
@@ -179,12 +183,13 @@
 target_vendor = @target_vendor@
 noinst_LTLIBRARIES = libcontext.la
 AM_CPPFLAGS = $(CPPFLAGS)
-libcontext_la_SOURCES = 
+libcontext_la_SOURCES = axis2_context_msg_context.c
 libcontext_la_LIBADD = $(LDFLAGS)
 INCLUDES = -I$(APR_HOME)/include/apr-1 -I${CUTEST_HOME}/include -I../../../xml/guththila/src -I../../../../include 
 all: all-am
 
 .SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
 $(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
@@ -232,6 +237,29 @@
 distclean-compile:
 	-rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_context_msg_context.Plo@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+@am__fastdepCC_TRUE@	then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -241,12 +269,54 @@
 distclean-libtool:
 	-rm -f libtool
 uninstall-info-am:
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	mkid -fID $$unique
 tags: TAGS
-TAGS:
 
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
 ctags: CTAGS
-CTAGS:
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '    { files[$$0] = 1; } \
+	       END { for (i in files) print i; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
 
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
@@ -309,9 +379,10 @@
 	mostlyclean-am
 
 distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 distclean-am: clean-am distclean-compile distclean-generic \
-	distclean-libtool
+	distclean-libtool distclean-tags
 
 dvi: dvi-am
 
@@ -334,6 +405,7 @@
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
@@ -352,16 +424,17 @@
 
 uninstall-am: uninstall-info-am
 
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	clean-noinstLTLIBRARIES distclean distclean-compile \
-	distclean-generic distclean-libtool distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-exec install-exec-am install-info \
-	install-info-am install-man install-strip installcheck \
-	installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-info-am
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-exec \
+	install-exec-am install-info install-info-am install-man \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags uninstall uninstall-am \
+	uninstall-info-am
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.

Added: webservices/axis2/trunk/c/modules/core/context/src/axis2_context_msg_context.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/context/src/axis2_context_msg_context.c?rev=326780&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/context/src/axis2_context_msg_context.c (added)
+++ webservices/axis2/trunk/c/modules/core/context/src/axis2_context_msg_context.c Wed Oct 19 19:47:09 2005
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include <axis2_context_msg_context.h>
+
+/**
+  * @struct axis2_context_msg_ctx_s
+  * @brief CONTEXT msg_ctx
+  * This holds the information about msg_ctx.
+  */
+struct axis2_context_msg_ctx_s
+{
+	axis2_context_msg_ctx_ops_t *ops;
+};
+	
+/*************************** Function headers *********************************/
+
+axis2_status_t axis2_context_msg_ctx_ops_free (axis2_environment_t *env
+		, axis2_context_msg_ctx_t *msg_ctx);	
+
+
+		
+/************************* End of function headers ****************************/	
+
+axis2_context_msg_ctx_t *axis2_context_msg_ctx_get_ops
+		(axis2_environment_t *env, axis2_context_msg_ctx_t *msg_ctx)
+{
+	if(!msg_ctx)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;	
+	}
+	return (axis2_context_msg_ctx_t *) msg_ctx->ops;
+}
+
+axis2_context_msg_ctx_t *axis2_context_msg_ctx_create 
+		(axis2_environment_t *env)
+{
+	axis2_context_msg_ctx_ops_t *ops = NULL;
+	axis2_context_msg_ctx_t *msg_ctx = 
+		(axis2_context_msg_ctx_t *) axis2_malloc (env->allocator
+		, sizeof (axis2_context_msg_ctx_t));
+	if(!msg_ctx)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}
+	ops = (axis2_context_msg_ctx_ops_t *) axis2_malloc(env->allocator,
+		sizeof(axis2_context_msg_ctx_ops_t));
+	if(!ops)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}	
+	ops->free = axis2_context_msg_ctx_ops_free;
+	
+	msg_ctx->ops = ops;
+						
+	return msg_ctx;
+}
+
+/******************************************************************************/
+
+axis2_status_t axis2_context_msg_ctx_ops_free (axis2_environment_t *env
+		, axis2_context_msg_ctx_t *msg_ctx)
+{
+	if(msg_ctx){
+		free(msg_ctx);
+		return AXIS2_SUCCESS;
+	}
+	return AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED;
+}

Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_module.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_module.c?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_module.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_module.c Wed Oct 19 19:47:09 2005
@@ -1 +1,17 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #include <axis2_description_module.h>

Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_operation.c Wed Oct 19 19:47:09 2005
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #include <axis2_description_operation.h>
 
 /**
@@ -10,8 +26,9 @@
 	axis2_description_operation_ops_t *ops;
 	axis2_description_param_include_t *param_include;
 	axis2_description_service_t *parent;
-	axis2_qname_t *name;	
-
+	axis2_qname_t *name;
+	axis2_engine_msg_receiver_t *msg_receiver;
+	axis2_char_t* msg_exchange_pattern;
 };
 
 	
@@ -40,15 +57,37 @@
 		(axis2_environment_t *env
 		, axis2_description_operation_t *operation_desc);
 		
+axis2_qname_t *axis2_description_operation_ops_get_name
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc);
+
+axis2_status_t axis2_description_operation_ops_set_msg_exchange_pattern 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc
+		, axis2_char_t *pattern);
+		
+axis2_char_t *axis2_description_operation_ops_get_msg_exchange_pattern 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc);
+		
+axis2_status_t axis2_description_operation_ops_set_msg_receiver 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc
+		, axis2_engine_msg_receiver_t *msg_receiver);
+
+axis2_engine_msg_receiver_t *axis2_description_operation_ops_get_msg_receiver 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc);
+		
 /************************* End of function headers ****************************/	
 
 axis2_description_operation_t *axis2_description_operation_get_ops
-		(axis2_environment_t *env)
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc)
 {
-	return NULL;
+	if(!operation_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;	
+	}
+	return (axis2_description_operation_t *) operation_desc->ops;
 }
 
-axis2_description_operation_t *axis2_description_operation_create_local 
+axis2_description_operation_t *axis2_description_operation_create 
 		(axis2_environment_t *env)
 {
 	axis2_description_operation_ops_t *ops = NULL;
@@ -66,37 +105,25 @@
 	{
 		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
 		return NULL;
-	}		
-
+	}	
 	ops->free = axis2_description_operation_ops_free;
 	ops->add_param = axis2_description_operation_ops_add_param;
 	ops->get_param = axis2_description_operation_ops_get_param;
 	ops->get_params = axis2_description_operation_ops_get_params;
-	/*ops->set_parent = axis2_description_operation_ops_set_parent;
-	ops->get_parent = axis2_description_ops_operation_ops_get_parent;*/
+	ops->set_parent = axis2_description_operation_ops_set_parent;
+	ops->get_parent = axis2_description_operation_ops_get_parent;
+	ops->get_name = axis2_description_operation_ops_get_name;
+	ops->set_msg_exchange_pattern 
+		= axis2_description_operation_ops_set_msg_exchange_pattern;
+	ops->get_msg_exchange_pattern
+		= axis2_description_operation_ops_get_msg_exchange_pattern;
+	ops->set_msg_receiver = axis2_description_operation_ops_set_msg_receiver;
+	ops->get_msg_receiver = axis2_description_operation_ops_get_msg_receiver;
 	
 	operation_desc->ops = ops;
-	operation_desc->param_include = NULL;
-	operation_desc->name = NULL;
-	/*operation_desc->parent = NULL;*/
-						
-	return operation_desc;
-}
-
-axis2_description_operation_t *axis2_description_operation_create 
-		(axis2_environment_t *env)
-{
-	axis2_description_param_include_t * param_include = NULL;
-	axis2_description_operation_t *operation_desc 
-		= axis2_description_operation_create_local(env);
 	
-	if(!operation_desc)
-	{
-		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
-		return NULL;
-	}
-			
-	param_include = (axis2_description_param_include_t *)
+	axis2_description_param_include_t *param_include 
+		= (axis2_description_param_include_t *)
 		axis2_description_param_include_create(env);		
 	if(!param_include)
 	{
@@ -105,6 +132,14 @@
 	}
 
 	operation_desc->param_include = param_include;
+	
+	operation_desc->parent = NULL;
+	
+	operation_desc->name = NULL;
+	
+	operation_desc->msg_receiver = NULL;
+	
+	operation_desc->msg_exchange_pattern = MEP_URI_IN_OUT;
 						
 	return operation_desc;
 }
@@ -113,7 +148,7 @@
 		(axis2_environment_t *env, axis2_qname_t *name)
 {
 	axis2_description_operation_t *operation_desc 
-		= axis2_description_operation_create_local(env);
+		= axis2_description_operation_create(env);
 	
 	if(!operation_desc)
 	{
@@ -138,13 +173,17 @@
 		free(operation_desc);
 		return AXIS2_SUCCESS;
 	}
-	return AXIS2_FAILURE;
+	return AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED;
 }	
 	
 axis2_status_t axis2_description_operation_ops_add_param
 		(axis2_environment_t *env, axis2_description_operation_t *operation_desc
 		, axis2_description_param_t *param)
 {
+	if(!operation_desc || !operation_desc->param_include || !param)
+	{
+		return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+	}
 	axis2_hash_set (axis2_description_param_include_get_params(env
 		, operation_desc->param_include), axis2_description_param_get_name(env
 		, param)
@@ -187,22 +226,87 @@
 		, operation_desc->param_include);
 }	
 
-axis2_status_t axis2_description_operation_ops_set_parent(axis2_environment_t *env
-		,axis2_description_operation_t *operation_desc
+axis2_status_t axis2_description_operation_ops_set_parent
+		(axis2_environment_t *env ,axis2_description_operation_t *operation_desc
 		, axis2_description_service_t *service_desc)
 {
-	if(operation_desc && service_desc){
-		operation_desc->parent = service_desc;
-		return AXIS2_SUCCESS;
+	if(!operation_desc || !service_desc)
+	{
+		return AXIS2_ERROR_INVALID_NULL_PARAMETER;
 	}
-	return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+	operation_desc->parent = service_desc;
+	return AXIS2_SUCCESS;
 }
 
 axis2_description_service_t *axis2_description_ops_operation_ops_get_parent
 		(axis2_environment_t *env
 		, axis2_description_operation_t *operation_desc)
 {
-	if(operation_desc)
-		return operation_desc->parent;
-	else return NULL;
+	if(!operation_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;
+	}
+	return operation_desc->parent;
+}
+
+axis2_qname_t *axis2_description_operation_ops_get_name
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc)
+{
+	if(!operation_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;
+	}
+	return operation_desc->name;
+}
+
+axis2_status_t axis2_description_operation_ops_set_msg_exchange_pattern 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc
+		, axis2_char_t *pattern)
+{
+	if(!operation_desc)
+	{
+		return AXIS2_ERROR_INVALID_NULL_PARAMETER;		
+	}
+	operation_desc->msg_exchange_pattern = axis2_strdup(env->string, pattern);
+	if(!operation_desc->msg_exchange_pattern)
+		return AXIS2_ERROR_NO_MEMORY;
+	return AXIS2_SUCCESS;
+}
+
+axis2_char_t *axis2_description_operation_ops_get_msg_exchange_pattern 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc)
+{
+	if(!operation_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;
+	}
+	return operation_desc->msg_exchange_pattern;
+}
+
+axis2_status_t axis2_description_operation_ops_set_msg_receiver 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc
+		, axis2_engine_msg_receiver_t *msg_receiver)
+{
+	if(!operation_desc)
+	{
+		return AXIS2_ERROR_INVALID_NULL_PARAMETER;		
+	}
+	operation_desc->msg_receiver = msg_receiver;
+	if(!operation_desc->msg_receiver)
+		return AXIS2_ERROR_NO_MEMORY;
+	return AXIS2_SUCCESS;
+}
+
+axis2_engine_msg_receiver_t *axis2_description_operation_ops_get_msg_receiver 
+		(axis2_environment_t *env, axis2_description_operation_t *operation_desc)
+{
+	if(!operation_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;
+	}
+	return operation_desc->msg_receiver;
 }

Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_param_include.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_param_include.c?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_param_include.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_param_include.c Wed Oct 19 19:47:09 2005
@@ -119,13 +119,9 @@
 		, axis2_description_param_include_t *param_include
     	, const axis2_description_param_t *param)
 {
-	if(!param_include)
+	if(!param_include || !param)
 	{
 		return AXIS2_ERROR_INVALID_NULL_PARAMETER;
-	}
-	if(!param)
-	{
-		return AXIS2_ERROR_INVALID_NULL_PARAMETER;	
 	}
 	if (!(param_include->params))
 	{                    

Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_service.c Wed Oct 19 19:47:09 2005
@@ -10,7 +10,8 @@
 	axis2_description_service_ops_t *ops;
 	axis2_description_param_include_t *param_include;
 	axis2_description_servicegroup_t *parent;
-	axis2_hash_t *wasaction_opeartionmap;    
+	axis2_hash_t *wasaction_opeartionmap;
+	axis2_qname_t *qname;    
 
 };
 
@@ -19,10 +20,6 @@
 axis2_status_t axis2_description_service_ops_free (axis2_environment_t *env
 		, axis2_description_service_t *service_desc);
 
-axis2_status_t axis2_description_service_ops_add_operation
-		(axis2_environment_t *env, axis2_description_service_t *service_desc
-		, axis2_description_operation_t *operation_desc);
-
 axis2_status_t axis2_description_service_ops_add_param(axis2_environment_t *env
 		, axis2_description_service_t *operation_desc
 		, axis2_description_param_t *param);
@@ -34,6 +31,10 @@
 axis2_hash_t *axis2_description_service_ops_get_params
 		(axis2_environment_t *env, axis2_description_service_t *service_desc);
 
+axis2_status_t axis2_description_service_ops_add_operation
+		(axis2_environment_t *env, axis2_description_service_t *service_desc
+		, axis2_description_operation_t *operation_desc);
+
 axis2_description_operation_t *
 		axis2_description_service_ops_get_operation_with_qname(
 		axis2_environment_t *env, axis2_description_service_t *service_desc
@@ -46,7 +47,7 @@
 
 axis2_hash_t *axis2_description_service_ops_get_operations(
 		axis2_environment_t *env, axis2_description_service_t *service_desc);
-	
+		
 axis2_status_t axis2_description_service_ops_set_parent(axis2_environment_t *env
 		, axis2_description_service_t *service_desc
 		,axis2_description_servicegroup_t *servicegroup_desc);
@@ -57,18 +58,88 @@
 /************************* End of function pointers ***************************/
 
 axis2_description_service_ops_t * axis2_description_service_get_ops
+		(axis2_environment_t *env, axis2_description_service_t *service_desc)
+{
+	if(!service_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;
+	}
+	return service_desc->ops;
+}
+
+axis2_description_service_t *axis2_description_service_create
 		(axis2_environment_t *env)
 {
-	return NULL;
+	axis2_description_service_t *service_desc = (axis2_description_service_t *)
+		axis2_malloc (env->allocator, sizeof(axis2_description_service_t));
+	if(!service_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}
+	axis2_description_service_ops_t *ops = (axis2_description_service_ops_t *)
+		axis2_malloc (env->allocator, sizeof(axis2_description_service_ops_t));
+	if(!ops)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;	
+	}
+	ops->free = axis2_description_service_ops_free;
+	ops->add_operation = axis2_description_service_ops_add_operation;
+	ops->add_param = axis2_description_service_ops_add_param;
+	ops->get_param = axis2_description_service_ops_get_param;
+	ops->get_params = axis2_description_service_ops_get_params;
+	ops->get_operation_with_qname = 
+		axis2_description_service_ops_get_operation_with_qname;
+	ops->get_operation_with_name = 
+		axis2_description_service_ops_get_operation_with_name;
+	ops->get_operations = axis2_description_service_ops_get_operations;
+	ops->set_parent = axis2_description_service_ops_set_parent;
+	ops->get_parent = axis2_description_service_ops_get_parent;
+	
+	service_desc->ops = ops;
+	
+	axis2_description_param_include_t *param_include 
+		= (axis2_description_param_include_t *)
+		axis2_description_param_include_create(env);		
+	if(!param_include)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}
+
+	service_desc->param_include = param_include;
+	
+	service_desc->parent = NULL;
+	
+	service_desc->wasaction_opeartionmap = axis2_hash_make (env);				
+	if(!service_desc->wasaction_opeartionmap)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;			
+	}
+	service_desc->qname = NULL;
+
+	return service_desc;	
 }
 
 axis2_description_service_t *axis2_description_service_create_with_qname
-		(axis2_environment_t *env)
+		(axis2_environment_t *env, axis2_qname_t *qname)
 {
-	return NULL;
+	axis2_description_service_t *service_desc = 
+		axis2_description_service_create(env);
+	if(!service_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}
+	service_desc->qname = axis2_strdup(env->string, qname);
+	
+	return service_desc;
 }
 
-/******************************************************************************/
+/********************** Start of function implementations ********************/
 
 axis2_status_t axis2_description_service_ops_free
 		(axis2_environment_t *env, axis2_description_service_t *service_desc)
@@ -78,31 +149,73 @@
 	return AXIS2_SUCCESS;
 }
 
-axis2_status_t axis2_description_service_ops_add_operation
-		(axis2_environment_t *env, axis2_description_service_t *service_desc
-		, axis2_description_operation_t *operation_desc)
-{
-	return AXIS2_ERROR_INVALID_NULL_PARAMETER;
-}
-
 axis2_status_t axis2_description_service_ops_add_param(axis2_environment_t *env
-		, axis2_description_service_t *operation_desc
+		, axis2_description_service_t *service_desc
 		, axis2_description_param_t *param)
 {
-	return NULL;
+	if(!service_desc || !service_desc->param_include || !param)
+	{
+		return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+	}
+	axis2_hash_set (axis2_description_param_include_get_params(env
+		, service_desc->param_include), axis2_description_param_get_name(env
+		, param)
+		, AXIS2_HASH_KEY_STRING, param);	
+	return AXIS2_SUCCESS;
 }
 
 axis2_description_param_t *axis2_description_service_ops_get_param(
 		axis2_environment_t *env, axis2_description_service_t *service_desc
 		, const axis2_char_t *name)
 {
-	return NULL;
+	if(!service_desc || !service_desc->param_include)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;
+	}
+	axis2_char_t *tempname = axis2_strdup(env->string, name);
+	if(!tempname)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}
+		
+	return (axis2_description_param_t *)(axis2_hash_get 
+		(axis2_description_param_include_get_params(env
+		, service_desc->param_include), tempname, AXIS2_HASH_KEY_STRING));
+	
 }
 
 axis2_hash_t *axis2_description_service_ops_get_params
 		(axis2_environment_t *env, axis2_description_service_t *service_desc)
 {
-	return NULL;
+	if(!service_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;		
+	}
+	return axis2_description_param_include_get_params(env
+		, service_desc->param_include);
+	
+}
+
+axis2_status_t axis2_description_service_ops_add_operation
+		(axis2_environment_t *env, axis2_description_service_t *service_desc
+		, axis2_description_operation_t *operation_desc)
+{
+	if(!service_desc || !operation_desc)
+	{
+		return AXIS2_ERROR_INVALID_NULL_PARAMETER;
+	}
+	if (!(service_desc->wasaction_opeartionmap))
+	{                    
+		service_desc->wasaction_opeartionmap = axis2_hash_make (env);
+	}	
+	axis2_hash_set (service_desc->wasaction_opeartionmap		
+		, axis2_description_operation_get_name(env, operation_desc)
+		, AXIS2_HASH_KEY_STRING, operation_desc);
+	
+	return AXIS2_SUCCESS;
 }
 
 axis2_description_operation_t 
@@ -110,7 +223,11 @@
 		(axis2_environment_t *env, axis2_description_service_t *service_desc
 		, axis2_qname_t *operation_name)
 {
-	return NULL;	
+	if(!service_desc || !service_desc->wasaction_opeartionmap)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;		
+	}
 }	
 
 axis2_description_operation_t 
@@ -118,24 +235,43 @@
 		(axis2_environment_t *env, axis2_description_service_t *service_desc
 		, const axis2_char_t* name)
 {
-	return NULL;
+	if(!service_desc || !service_desc->wasaction_opeartionmap)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;		
+	}
 }
 
 axis2_hash_t *axis2_description_service_ops_get_operations
 		(axis2_environment_t *env, axis2_description_service_t *service_desc)
 {
-	return NULL;
+	if(!service_desc)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;		
+	}
+	return service_desc->wasaction_opeartionmap;
 }
 	
-axis2_status_t axis2_description_operation_ops_set_parent
+axis2_status_t axis2_description_service_ops_set_parent
 		(axis2_environment_t *env, axis2_description_service_t *service_desc
 		,axis2_description_servicegroup_t *servicegroup_desc)
 {
-	return NULL;
+	if(!service_desc || !servicegroup_desc)
+	{
+		return AXIS2_ERROR_INVALID_NULL_PARAMETER;	
+	}
+	service_desc->parent = servicegroup_desc;
+	return AXIS2_SUCCESS;
 }
 
 axis2_description_servicegroup_t *axis2_description_service_ops_get_parent
 		(axis2_environment_t *env, axis2_description_service_t *service_desc)
 {
-	return NULL;
+	if(!service_desc || !service_desc->parent)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;	
+	}
+	return service_desc->parent;
 }

Modified: webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c (original)
+++ webservices/axis2/trunk/c/modules/core/description/src/axis2_description_servicegroup.c Wed Oct 19 19:47:09 2005
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #include <axis2_description_servicegroup.h>
 
 /** @struct axis2_description_servicegroup_s

Modified: webservices/axis2/trunk/c/modules/core/engine/src/Makefile.am
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/src/Makefile.am?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/src/Makefile.am (original)
+++ webservices/axis2/trunk/c/modules/core/engine/src/Makefile.am Wed Oct 19 19:47:09 2005
@@ -1,6 +1,6 @@
 noinst_LTLIBRARIES = libengine.la
 AM_CPPFLAGS = $(CPPFLAGS)
-libengine_la_SOURCES = axis2_engine_config.c
+libengine_la_SOURCES = axis2_engine_config.c axis2_engine_msg_receiver.c
 
 libengine_la_LIBADD = $(LDFLAGS)
 INCLUDES = -I$(APR_HOME)/include/apr-1 -I${CUTEST_HOME}/include -I../../../xml/guththila/src -I../../../../include 

Modified: webservices/axis2/trunk/c/modules/core/engine/src/Makefile.in
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/src/Makefile.in?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/src/Makefile.in (original)
+++ webservices/axis2/trunk/c/modules/core/engine/src/Makefile.in Wed Oct 19 19:47:09 2005
@@ -55,7 +55,8 @@
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libengine_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am_libengine_la_OBJECTS = axis2_engine_config.lo
+am_libengine_la_OBJECTS = axis2_engine_config.lo \
+	axis2_engine_msg_receiver.lo
 libengine_la_OBJECTS = $(am_libengine_la_OBJECTS)
 DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/conftools/depcomp
@@ -183,7 +184,7 @@
 target_vendor = @target_vendor@
 noinst_LTLIBRARIES = libengine.la
 AM_CPPFLAGS = $(CPPFLAGS)
-libengine_la_SOURCES = axis2_engine_config.c
+libengine_la_SOURCES = axis2_engine_config.c axis2_engine_msg_receiver.c
 libengine_la_LIBADD = $(LDFLAGS)
 INCLUDES = -I$(APR_HOME)/include/apr-1 -I${CUTEST_HOME}/include -I../../../xml/guththila/src -I../../../../include 
 all: all-am
@@ -238,6 +239,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_engine_config.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/axis2_engine_msg_receiver.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \

Modified: webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c?rev=326780&r1=326779&r2=326780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c (original)
+++ webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_config.c Wed Oct 19 19:47:09 2005
@@ -1 +1,17 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
 #include <axis2_engine_config.h>

Added: webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_msg_receiver.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_msg_receiver.c?rev=326780&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_msg_receiver.c (added)
+++ webservices/axis2/trunk/c/modules/core/engine/src/axis2_engine_msg_receiver.c Wed Oct 19 19:47:09 2005
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ 
+#include <axis2_engine_msg_receiver.h>
+
+/**
+  * @struct axis2_engine_msg_receiver_s
+  * @brief ENGINE msg_receiver
+  * This holds the information about msg_receiver.
+  */
+struct axis2_engine_msg_receiver_s
+{
+	axis2_engine_msg_receiver_ops_t *ops;
+};
+	
+/*************************** Function headers *********************************/
+
+axis2_status_t axis2_engine_msg_receiver_ops_free (axis2_environment_t *env
+		, axis2_engine_msg_receiver_t *msg_receiver);	
+
+axis2_status_t axis2_engine_msg_receiver_ops_receive (axis2_environment_t *env
+		, axis2_engine_msg_receiver_t *msg_receiver
+		, axis2_context_msg_ctx_t *msg_ctx);
+		
+/************************* End of function headers ****************************/	
+
+axis2_engine_msg_receiver_t *axis2_engine_msg_receiver_get_ops
+		(axis2_environment_t *env, axis2_engine_msg_receiver_t *msg_receiver)
+{
+	if(!msg_receiver)
+	{
+		env->error->errorno = AXIS2_ERROR_INVALID_NULL_PARAMETER;
+		return NULL;	
+	}
+	return (axis2_engine_msg_receiver_t *) msg_receiver->ops;
+}
+
+axis2_engine_msg_receiver_t *axis2_engine_msg_receiver_create 
+		(axis2_environment_t *env)
+{
+	axis2_engine_msg_receiver_ops_t *ops = NULL;
+	axis2_engine_msg_receiver_t *msg_receiver = 
+		(axis2_engine_msg_receiver_t *) axis2_malloc (env->allocator
+		, sizeof (axis2_engine_msg_receiver_t));
+	if(!msg_receiver)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}
+	ops = (axis2_engine_msg_receiver_ops_t *) axis2_malloc(env->allocator,
+		sizeof(axis2_engine_msg_receiver_ops_t));
+	if(!ops)
+	{
+		env->error->errorno = AXIS2_ERROR_NO_MEMORY;
+		return NULL;
+	}	
+	ops->free = axis2_engine_msg_receiver_ops_free;
+	
+	msg_receiver->ops = ops;
+						
+	return msg_receiver;
+}
+
+/******************************************************************************/
+
+axis2_status_t axis2_engine_msg_receiver_ops_free (axis2_environment_t *env
+		, axis2_engine_msg_receiver_t *msg_receiver)
+{
+	if(msg_receiver){
+		free(msg_receiver);
+		return AXIS2_SUCCESS;
+	}
+	return AXIS2_ERROR_UNALLOCATED_MEMEORY_RELEASE_REQUESTED;
+}
+
+axis2_status_t axis2_engine_msg_receive(axis2_environment_t *env
+		, axis2_engine_msg_receiver_t *msg_receiver
+		, axis2_context_msg_ctx_t *msg_ctx)
+{
+	return AXIS2_SUCCESS;
+}