axiom_mtom_sending_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_SENDING_CALLBACK_H 
00019 #define AXIOM_MTOM_SENDING_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_sending_callback_ops axiom_mtom_sending_callback_ops_t;
00044 
00048     typedef struct axiom_mtom_sending_callback axiom_mtom_sending_callback_t;
00049 
00050 
00063     struct axiom_mtom_sending_callback_ops
00064     {
00065         void* (AXIS2_CALL*
00066             init_handler)(axiom_mtom_sending_callback_t *mtom_sending_callback,
00067             const axutil_env_t* env,
00068             void *user_param);
00069 
00070         int (AXIS2_CALL*
00071             load_data)(axiom_mtom_sending_callback_t *mtom_sending_callback,
00072             const axutil_env_t* env,
00073             void *handler,
00074             axis2_char_t **buffer);
00075 
00076         axis2_status_t (AXIS2_CALL*
00077             close_handler)(axiom_mtom_sending_callback_t *mtom_sending_callback,
00078             const axutil_env_t* env,
00079             void *handler);
00080 
00081         axis2_status_t (AXIS2_CALL*
00082             free)(axiom_mtom_sending_callback_t *mtom_sending_callback,
00083             const axutil_env_t* env);
00084     };
00085 
00086     struct axiom_mtom_sending_callback
00087     {
00088         axiom_mtom_sending_callback_ops_t *ops;
00089                 axutil_param_t *param;
00090     };
00091 
00092     /*************************** Function macros **********************************/
00093 #define AXIOM_MTOM_SENDING_CALLBACK_INIT_HANDLER(mtom_sending_callback, env, user_param) \
00094         ((mtom_sending_callback)->ops->init_handler(mtom_sending_callback, env, user_param))
00095 
00096 #define AXIOM_MTOM_SENDING_CALLBACK_LOAD_DATA(mtom_sending_callback, env, handler, buffer) \
00097         ((mtom_sending_callback)->ops->load_data(mtom_sending_callback, env, handler, buffer))
00098 
00099 #define AXIOM_MTOM_SENDING_CALLBACK_CLOSE_HANDLER(mtom_sending_callback, env, handler) \
00100         ((mtom_sending_callback)->ops->close_handler(mtom_sending_callback, env, handler))
00101 
00102 #define AXIOM_MTOM_SENDING_CALLBACK_FREE(mtom_sending_callback, env) \
00103         ((mtom_sending_callback)->ops->free(mtom_sending_callback, env))
00104 
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109 
00110 #endif                          /* AXIOM_MTOM_SENDING_CALLBACK */
00111 
00112 

Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by  doxygen 1.5.3