axis2_callback_recv.h

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 AXIS2_CALLBACK_RECV_H
00019 #define AXIS2_CALLBACK_RECV_H
00020 
00032 #include <axis2_defines.h>
00033 #include <axis2_env.h>
00034 #include <axis2_msg_recv.h>
00035 #include <axis2_callback.h>
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00043 #define AXIS2_CALLBACK_RECV_SVC_NAME "ClientService"
00044 
00046     typedef struct axis2_callback_recv_ops axis2_callback_recv_ops_t;
00048     typedef struct axis2_callback_recv axis2_callback_recv_t;
00049 
00050 
00055     struct axis2_callback_recv_ops
00056     {
00063         axis2_msg_recv_t *(AXIS2_CALL *
00064                 get_base)(
00065                     const axis2_callback_recv_t *callback_recv,
00066                     const axis2_env_t *env);
00067 
00074         axis2_status_t (AXIS2_CALL *
00075                 free)(
00076                     axis2_callback_recv_t *callback_recv,
00077                     const axis2_env_t *env);
00078 
00090         axis2_status_t (AXIS2_CALL *
00091                 add_callback)(
00092                     struct axis2_callback_recv *callback_recv,
00093                     const axis2_env_t *env,
00094                     const axis2_char_t *msg_id,
00095                     axis2_callback_t *callback);
00096     };
00097 
00101     struct axis2_callback_recv
00102     {
00104         axis2_callback_recv_ops_t *ops;
00105     };
00106 
00113     AXIS2_EXTERN axis2_callback_recv_t *AXIS2_CALL
00114     axis2_callback_recv_create(
00115         const axis2_env_t *env);
00116 
00119 #define AXIS2_CALLBACK_RECV_GET_BASE(callback_recv, env) \
00120         ((callback_recv)->ops->get_base(callback_recv, env))
00121 
00124 #define AXIS2_CALLBACK_RECV_FREE(callback_recv, env) \
00125         ((callback_recv)->ops->free(callback_recv, env))
00126 
00129 #define AXIS2_CALLBACK_RECV_ADD_CALLBACK(callback_recv, env, msg_id, callback)\
00130         ((callback_recv)->ops->add_callback(callback_recv, env, msg_id, callback))
00131 
00132 
00134 #ifdef __cplusplus
00135 }
00136 #endif
00137 
00138 #endif                          /* AXIS2_CALLBACK_RECV_H */

Generated on Wed Dec 20 20:34:49 2006 for Axis2/C by  doxygen 1.5.1