You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sa...@apache.org on 2005/11/16 09:21:55 UTC

svn commit: r344951 - in /webservices/axis2/trunk/c/include: axis2_disp.h axis2_msg_ctx.h axis2_operation.h axis2_relates_to.h axis2_svc.h

Author: samisa
Date: Wed Nov 16 00:21:43 2005
New Revision: 344951

URL: http://svn.apache.org/viewcvs?rev=344951&view=rev
Log:
Added dispatcher base

Added:
    webservices/axis2/trunk/c/include/axis2_disp.h
Modified:
    webservices/axis2/trunk/c/include/axis2_msg_ctx.h
    webservices/axis2/trunk/c/include/axis2_operation.h
    webservices/axis2/trunk/c/include/axis2_relates_to.h
    webservices/axis2/trunk/c/include/axis2_svc.h

Added: webservices/axis2/trunk/c/include/axis2_disp.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_disp.h?rev=344951&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_disp.h (added)
+++ webservices/axis2/trunk/c/include/axis2_disp.h Wed Nov 16 00:21:43 2005
@@ -0,0 +1,86 @@
+/*
+ * 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_DISP_H
+#define AXIS2_DISP_H
+
+/**
+ * @file axis2_disp.h
+ * @brief Axis2 Dispatcher interface
+ */
+
+#include <axis2_defines.h>
+#include <axis2_qname.h>
+#include <axis2_handler.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+    struct axis2_disp;
+    struct axis2_disp_ops;
+    
+/**
+ * @defgroup axis2_disp Dispatcher
+ * @ingroup axis2_engine
+ * @{
+ */
+
+/**
+ *   \brief Dispatcher operations struct
+ */
+ AXIS2_DECLARE_DATA   typedef struct axis2_disp_ops
+    { 
+        axis2_handler_t* (AXIS2_CALL *get_base) (struct axis2_disp *disp, 
+                                               axis2_env_t **env);
+        axis2_qname_t* (AXIS2_CALL *get_qname) (struct axis2_disp *disp, 
+                                               axis2_env_t **env);
+        axis2_status_t (AXIS2_CALL *set_qname) (struct axis2_disp *disp, 
+                                               axis2_env_t **env, axis2_qname_t *qname);
+        axis2_status_t (AXIS2_CALL *free) (struct axis2_disp *disp, 
+                                               axis2_env_t **env);
+        
+    } axis2_disp_ops_t;
+	
+   /** 
+    * \brief Dispatcher struct
+    */
+    typedef struct axis2_disp
+    {
+        /** Dispatcher related operations */
+        axis2_disp_ops_t *ops;
+    } axis2_disp_t;
+
+
+/**
+ * creates disp struct
+ * @param qname qname, can be NULL
+ */
+AXIS2_DECLARE(axis2_disp_t*) axis2_disp_create(axis2_env_t **env, axis2_qname_t *qname);
+
+#define AXIS2_DISP_GET_BASE(disp, env) ((disp)->ops->get_base(disp, env))
+#define AXIS2_DISP_GET_QNAME(disp, env) ((disp)->ops->get_qname(disp, env))
+#define AXIS2_DISP_SET_QNAME(disp, env, name) ((disp)->ops->set_qname(disp, env, name))
+#define AXIS2_DISP_FREE(disp, env) ((disp)->ops->free(disp, env))
+    
+/** @} */
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif    /* AXIS2_DISP_H */

Modified: webservices/axis2/trunk/c/include/axis2_msg_ctx.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_msg_ctx.h?rev=344951&r1=344950&r2=344951&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_msg_ctx.h (original)
+++ webservices/axis2/trunk/c/include/axis2_msg_ctx.h Wed Nov 16 00:21:43 2005
@@ -37,7 +37,9 @@
  */
     
 typedef struct axis2_msg_ctx_ops axis2_msg_ctx_ops_t;
