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 ma...@apache.org on 2008/12/02 11:48:15 UTC
svn commit: r722420 - in /webservices/axis2/trunk/c/axiom/include:
axiom_caching_callback.h axiom_data_handler.h axiom_mime_parser.h
axiom_mime_part.h axiom_mtom_caching_callback.h
Author: manjula
Date: Tue Dec 2 02:48:14 2008
New Revision: 722420
URL: http://svn.apache.org/viewvc?rev=722420&view=rev
Log:
Fixes for Axis2C-1302 and Axis2C-1301
Added:
webservices/axis2/trunk/c/axiom/include/axiom_mtom_caching_callback.h
Removed:
webservices/axis2/trunk/c/axiom/include/axiom_caching_callback.h
Modified:
webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h
webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h
webservices/axis2/trunk/c/axiom/include/axiom_mime_part.h
Modified: webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h?rev=722420&r1=722419&r2=722420&view=diff
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h (original)
+++ webservices/axis2/trunk/c/axiom/include/axiom_data_handler.h Tue Dec 2 02:48:14 2008
@@ -40,7 +40,8 @@
typedef enum axiom_data_handler_type
{
AXIOM_DATA_HANDLER_TYPE_FILE,
- AXIOM_DATA_HANDLER_TYPE_BUFFER
+ AXIOM_DATA_HANDLER_TYPE_BUFFER,
+ AXIOM_DATA_HANDLER_TYPE_CALLBACK
} axiom_data_handler_type_t;
typedef struct axiom_data_handler axiom_data_handler_t;
@@ -207,6 +208,49 @@
axiom_data_handler_t *data_handler,
const axutil_env_t *env,
axutil_array_list_t *list);
+
+
+ AXIS2_EXTERN axis2_char_t *AXIS2_CALL
+ axiom_data_handler_get_mime_id(
+ axiom_data_handler_t *data_handler,
+ const axutil_env_t *env);
+
+ /**
+ * @param data_handler, a pointer to data handler struct
+ * @param env environment, MUST NOT be NULL.
+ * @param mime id,
+ * @return status code, AXIS2_SUCCESS on success and AXIS2_FAILURE on error.
+ */
+
+ AXIS2_EXTERN axis2_status_t AXIS2_CALL
+ axiom_data_handler_set_mime_id(
+ axiom_data_handler_t *data_handler,
+ const axutil_env_t *env,
+ const axis2_char_t *mime_id);
+
+
+ AXIS2_EXTERN axiom_data_handler_type_t AXIS2_CALL
+ axiom_data_handler_get_data_handler_type(
+ axiom_data_handler_t *data_handler,
+ const axutil_env_t *env);
+
+ AXIS2_EXTERN void AXIS2_CALL
+ axiom_data_handler_set_data_handler_type(
+ axiom_data_handler_t *data_handler,
+ const axutil_env_t *env,
+ axiom_data_handler_type_t data_handler_type);
+
+ AXIS2_EXTERN void *AXIS2_CALL
+ axiom_data_handler_get_user_param(
+ axiom_data_handler_t *data_handler,
+ const axutil_env_t *env);
+
+ AXIS2_EXTERN void AXIS2_CALL
+ axiom_data_handler_set_user_param(
+ axiom_data_handler_t *data_handler,
+ const axutil_env_t *env,
+ void *user_param);
+
/** @} */
Modified: webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h?rev=722420&r1=722419&r2=722420&view=diff
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h (original)
+++ webservices/axis2/trunk/c/axiom/include/axiom_mime_parser.h Tue Dec 2 02:48:14 2008
@@ -162,6 +162,22 @@
axis2_char_t *attachment_dir);
+ /**
+ * Set Caching callback name specified in the axis2.xml
+ * @param mime_parser the pointer for the mime parser struct
+ * @param env Environment. MUST NOT be NULL.
+ * @param callback_name is string containg the dll path
+ * @return VOID
+ */
+
+
+ AXIS2_EXTERN void AXIS2_CALL
+ axiom_mime_parser_set_caching_callback_name(
+ axiom_mime_parser_t *mime_parser,
+ const axutil_env_t *env,
+ axis2_char_t *callback_name);
+
+
/** @} */
Modified: webservices/axis2/trunk/c/axiom/include/axiom_mime_part.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_mime_part.h?rev=722420&r1=722419&r2=722420&view=diff
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_mime_part.h (original)
+++ webservices/axis2/trunk/c/axiom/include/axiom_mime_part.h Tue Dec 2 02:48:14 2008
@@ -49,6 +49,9 @@
/* A file */
AXIOM_MIME_PART_FILE,
+
+ /* User specified callback */
+ AXIOM_MIME_PART_CALLBACK,
/* unknown type*/
AXIOM_MIME_PART_UNKNOWN
@@ -72,6 +75,9 @@
/* This is one from the above defined enum */
axiom_mime_part_type_t type;
+
+ /* This is required in the case of the callback */
+ void *user_param;
};
Added: webservices/axis2/trunk/c/axiom/include/axiom_mtom_caching_callback.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_mtom_caching_callback.h?rev=722420&view=auto
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_mtom_caching_callback.h (added)
+++ webservices/axis2/trunk/c/axiom/include/axiom_mtom_caching_callback.h Tue Dec 2 02:48:14 2008
@@ -0,0 +1,113 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You 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 AXIOM_MTOM_CACHING_CALLBACK_H
+#define AXIOM_MTOM_CACHING_CALLBACK_H
+
+/**
+ * @file axiom_mtom_caching_callback.h
+ * @brief Caching callback for mime parser
+ */
+
+/**
+* @defgroup caching_callback
+* @ingroup axiom
+* @{
+*/
+
+#include <axutil_env.h>
+#include <axutil_param.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /**
+ * Type name for struct axiom_mtom_caching_callback_ops
+ */
+ typedef struct axiom_mtom_caching_callback_ops axiom_mtom_caching_callback_ops_t;
+
+ /**
+ * Type name for struct axiom_mtom_caching_callback
+ */
+ typedef struct axiom_mtom_caching_callback axiom_mtom_caching_callback_t;
+
+
+ /**
+ * init_handler will init the caching storage
+ */
+
+ /**
+ * cache will write the data to the storage
+ */
+
+ /**
+ * close_handler will close the storage
+ */
+
+ struct axiom_mtom_caching_callback_ops
+ {
+ void* (AXIS2_CALL*
+ init_handler)(axiom_mtom_caching_callback_t *mtom_caching_callback,
+ const axutil_env_t* env,
+ axis2_char_t *key);
+
+ axis2_status_t (AXIS2_CALL*
+ cache)(axiom_mtom_caching_callback_t *mtom_caching_callback,
+ const axutil_env_t* env,
+ axis2_char_t *data,
+ int length,
+ void *handler);
+
+ axis2_status_t (AXIS2_CALL*
+ close_handler)(axiom_mtom_caching_callback_t *mtom_caching_callback,
+ const axutil_env_t* env,
+ void *handler);
+
+ axis2_status_t (AXIS2_CALL*
+ free)(axiom_mtom_caching_callback_t *mtom_caching_callback,
+ const axutil_env_t* env);
+ };
+
+ struct axiom_mtom_caching_callback
+ {
+ axiom_mtom_caching_callback_ops_t *ops;
+ axutil_param_t *param;
+ };
+
+ /*************************** Function macros **********************************/
+#define AXIOM_MTOM_CACHING_CALLBACK_INIT_HANDLER(mtom_caching_callback, env, key) \
+ ((mtom_caching_callback)->ops->init_handler(mtom_caching_callback, env, key))
+
+#define AXIOM_MTOM_CACHING_CALLBACK_CACHE(mtom_caching_callback, env, data, length, handler) \
+ ((mtom_caching_callback)->ops->cache(mtom_caching_callback, env, data, length, handler))
+
+#define AXIOM_MTOM_CACHING_CALLBACK_CLOSE_HANDLER(mtom_caching_callback, env, handler) \
+ ((mtom_caching_callback)->ops->close_handler(mtom_caching_callback, env, handler))
+
+#define AXIOM_MTOM_CACHING_CALLBACK_FREE(mtom_caching_callback, env) \
+ ((mtom_caching_callback)->ops->free(mtom_caching_callback, env))
+
+ /** @} */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* AXIOM_MTOM_CACHING_CALLBACK */
+
+