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 
00039 #ifdef __cplusplus
00040 extern "C"
00041 {
00042 #endif
00043 
00044 #include <axis2_defines.h>
00045 #include <axis2_const.h>
00046 #include <axis2_svc_skeleton.h>
00047 #include <axis2_msg_ctx.h>
00048 #include <axis2_op_ctx.h>
00049 #include <axis2_svr_callback.h>
00050 
00052 #define AXIS2_SUCCESS 1
00053 
00054 #define AXIS2_FAILURE 0
00055 
00056     struct axis2_msg_ctx;
00058     typedef struct axis2_msg_recv_ops axis2_msg_recv_ops_t;
00060     typedef struct axis2_msg_recv axis2_msg_recv_t;
00061 
00066     struct axis2_msg_recv_ops
00067     {
00074         axis2_status_t (AXIS2_CALL *
00075                 free_fn)(
00076                     axis2_msg_recv_t *msg_recv,
00077                     const axis2_env_t *env);
00078 
00092         axis2_status_t (AXIS2_CALL *
00093                 receive)(
00094                     axis2_msg_recv_t *msg_recv,
00095                     const axis2_env_t *env,
00096                     struct axis2_msg_ctx *in_msg_ctx,
00097                     void *callback_recv_param);
00105         axis2_status_t (AXIS2_CALL *
00106                 receive_sync)(
00107                     axis2_msg_recv_t *msg_recv,
00108                     const axis2_env_t *env,
00109                     struct axis2_msg_ctx *in_msg_ctx,
00110                     void *callback_recv_param);
00111 
00119         axis2_status_t (AXIS2_CALL *
00120                 receive_async)(
00121                     axis2_msg_recv_t *msg_recv,
00122                     const axis2_env_t *env,
00123                     struct axis2_msg_ctx *in_msg_ctx,
00124                     void *callback_recv_param);
00125 
00133         axis2_status_t (AXIS2_CALL *
00134                 invoke_in_business_logic_sync)(
00135                     axis2_msg_recv_t *msg_recv,
00136                     const axis2_env_t *env,
00137                     struct axis2_msg_ctx *in_msg_ctx);
00138 
00147         axis2_status_t (AXIS2_CALL *
00148                 invoke_in_business_logic_async)(
00149                     axis2_msg_recv_t *msg_recv,
00150                     const axis2_env_t *env,
00151                     struct axis2_msg_ctx *in_msg_ctx,
00152                     struct axis2_svr_callback *svr_callback);
00153 
00162         axis2_status_t (AXIS2_CALL *
00163                 invoke_in_out_business_logic_sync)(
00164                     axis2_msg_recv_t *msg_recv,
00165                     const axis2_env_t *env,
00166                     struct axis2_msg_ctx *in_msg_ctx,
00167                     struct axis2_msg_ctx *out_msg_ctx);
00168 
00178         axis2_status_t (AXIS2_CALL *
00179                 invoke_in_out_business_logic_async)(
00180                     axis2_msg_recv_t *msg_recv,
00181                     const axis2_env_t *env,
00182                     struct axis2_msg_ctx *in_msg_ctx,
00183                     struct axis2_msg_ctx *out_msg_ctx,
00184                     struct axis2_svr_callback *callback);
00185 
00186 
00194         axis2_svc_skeleton_t *(AXIS2_CALL *
00195                 make_new_svc_obj)(
00196                     axis2_msg_recv_t *msg_recv,
00197                     const axis2_env_t *env,
00198                     struct axis2_msg_ctx *msg_ctx);
00199 
00207         axis2_svc_skeleton_t *(AXIS2_CALL *
00208                 get_impl_obj)(
00209                     axis2_msg_recv_t *msg_recv,
00210                     const axis2_env_t *env,
00211                     struct axis2_msg_ctx *msg_ctx);
00212 
00220         axis2_status_t (AXIS2_CALL *
00221                 set_scope)(
00222                     axis2_msg_recv_t *msg_recv,
00223                     const axis2_env_t *env,
00224                     const axis2_char_t *scope);
00225 
00226 
00233         axis2_char_t *(AXIS2_CALL *
00234                 get_scope)(
00235                     axis2_msg_recv_t *msg_recv,
00236                     const axis2_env_t *env);
00237 
00245         axis2_status_t (AXIS2_CALL *
00246                 delete_svc_obj)(
00247                     axis2_msg_recv_t *msg_recv,
00248                     const axis2_env_t *env,
00249                     axis2_msg_ctx_t *msg_ctx);
00250     };
00251 
00255     struct axis2_msg_recv
00256     {
00258         axis2_msg_recv_ops_t *ops;
00259         void* derived;
00260     };
00261 
00269     AXIS2_EXTERN axis2_msg_recv_t *AXIS2_CALL
00270     axis2_msg_recv_create (
00271         const axis2_env_t *env);
00272 
00273 /************************** Start of function macros **************************/
00274 
00277 #define AXIS2_MSG_RECV_FREE(msg_recv, env) ((msg_recv)->ops->free_fn (msg_recv, env))
00278 
00281 #define AXIS2_MSG_RECV_RECEIVE(msg_recv, env, msg_ctx, callback_recv_param) \
00282       ((msg_recv)->ops->receive (msg_recv, env, msg_ctx, callback_recv_param))
00283 
00286 #define AXIS2_MSG_RECV_RECEIVE_SYNC(msg_recv, env, msg_ctx, callback_recv_param) \
00287       ((msg_recv)->ops->receive_sync (msg_recv, env, msg_ctx, callback_recv_param))
00288 
00291 #define AXIS2_MSG_RECV_RECEIVE_ASYNC(msg_recv, env, msg_ctx, callback_recv_param) \
00292       ((msg_recv)->ops->receive_async (msg_recv, env, msg_ctx, callback_recv_param))
00293 
00296 #define AXIS2_MSG_RECV_INVOKE_IN_BUSINESS_LOGIC_SYNC(msg_recv, env, in_msg_ctx) \
00297         ((msg_recv)->ops->invoke_in_business_logic_sync(msg_recv, env, in_msg_ctx))
00298 
00301 #define AXIS2_MSG_RECV_INVOKE_IN_BUSINESS_LOGIC_ASYNC(msg_recv, env, \
00302             in_msg_ctx, callback) \
00303         ((msg_recv)->ops->invoke_in_business_logic_async(msg_recv, env, \
00304             in_msg_ctx, callback))
00305 
00308 #define AXIS2_MSG_RECV_INVOKE_IN_OUT_BUSINESS_LOGIC_SYNC(msg_recv, env, \
00309             in_msg_ctx, out_msg_ctx) \
00310         ((msg_recv)->ops->invoke_in_out_business_logic_sync (msg_recv, env, \
00311             in_msg_ctx, out_msg_ctx))
00312 
00315 #define AXIS2_MSG_RECV_INVOKE_IN_OUT_BUSINESS_LOGIC_ASYNC(msg_recv, env, \
00316             in_msg_ctx, out_msg_ctx, callback) \
00317         ((msg_recv)->ops->invoke_in_out_business_logic_async(msg_recv, env, \
00318             in_msg_ctx, out_msg_ctx, callback))
00319 
00322 #define AXIS2_MSG_RECV_MAKE_NEW_SVC_OBJ(msg_recv, env, msg_ctx) \
00323         ((msg_recv)->ops->make_new_svc_obj(msg_recv, env, msg_ctx))
00324 
00327 #define AXIS2_MSG_RECV_GET_IMPL_OBJ(msg_recv, env, msg_ctx) \
00328       ((msg_recv)->ops->get_impl_obj(msg_recv, env, msg_ctx))
00329 
00332 #define AXIS2_MSG_RECV_SET_SCOPE(msg_recv, env, scope) \
00333       ((msg_recv)->ops->set_scope(msg_recv, env, scope))
00334 
00337 #define AXIS2_MSG_RECV_GET_SCOPE(msg_recv, env) \
00338         ((msg_recv)->ops->get_scope(msg_recv, env))
00339 
00342 #define AXIS2_MSG_RECV_DELETE_SVC_OBJ(msg_recv, env, msg_ctx) \
00343         ((msg_recv)->ops->delete_svc_obj(msg_recv, env, msg_ctx))
00344 
00345 /************************** End of function macros ****************************/
00346 
00348 #ifdef __cplusplus
00349 }
00350 #endif
00351 
00352 #endif  /* AXIS2_MSG_RECV_H */

Generated on Tue Oct 3 20:47:58 2006 for Axis2/C by  doxygen 1.4.7