-typedef struct axis2_msg_ctx axis2_msg_ctx_t;    
+typedef struct axis2_msg_ctx axis2_msg_ctx_t; 
+struct axis2_svc;    
+struct axis2_operation;
     
 /** 
  * @brief Message Context operations struct
@@ -63,7 +65,30 @@
                                          axis2_env_t **env); 
     /** TODO change void* to real return type */
     axis2_relates_to_t* (AXIS2_CALL *get_relates_to)(axis2_msg_ctx_t *msg_ctx,
-                                         axis2_env_t **env); 
+                                         axis2_env_t **env);
+    
+    struct axis2_svc* (AXIS2_CALL *get_svc)(axis2_msg_ctx_t *msg_ctx,
+                                         axis2_env_t **env);
+    axis2_status_t (AXIS2_CALL *set_svc)(axis2_msg_ctx_t *msg_ctx,
+                                         axis2_env_t **env, struct axis2_svc *svc);
+   /**
+    * needs to be implemented by despatchers and be assigned the function pointer
+    * dependancy comes from disp interface
+    */
+    struct axis2_svc* (AXIS2_CALL *find_svc)(axis2_msg_ctx_t *msg_ctx,
+                                         axis2_env_t **env);
+    struct axis2_operation* (AXIS2_CALL *get_operation)(axis2_msg_ctx_t *msg_ctx,
+                                         axis2_env_t **env);
+    axis2_status_t (AXIS2_CALL *set_operation)(axis2_msg_ctx_t *msg_ctx,
+                                         axis2_env_t **env, struct axis2_operation *operation);
+   /**
+    * needs to be implemented by despatchers and be assigned the function pointer
+    * dependancy comes from disp interface
+    * needs to use the current service for searching the operation
+    */
+    struct axis2_operation* (AXIS2_CALL *find_operation)(axis2_msg_ctx_t *msg_ctx,
+                                         axis2_env_t **env);
+    
 };
 
 /** 
@@ -82,8 +107,14 @@
 
 #define AXIS2_MSG_CTX_FREE(msg_ctx, env) ((msg_ctx)->ops->free (msg_ctx, env))
 #define AXIS2_MSG_CTX_SET_PAUSED_PHASE_NAME(msg_ctx, env, name) ((msg_ctx)->ops->set_paused_phase_name(msg_ctx, env, name))
-#define AXIS2_MSG_CTX_IS_PAUSED(msg_ctx, env) ((msg_ctx)->ops->is_paused (msg_ctx, env))
+#define AXIS2_MSG_CTX_IS_PAUSED(msg_ctx, env) ((msg_ctx)->ops->is_paused(msg_ctx, env))
 #define AXIS2_MSG_CTX_GET_RELATES_TO(msg_ctx, env) ((msg_ctx)->ops->get_relates_to(msg_ctx, env))
+#define AXIS2_MSG_CTX_GET_SVC(msg_ctx, env) ((msg_ctx)->ops->get_svc(msg_ctx, env))
+#define AXIS2_MSG_CTX_SET_SVC(msg_ctx, env, svc) ((msg_ctx)->ops->set_svc(msg_ctx, env, svc))
+#define AXIS2_MSG_CTX_FIND_SVC(msg_ctx, env) ((msg_ctx)->ops->find_svc(msg_ctx, env))
+#define AXIS2_MSG_CTX_GET_OPERATION(msg_ctx, env) ((msg_ctx)->ops->get_operation(msg_ctx, env))
+#define AXIS2_MSG_CTX_SET_OPERATION(msg_ctx, env, operation) ((msg_ctx)->ops->set_operation(msg_ctx, env, operation))
+#define AXIS2_MSG_CTX_FIND_OPERATION(msg_ctx, env) ((msg_ctx)->ops->find_operation(msg_ctx, env))
 
 /************************** End of function macros ****************************/    
 

