You are viewing a plain text version of this content. The canonical link for it is here.
Posted to sandesha-dev@ws.apache.org by sa...@apache.org on 2006/07/21 08:48:27 UTC

svn commit: r424200 - in /webservices/sandesha/trunk/c: include/sandesha2_module.h src/Makefile.am src/mod_sandesha2.c

Author: sahan
Date: Thu Jul 20 23:48:27 2006
New Revision: 424200

URL: http://svn.apache.org/viewvc?rev=424200&view=rev
Log:
Adding sandesha2 module

Added:
    webservices/sandesha/trunk/c/include/sandesha2_module.h
    webservices/sandesha/trunk/c/src/mod_sandesha2.c
Modified:
    webservices/sandesha/trunk/c/src/Makefile.am

Added: webservices/sandesha/trunk/c/include/sandesha2_module.h
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/include/sandesha2_module.h?rev=424200&view=auto
==============================================================================
--- webservices/sandesha/trunk/c/include/sandesha2_module.h (added)
+++ webservices/sandesha/trunk/c/include/sandesha2_module.h Thu Jul 20 23:48:27 2006
@@ -0,0 +1,52 @@
+/*
+ * 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 SANDESHA2_MODULE_H
+#define SANDESHA2_MODULE_H
+
+/**
+ * @file axis2_addr_mod.h
+ * @brief Axis2 addressing module interface
+ */
+
+#include <axis2_handler.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+AXIS2_EXTERN axis2_module_t * AXIS2_CALL
+mod_sandesha2_create(const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_handler_t* AXIS2_CALL 
+sandesha2_global_in_handler_create(const axis2_env_t *env, 
+                     axis2_qname_t *qname);
+
+AXIS2_EXTERN axis2_handler_t* AXIS2_CALL 
+sandesha2_in_handler_create(const axis2_env_t *env, 
+                     axis2_qname_t *qname);
+
+AXIS2_EXTERN axis2_handler_t* AXIS2_CALL 
+sandesha2_out_handler_create(const axis2_env_t *env, 
+                       axis2_qname_t *qname);
+    
+/** @} */
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif    /* SANDESHA2_MODULE_H */

Modified: webservices/sandesha/trunk/c/src/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/Makefile.am?rev=424200&r1=424199&r2=424200&view=diff
==============================================================================
--- webservices/sandesha/trunk/c/src/Makefile.am (original)
+++ webservices/sandesha/trunk/c/src/Makefile.am Thu Jul 20 23:48:27 2006
@@ -1,7 +1,8 @@
 SUBDIRS = wsrm storage util transport workers client handlers
 noinst_LTLIBRARIES = libsandesha2.la
 
-libsandesha2_la_SOURCES = msg_ctx.c
+libsandesha2_la_SOURCES = msg_ctx.c\
+                          mod_sandesha2.c
 
 INCLUDES = -I$(top_builddir)/include \
             @AXIS2INC@

Added: webservices/sandesha/trunk/c/src/mod_sandesha2.c
URL: http://svn.apache.org/viewvc/webservices/sandesha/trunk/c/src/mod_sandesha2.c?rev=424200&view=auto
==============================================================================
--- webservices/sandesha/trunk/c/src/mod_sandesha2.c (added)
+++ webservices/sandesha/trunk/c/src/mod_sandesha2.c Thu Jul 20 23:48:27 2006
@@ -0,0 +1,150 @@
+/*
+ * 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_module.h>
+#include <sandesha2_module.h>
+#include <sandesha2/sandesha2_property_bean.h>
+
+/******************************************************************************/
+axis2_status_t AXIS2_CALL
+mod_sandesha2_shutdown(axis2_module_t *module,
+                        const axis2_env_t *env);
+
+axis2_status_t AXIS2_CALL
+mod_sandesha2_init(
+        axis2_module_t *module,
+        const axis2_env_t *env,
+        axis2_conf_ctx_t *conf_ctx,
+        axis2_module_desc_t *module_desc);
+
+axis2_status_t AXIS2_CALL
+mod_sandesha2_fill_handler_create_func_map(axis2_module_t *module,
+                                            const axis2_env_t *env);
+/******************************************************************************/
+
+AXIS2_EXTERN axis2_module_t * AXIS2_CALL
+mod_sandesha2_create(const axis2_env_t *env)
+{
+    axis2_module_t *module = NULL;
+    module = AXIS2_MALLOC(env->allocator, 
+        sizeof(axis2_module_t));
+
+    
+    module->ops = AXIS2_MALLOC(
+        env->allocator, sizeof(axis2_module_ops_t));
+
+    module->ops->shutdown = mod_sandesha2_shutdown;
+    module->ops->init = mod_sandesha2_init;
+    module->ops->fill_handler_create_func_map = 
+        mod_sandesha2_fill_handler_create_func_map;
+
+    return module;
+}
+
+axis2_status_t AXIS2_CALL
+mod_sandesha2_init(
+        axis2_module_t *module,
+        const axis2_env_t *env,
+        axis2_conf_ctx_t *conf_ctx,
+        axis2_module_desc_t *module_desc)
+{
+    sandesha2_property_bean_t *property_bean = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, conf_ctx, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK(env->error, module_desc, AXIS2_FAILURE);
+    
+    
+    
+    return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL
+mod_sandesha2_shutdown(axis2_module_t *module,
+                        const axis2_env_t *env)
+{
+    if(module->ops)
+    {
+        AXIS2_FREE(env->allocator, module->ops);
+        module->ops = NULL;
+    }
+
+    if(module->handler_create_func_map)
+    {
+        /* TODO
+         *  do the neccessary clean in hash map
+         */
+        axis2_hash_free(module->handler_create_func_map, env);
+        module->handler_create_func_map = NULL;
+    }
+    
+    if(module)
+    {
+        AXIS2_FREE(env->allocator, module);
+        module = NULL;
+    }
+    return AXIS2_SUCCESS; 
+}
+
+axis2_status_t AXIS2_CALL
+mod_sandesha2_fill_handler_create_func_map(axis2_module_t *module,
+                                            const axis2_env_t *env)
+{
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    
+    module->handler_create_func_map = axis2_hash_make(env);
+    if(!module->handler_create_func_map)
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, 
+            AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+    }
+    axis2_hash_set(module->handler_create_func_map, "SandeshaGlobalInHandler", 
+        AXIS2_HASH_KEY_STRING, sandesha2_global_in_handler_create);
+    axis2_hash_set(module->handler_create_func_map, "SandeshaInHandler", 
+        AXIS2_HASH_KEY_STRING, sandesha2_in_handler_create);
+    axis2_hash_set(module->handler_create_func_map, "SandeshaOutHandler", 
+        AXIS2_HASH_KEY_STRING, sandesha2_out_handler_create);
+    
+    return AXIS2_SUCCESS;
+}
+
+/**
+ * Following block distinguish the exposed part of the dll.
+ */
+
+AXIS2_EXPORT int 
+axis2_get_instance(axis2_module_t **inst,
+                   const axis2_env_t *env)
+{
+   *inst = mod_sandesha2_create(env);
+    if(!(*inst))
+    {
+        return AXIS2_FAILURE;
+    }
+
+    return AXIS2_SUCCESS;
+}
+
+AXIS2_EXPORT int 
+axis2_remove_instance(axis2_module_t *inst,
+                      const axis2_env_t *env)
+{
+    axis2_status_t status = AXIS2_FAILURE;
+   if (inst)
+   {
+        status = mod_sandesha2_shutdown(inst, env);
+    }
+    return status;
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: sandesha-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: sandesha-dev-help@ws.apache.org