# axiom_mtom_caching_callback.h

Go to the documentation of this file.

    00001 /*
    00002 * Licensed to the Apache Software Foundation (ASF) under one or more
    00003 * contributor license agreements.  See the NOTICE file distributed with
    00004 * this work for additional information regarding copyright ownership.
    00005 * The ASF licenses this file to You under the Apache License, Version 2.0
    00006 * (the "License"); you may not use this file except in compliance with
    00007 * the License.  You may obtain a copy of the License at
    00008 *
    00009 *      http://www.apache.org/licenses/LICENSE-2.0
    00010 *
    00011 * Unless required by applicable law or agreed to in writing, software
    00012 * distributed under the License is distributed on an "AS IS" BASIS,
    00013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00014 * See the License for the specific language governing permissions and
    00015 * limitations under the License.
    00016 */
    00017
    00018 #ifndef AXIOM_MTOM_CACHING_CALLBACK_H
    00019 #define AXIOM_MTOM_CACHING_CALLBACK_H
    00020
    00032 #include <axutil_env.h>
    00033 #include <axutil_param.h>
    00034
    00035 #ifdef __cplusplus
    00036 extern "C"
    00037 {
    00038 #endif
    00039
    00043     typedef struct axiom_mtom_caching_callback_ops axiom_mtom_caching_callback_ops_t;
    00044
    00048     typedef struct axiom_mtom_caching_callback axiom_mtom_caching_callback_t;
    00049
    00050
    00063     struct axiom_mtom_caching_callback_ops
    00064     {
    00065         void* (AXIS2_CALL*
    00066             init_handler)(axiom_mtom_caching_callback_t *mtom_caching_callback,
    00067             const axutil_env_t* env,
    00068             axis2_char_t *key);
    00069
    00070         axis2_status_t (AXIS2_CALL*
    00071             cache)(axiom_mtom_caching_callback_t *mtom_caching_callback,
    00072             const axutil_env_t* env,
    00073             axis2_char_t *data,
    00074             int length,
    00075             void *handler);
    00076
    00077         axis2_status_t (AXIS2_CALL*
    00078             close_handler)(axiom_mtom_caching_callback_t *mtom_caching_callback,
    00079             const axutil_env_t* env,
    00080             void *handler);
    00081
    00082         axis2_status_t (AXIS2_CALL*
    00083             free)(axiom_mtom_caching_callback_t *mtom_caching_callback,
    00084             const axutil_env_t* env);
    00085     };
    00086
    00087     struct axiom_mtom_caching_callback
    00088     {
    00089         axiom_mtom_caching_callback_ops_t *ops;
    00090                 axutil_param_t *param;
    00091         void *user_param;
    00092     };
    00093
    00094     /*************************** Function macros **********************************/
    00095 #define AXIOM_MTOM_CACHING_CALLBACK_INIT_HANDLER(mtom_caching_callback, env, key) \
    00096         ((mtom_caching_callback)->ops->init_handler(mtom_caching_callback, env, key))
    00097
    00098 #define AXIOM_MTOM_CACHING_CALLBACK_CACHE(mtom_caching_callback, env, data, length, handler) \
    00099         ((mtom_caching_callback)->ops->cache(mtom_caching_callback, env, data, length, handler))
    00100
    00101 #define AXIOM_MTOM_CACHING_CALLBACK_CLOSE_HANDLER(mtom_caching_callback, env, handler) \
    00102         ((mtom_caching_callback)->ops->close_handler(mtom_caching_callback, env, handler))
    00103
    00104 #define AXIOM_MTOM_CACHING_CALLBACK_FREE(mtom_caching_callback, env) \
    00105         ((mtom_caching_callback)->ops->free(mtom_caching_callback, env))
    00106
    00108 #ifdef __cplusplus
    00109 }
    00110 #endif
    00111
    00112 #endif                          /* AXIOM_MTOM_CACHING_CALLBACK */
    00113
    00114