Modified: webservices/axis2/trunk/c/include/axis2_operation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_operation.h?rev=344951&r1=344950&r2=344951&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_operation.h (original)
+++ webservices/axis2/trunk/c/include/axis2_operation.h Wed Nov 16 00:21:43 2005
@@ -39,16 +39,16 @@
   * @{
   */
 
-struct axis2_svc_s;
-struct axis2_msg_recv_s;
-typedef struct axis2_operation_ops_s axis2_operation_ops_t;    
-typedef struct axis2_operation_s axis2_operation_t;    
+struct axis2_svc;
+struct axis2_msg_recv;
+typedef struct axis2_operation_ops axis2_operation_ops_t;    
+typedef struct axis2_operation axis2_operation_t;    
     
 /** 
  * @brief Operation operations struct
  * Encapsulator struct for operations of axis2_operation
  */    
-AXIS2_DECLARE_DATA struct axis2_operation_ops_s
+AXIS2_DECLARE_DATA struct axis2_operation_ops
 {
     /** De-allocate memory
   	 * @return status code
@@ -87,9 +87,9 @@
 	
 	axis2_status_t (AXIS2_CALL *set_parent) (axis2_operation_t *operation, 
                                      axis2_env_t **env,
-                                     struct axis2_svc_s *service_desc);
+                                     struct axis2_svc *service_desc);
 
-	struct axis2_svc_s *(AXIS2_CALL *get_parent) (axis2_operation_t *operation, 
+	struct axis2_svc *(AXIS2_CALL *get_parent) (axis2_operation_t *operation, 
                                             axis2_env_t **env);
 
     axis2_status_t (AXIS2_CALL *set_name) (axis2_operation_t *operation, 
@@ -110,9 +110,9 @@
 
 	axis2_status_t (AXIS2_CALL *set_msg_recv) (axis2_operation_t *operation, 
                                         axis2_env_t **env,
-                                        struct axis2_msg_recv_s *msg_recv);
+                                        struct axis2_msg_recv *msg_recv);
 
-	struct axis2_msg_recv_s *(AXIS2_CALL *get_msg_recv) (axis2_operation_t *operation, 
+	struct axis2_msg_recv *(AXIS2_CALL *get_msg_recv) (axis2_operation_t *operation, 
                                                     axis2_env_t **env);
     
     axis2_hash_t * (AXIS2_CALL *get_component_properties) (
@@ -148,7 +148,7 @@
  * @brief Operaton struct
  *	Axis2 Operation   
  */  
-AXIS2_DECLARE_DATA struct axis2_operation_s
+AXIS2_DECLARE_DATA struct axis2_operation
 {
 	axis2_operation_ops_t *ops;
 };

Modified: webservices/axis2/trunk/c/include/axis2_relates_to.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_relates_to.h?rev=344951&r1=344950&r2=344951&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_relates_to.h (original)
+++ webservices/axis2/trunk/c/include/axis2_relates_to.h Wed Nov 16 00:21:43 2005
@@ -23,8 +23,6 @@
  */
 
 #include <axis2_defines.h>
-#include <axis2_qname.h>
-#include <axis2_handler.h>
 
 #ifdef __cplusplus
 extern "C"
@@ -50,14 +48,14 @@
          *
          * @return
          */
-        axis2_char_t* (AXIS2_CALL *get_value)(struct axis_relates_to *relates_to, axis2_env_t **env);
+        axis2_char_t* (AXIS2_CALL *get_value)(struct axis2_relates_to *relates_to, axis2_env_t **env);
 
         /**
          * Method set_value
          *
          * @param value
          */
-        axis2_status_t (AXIS2_CALL *set_value)(struct axis_relates_to *relates_to, axis2_env_t **env, 
+        axis2_status_t (AXIS2_CALL *set_value)(struct axis2_relates_to *relates_to, axis2_env_t **env, 
                                  axis2_char_t * value);
 
         /**
@@ -65,14 +63,14 @@
          *
          * @return
          */
-        axis2_char_t* (AXIS2_CALL *get_relationship_type)(struct axis_relates_to *relates_to, axis2_env_t **env);
+        axis2_char_t* (AXIS2_CALL *get_relationship_type)(struct axis2_relates_to *relates_to, axis2_env_t **env);
 
         /**
          * Method set_relationship_type
          *
          * @param relationship_type
          */
-        axis2_status_t (AXIS2_CALL *set_relationship_type)(struct axis_relates_to *relates_to, axis2_env_t **env, 
+        axis2_status_t (AXIS2_CALL *set_relationship_type)(struct axis2_relates_to *relates_to, axis2_env_t **env, 
                                              axis2_char_t *relationship_type);
         
        /**

Modified: webservices/axis2/trunk/c/include/axis2_svc.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_svc.h?rev=344951&r1=344950&r2=344951&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_svc.h (original)
+++ webservices/axis2/trunk/c/include/axis2_svc.h Wed Nov 16 00:21:43 2005
@@ -41,29 +41,29 @@
   * @{
   */
 
-struct axis2_svc_grp_s;
-struct axis2_operation_s;    
-typedef struct axis2_svc_ops_s axis2_svc_ops_t;   
-typedef struct axis2_svc_s axis2_svc_t;
+struct axis2_svc_grp;
+struct axis2_operation;    
+typedef struct axis2_svc_ops axis2_svc_ops_t;   
+typedef struct axis2_svc axis2_svc_t;
     
 /** 
  * @brief Service operations struct
  * Encapsulator struct for operations of axis2_svc
  */    
-struct axis2_svc_ops_s
+struct axis2_svc_ops
 {
 	axis2_status_t (AXIS2_CALL *free) (axis2_svc_t *svc, axis2_env_t **env);
 
 	axis2_status_t (AXIS2_CALL *add_operation) (axis2_svc_t *svc, 
                                                 axis2_env_t **env,
-	 	                                        struct axis2_operation_s *operation);
+	 	                                        struct axis2_operation *operation);
 
-	struct axis2_operation_s *(AXIS2_CALL *get_operation_with_qname) (
+	struct axis2_operation *(AXIS2_CALL *get_operation_with_qname) (
                                                   axis2_svc_t *svc, 
                                                   axis2_env_t **env,
 	 	                                          axis2_qname_t *operation_name);
 
-	struct axis2_operation_s *(AXIS2_CALL *get_operation_with_name) (
+	struct axis2_operation *(AXIS2_CALL *get_operation_with_name) (
                                             axis2_svc_t *svc, 
                                             axis2_env_t **env,
 	 	                                    const axis2_char_t * operation_name);
@@ -73,9 +73,9 @@
 
 	axis2_status_t (AXIS2_CALL *set_parent) (axis2_svc_t *svc, 
                                                 axis2_env_t **env,
-	 	                                        struct axis2_svc_grp_s *svc_grp);
+	 	                                        struct axis2_svc_grp *svc_grp);
 
-	struct axis2_svc_grp_s *(AXIS2_CALL *get_parent) (axis2_svc_t *svc, 
+	struct axis2_svc_grp *(AXIS2_CALL *get_parent) (axis2_svc_t *svc, 
                                                 axis2_env_t **env);
 	
     axis2_status_t (AXIS2_CALL *set_name) (const axis2_svc_t *svc,