Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

axis2_msg_recv.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *      http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00017 #ifndef AXIS2_MSG_RECV_H
00018 #define AXIS2_MSG_RECV_H
00019 
00026 #ifdef __cplusplus
00027 extern "C"
00028 {
00029 #endif
00030     
00036 #include <axis2_defines.h>
00037 #include <axis2_const.h>
00038 #include <axis2_svc_skeleton.h>
00039 #include <axis2_msg_ctx.h>
00040 #include <axis2_op_ctx.h>
00041 #include <axis2_svr_callback.h>    
00042 
00043 #define AXIS2_SUCCESS 1
00044 #define AXIS2_FAILURE 0
00045 
00046 struct axis2_msg_ctx;
00047 typedef struct axis2_msg_recv axis2_msg_recv_t;
00048 typedef struct axis2_msg_recv_ops axis2_msg_recv_ops_t;
00049 
00054 struct axis2_msg_recv_ops
00055 {
00060     axis2_status_t (AXIS2_CALL *
00061     free) (axis2_msg_recv_t *msg_recv,
00062             const axis2_env_t *env);
00063 
00075     axis2_status_t (AXIS2_CALL *
00076     receive) (axis2_msg_recv_t *msg_recv,
00077                 const axis2_env_t *env,
00078                 struct axis2_msg_ctx *in_msg_ctx,
00079                 void *callback_recv_param);
00085     axis2_status_t (AXIS2_CALL *
00086     receive_sync) (axis2_msg_recv_t *msg_recv,
00087                 const axis2_env_t *env,
00088                 struct axis2_msg_ctx *in_msg_ctx,
00089                 void *callback_recv_param);
00090 
00096     axis2_status_t (AXIS2_CALL *
00097     receive_async) (axis2_msg_recv_t *msg_recv,
00098                 const axis2_env_t *env,
00099                 struct axis2_msg_ctx *in_msg_ctx,
00100                 void *callback_recv_param);                
00101     
00107     axis2_status_t (AXIS2_CALL *
00108     invoke_in_business_logic_sync) (axis2_msg_recv_t *msg_recv,
00109                                             const axis2_env_t *env,
00110                                             struct axis2_msg_ctx *in_msg_ctx);
00111      
00118     axis2_status_t (AXIS2_CALL *
00119     invoke_in_business_logic_async) (axis2_msg_recv_t *msg_recv,
00120                                             const axis2_env_t *env,
00121                                             struct axis2_msg_ctx *in_msg_ctx,
00122                                             struct axis2_svr_callback *svr_callback);
00123      
00130     axis2_status_t (AXIS2_CALL *
00131     invoke_in_out_business_logic_sync) (axis2_msg_recv_t *msg_recv,
00132                                             const axis2_env_t *env,
00133                                             struct axis2_msg_ctx *in_msg_ctx,
00134                                             struct axis2_msg_ctx *out_msg_ctx);
00135     
00143     axis2_status_t (AXIS2_CALL *
00144     invoke_in_out_business_logic_async) (axis2_msg_recv_t *msg_recv,
00145                                             const axis2_env_t *env,
00146                                             struct axis2_msg_ctx *in_msg_ctx,
00147                                             struct axis2_msg_ctx *out_msg_ctx,
00148                                             struct axis2_svr_callback *callback);                                            
00149     
00150 
00156     axis2_svc_skeleton_t * (AXIS2_CALL *
00157     make_new_svc_obj) (axis2_msg_recv_t *msg_recv,
00158                         const axis2_env_t *env,
00159                         struct axis2_msg_ctx *msg_ctx);
00160 
00166     axis2_svc_skeleton_t * (AXIS2_CALL *
00167     get_impl_obj) (axis2_msg_recv_t *msg_recv,
00168                     const axis2_env_t *env,
00169                     struct axis2_msg_ctx *msg_ctx); 
00170 
00176     axis2_status_t (AXIS2_CALL *
00177     set_scope) (axis2_msg_recv_t *msg_recv,
00178                                 const axis2_env_t *env,
00179                                 const axis2_char_t *scope);
00180 
00181     
00187     axis2_char_t * (AXIS2_CALL *
00188     get_scope) (axis2_msg_recv_t *msg_recv,
00189                     const axis2_env_t *env);
00190      
00196     axis2_status_t (AXIS2_CALL *
00197     delete_svc_obj) (axis2_msg_recv_t *msg_recv,
00198                         const axis2_env_t *env,
00199                         axis2_msg_ctx_t *msg_ctx);                    
00200 };
00201 
00208 struct axis2_msg_recv
00209 {
00210     axis2_msg_recv_ops_t *ops;
00211     void* derived;
00212 };
00213 
00220 AXIS2_EXTERN axis2_msg_recv_t * AXIS2_CALL
00221 axis2_msg_recv_create (const axis2_env_t *env);
00222 
00223 /************************** Start of function macros **************************/
00224 
00225 #define AXIS2_MSG_RECV_FREE(msg_recv, env) ((msg_recv)->ops->free (msg_recv, env))
00226 
00227 #define AXIS2_MSG_RECV_RECEIVE(msg_recv, env, msg_ctx, callback_recv_param) \
00228       ((msg_recv)->ops->receive (msg_recv, env, msg_ctx, callback_recv_param))
00229 
00230 #define AXIS2_MSG_RECV_RECEIVE_SYNC(msg_recv, env, msg_ctx, callback_recv_param) \
00231       ((msg_recv)->ops->receive_sync (msg_recv, env, msg_ctx, callback_recv_param))
00232 
00233 #define AXIS2_MSG_RECV_RECEIVE_ASYNC(msg_recv, env, msg_ctx, callback_recv_param) \
00234       ((msg_recv)->ops->receive_async (msg_recv, env, msg_ctx, callback_recv_param))
00235 
00236 #define AXIS2_MSG_RECV_INVOKE_IN_BUSINESS_LOGIC_SYNC(msg_recv, env, in_msg_ctx) \
00237         ((msg_recv)->ops->invoke_in_business_logic_sync(msg_recv, env, in_msg_ctx))
00238 
00239 #define AXIS2_MSG_RECV_INVOKE_IN_BUSINESS_LOGIC_ASYNC(msg_recv, env, \
00240             in_msg_ctx, callback) \
00241         ((msg_recv)->ops->invoke_in_business_logic_async(msg_recv, env, \
00242             in_msg_ctx, callback))
00243         
00244 #define AXIS2_MSG_RECV_INVOKE_IN_OUT_BUSINESS_LOGIC_SYNC(msg_recv, env, \
00245             in_msg_ctx, out_msg_ctx) \
00246         ((msg_recv)->ops->invoke_in_out_business_logic_sync (msg_recv, env, \
00247             in_msg_ctx, out_msg_ctx))
00248             
00249 #define AXIS2_MSG_RECV_INVOKE_IN_OUT_BUSINESS_LOGIC_ASYNC(msg_recv, env, \
00250             in_msg_ctx, out_msg_ctx, callback) \
00251         ((msg_recv)->ops->invoke_in_out_business_logic_async(msg_recv, env, \
00252             in_msg_ctx, out_msg_ctx, callback))            
00253 
00254 #define AXIS2_MSG_RECV_MAKE_NEW_SVC_OBJ(msg_recv, env, msg_ctx) \
00255         ((msg_recv)->ops->make_new_svc_obj(msg_recv, env, msg_ctx))
00256 
00257 #define AXIS2_MSG_RECV_GET_IMPL_OBJ(msg_recv, env, msg_ctx) \
00258       ((msg_recv)->ops->get_impl_obj(msg_recv, env, msg_ctx))
00259         
00260 #define AXIS2_MSG_RECV_SET_SCOPE(msg_recv, env, scope) \
00261       ((msg_recv)->ops->set_scope(msg_recv, env, scope))
00262 
00263 #define AXIS2_MSG_RECV_GET_SCOPE(msg_recv, env) \
00264         ((msg_recv)->ops->get_scope(msg_recv, env))
00265 
00266 #define AXIS2_MSG_RECV_DELETE_SVC_OBJ(msg_recv, env, msg_ctx) \
00267         ((msg_recv)->ops->delete_svc_obj(msg_recv, env, msg_ctx))
00268 
00269 /************************** End of function macros ****************************/
00270     
00272 #ifdef __cplusplus
00273 }
00274 #endif
00275 
00276 #endif  /* AXIS2_MSG_RECV_H */

Generated on Fri Jun 16 18:02:31 2006 for Axis2/C by  doxygen 1.4.2