axis2_msg_recv.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 AXIS2_MSG_RECV_H
00019 #define AXIS2_MSG_RECV_H
00020 
00040 #ifdef __cplusplus
00041 extern "C"
00042 {
00043 #endif
00044 
00045 #include <axis2_defines.h>
00046 #include <axis2_const.h>
00047 #include <axis2_svc_skeleton.h>
00048 #include <axis2_msg_ctx.h>
00049 #include <axis2_op_ctx.h>
00050 #include <axis2_svr_callback.h>
00051 
00053 #define AXIS2_SUCCESS 1
00054 
00055 #define AXIS2_FAILURE 0
00056 
00057     struct axis2_msg_ctx;
00059     typedef struct axis2_msg_recv_ops axis2_msg_recv_ops_t;
00061     typedef struct axis2_msg_recv axis2_msg_recv_t;
00062 
00067     struct axis2_msg_recv_ops
00068     {
00075         axis2_status_t (AXIS2_CALL *
00076                 free_fn)(
00077                     axis2_msg_recv_t *msg_recv,
00078                     const axis2_env_t *env);
00079 
00093         axis2_status_t (AXIS2_CALL *
00094                 receive)(
00095                     axis2_msg_recv_t *msg_recv,
00096                     const axis2_env_t *env,
00097                     struct axis2_msg_ctx *in_msg_ctx,
00098                     void *callback_recv_param);
00106         axis2_status_t (AXIS2_CALL *
00107                 receive_sync)(
00108                     axis2_msg_recv_t *msg_recv,
00109                     const axis2_env_t *env,
00110                     struct axis2_msg_ctx *in_msg_ctx,
00111                     void *callback_recv_param);
00112 
00120         axis2_status_t (AXIS2_CALL *
00121                 receive_async)(
00122                     axis2_msg_recv_t *msg_recv,
00123                     const axis2_env_t *env,
00124                     struct axis2_msg_ctx *in_msg_ctx,
00125                     void *callback_recv_param);
00126 
00134         axis2_status_t (AXIS2_CALL *
00135                 invoke_in_business_logic_sync)(
00136                     axis2_msg_recv_t *msg_recv,
00137                     const axis2_env_t *env,
00138                     struct axis2_msg_ctx *in_msg_ctx);
00139 
00148         axis2_status_t (AXIS2_CALL *
00149                 invoke_in_business_logic_async)(
00150                     axis2_msg_recv_t *msg_recv,
00151                     const axis2_env_t *env,
00152                     struct axis2_msg_ctx *in_msg_ctx,
00153                     struct axis2_svr_callback *svr_callback);
00154 
00163         axis2_status_t (AXIS2_CALL *
00164                 invoke_in_out_business_logic_sync)(
00165                     axis2_msg_recv_t *msg_recv,
00166                     const axis2_env_t *env,
00167                     struct axis2_msg_ctx *in_msg_ctx,
00168                     struct axis2_msg_ctx *out_msg_ctx);
00169 
00179         axis2_status_t (AXIS2_CALL *
00180                 invoke_in_out_business_logic_async)(
00181                     axis2_msg_recv_t *msg_recv,
00182                     const axis2_env_t *env,
00183                     struct axis2_msg_ctx *in_msg_ctx,
00184                     struct axis2_msg_ctx *out_msg_ctx,
00185                     struct axis2_svr_callback *callback);
00186 
00187 
00195         axis2_svc_skeleton_t *(AXIS2_CALL *
00196                 make_new_svc_obj)(
00197                     axis2_msg_recv_t *msg_recv,
00198                     const axis2_env_t *env,
00199                     struct axis2_msg_ctx *msg_ctx);
00200 
00208         axis2_svc_skeleton_t *(AXIS2_CALL *
00209                 get_impl_obj)(
00210                     axis2_msg_recv_t *msg_recv,
00211                     const axis2_env_t *env,
00212                     struct axis2_msg_ctx *msg_ctx);
00213 
00221         axis2_status_t (AXIS2_CALL *
00222                 set_scope)(
00223                     axis2_msg_recv_t *msg_recv,
00224                     const axis2_env_t *env,
00225                     const axis2_char_t *scope);
00226 
00227 
00234         axis2_char_t *(AXIS2_CALL *
00235                 get_scope)(
00236                     axis2_msg_recv_t *msg_recv,
00237                     const axis2_env_t *env);
00238 
00246         axis2_status_t (AXIS2_CALL *
00247                 delete_svc_obj)(
00248                     axis2_msg_recv_t *msg_recv,
00249                     const axis2_env_t *env,
00250                     axis2_msg_ctx_t *msg_ctx);
00251     };
00252 
00256     struct axis2_msg_recv
00257     {
00259         axis2_msg_recv_ops_t *ops;
00260         void* derived;
00261     };
00262 
00270     AXIS2_EXTERN axis2_msg_recv_t *AXIS2_CALL
00271     axis2_msg_recv_create (
00272         const axis2_env_t *env);
00273 
00274 /************************** Start of function macros **************************/
00275 
00278 #define AXIS2_MSG_RECV_FREE(msg_recv, env) ((msg_recv)->ops->free_fn (msg_recv, env))
00279 
00282 #define AXIS2_MSG_RECV_RECEIVE(msg_recv, env, msg_ctx, callback_recv_param) \
00283       ((msg_recv)->ops->receive (msg_recv, env, msg_ctx, callback_recv_param))
00284 
00287 #define AXIS2_MSG_RECV_RECEIVE_SYNC(msg_recv, env, msg_ctx, callback_recv_param) \
00288       ((msg_recv)->ops->receive_sync (msg_recv, env, msg_ctx, callback_recv_param))
00289 
00292 #define AXIS2_MSG_RECV_RECEIVE_ASYNC(msg_recv, env, msg_ctx, callback_recv_param) \
00293       ((msg_recv)->ops->receive_async (msg_recv, env, msg_ctx, callback_recv_param))
00294 
00297 #define AXIS2_MSG_RECV_INVOKE_IN_BUSINESS_LOGIC_SYNC(msg_recv, env, in_msg_ctx) \
00298         ((msg_recv)->ops->invoke_in_business_logic_sync(msg_recv, env, in_msg_ctx))
00299 
00302 #define AXIS2_MSG_RECV_INVOKE_IN_BUSINESS_LOGIC_ASYNC(msg_recv, env, \
00303             in_msg_ctx, callback) \
00304         ((msg_recv)->ops->invoke_in_business_logic_async(msg_recv, env, \
00305             in_msg_ctx, callback))
00306 
00309 #define AXIS2_MSG_RECV_INVOKE_IN_OUT_BUSINESS_LOGIC_SYNC(msg_recv, env, \
00310             in_msg_ctx, out_msg_ctx) \
00311         ((msg_recv)->ops->invoke_in_out_business_logic_sync (msg_recv, env, \
00312             in_msg_ctx, out_msg_ctx))
00313 
00316 #define AXIS2_MSG_RECV_INVOKE_IN_OUT_BUSINESS_LOGIC_ASYNC(msg_recv, env, \
00317             in_msg_ctx, out_msg_ctx, callback) \
00318         ((msg_recv)->ops->invoke_in_out_business_logic_async(msg_recv, env, \
00319             in_msg_ctx, out_msg_ctx, callback))
00320 
00323 #define AXIS2_MSG_RECV_MAKE_NEW_SVC_OBJ(msg_recv, env, msg_ctx) \
00324         ((msg_recv)->ops->make_new_svc_obj(msg_recv, env, msg_ctx))
00325 
00328 #define AXIS2_MSG_RECV_GET_IMPL_OBJ(msg_recv, env, msg_ctx) \
00329       ((msg_recv)->ops->get_impl_obj(msg_recv, env, msg_ctx))
00330 
00333 #define AXIS2_MSG_RECV_SET_SCOPE(msg_recv, env, scope) \
00334       ((msg_recv)->ops->set_scope(msg_recv, env, scope))
00335 
00338 #define AXIS2_MSG_RECV_GET_SCOPE(msg_recv, env) \
00339         ((msg_recv)->ops->get_scope(msg_recv, env))
00340 
00343 #define AXIS2_MSG_RECV_DELETE_SVC_OBJ(msg_recv, env, msg_ctx) \
00344         ((msg_recv)->ops->delete_svc_obj(msg_recv, env, msg_ctx))
00345 
00346 /************************** End of function macros ****************************/
00347 
00349 #ifdef __cplusplus
00350 }
00351 #endif
00352 
00353 #endif  /* AXIS2_MSG_RECV_H */

Generated on Wed Dec 20 20:14:10 2006 for Axis2/C by  doxygen 1.5.1