axis2_op_client.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_OP_CLIENT_H
00018 #define AXIS2_OP_CLIENT_H
00019 
00049 #include <axis2_defines.h>
00050 #include <axis2_env.h>
00051 #include <axis2_options.h>
00052 #include <axis2_msg_ctx.h>
00053 #include <axis2_callback.h>
00054 
00055 #ifdef __cplusplus
00056 extern "C"
00057 {
00058 #endif
00059 
00061     typedef struct axis2_op_client_ops axis2_op_client_ops_t;
00063     typedef struct axis2_op_client axis2_op_client_t;
00064         
00065     struct axis2_callback_recv;
00066 
00071     struct axis2_op_client_ops
00072     {
00073 
00081         axis2_status_t (AXIS2_CALL *
00082                 set_options)(
00083                     axis2_op_client_t *op_client,
00084                     const axis2_env_t *env,
00085                     const axis2_options_t *options);
00086 
00094         const axis2_options_t* (AXIS2_CALL *
00095                 get_options)(
00096                     const axis2_op_client_t *op_client,
00097                     const axis2_env_t *env);
00098 
00107         axis2_status_t (AXIS2_CALL *
00108                 add_msg_ctx)(
00109                     axis2_op_client_t *op_client,
00110                     const axis2_env_t *env,
00111                     axis2_msg_ctx_t *msg_ctx);
00112 
00121         axis2_status_t (AXIS2_CALL *
00122                 add_out_msg_ctx)(
00123                     axis2_op_client_t *op_client,
00124                     const axis2_env_t *env,
00125                     axis2_msg_ctx_t *msg_ctx);
00126 
00127 
00136         const axis2_msg_ctx_t* (AXIS2_CALL *
00137                 get_msg_ctx)(
00138                     const axis2_op_client_t *op_client,
00139                     const axis2_env_t *env,
00140                     const axis2_char_t *message_label);
00141 
00150         axis2_status_t (AXIS2_CALL *
00151                 set_callback)(
00152                     axis2_op_client_t *op_client,
00153                     const axis2_env_t *env,
00154                     axis2_callback_t *callback);
00155 
00167         axis2_status_t (AXIS2_CALL *
00168                 execute)(
00169                     axis2_op_client_t *op_client,
00170                     const axis2_env_t *env,
00171                     const axis2_bool_t block);
00172 
00181         axis2_status_t (AXIS2_CALL *
00182                 reset)(
00183                     axis2_op_client_t *op_client,
00184                     const axis2_env_t *env);
00185 
00195         axis2_status_t (AXIS2_CALL *
00196                 complete)(
00197                     axis2_op_client_t *op_client,
00198                     const axis2_env_t *env,
00199                     axis2_msg_ctx_t *msg_ctx);
00200 
00207         axis2_op_ctx_t* (AXIS2_CALL *
00208                 get_operation_context)(
00209                     const axis2_op_client_t *op_client,
00210                     const axis2_env_t *env);
00211 
00220         axis2_status_t (AXIS2_CALL *
00221                 set_callback_recv)(
00222                     axis2_op_client_t *op_client,
00223                     const axis2_env_t *env,
00224                     struct axis2_callback_recv *callback_recv);
00225 
00232         axis2_status_t (AXIS2_CALL *
00233                 free)(
00234                     axis2_op_client_t *op_client,
00235                     const axis2_env_t *env);
00236     };
00237 
00241     struct axis2_op_client
00242     {
00244         axis2_op_client_ops_t *ops;
00245     };
00246 
00262     AXIS2_EXTERN axis2_op_client_t* AXIS2_CALL axis2_op_client_create(
00263         const axis2_env_t *env,
00264         axis2_op_t *op,
00265         axis2_svc_ctx_t *svc_ctx,
00266         axis2_options_t *options);
00267 
00268      
00271 #define AXIS2_OP_CLIENT_SET_OPTIONS(op_client, env, options) \
00272       ((op_client)->ops->set_options(op_client, env, options))
00273 
00276 #define AXIS2_OP_CLIENT_GET_OPTIONS(op_client, env) \
00277       ((op_client)->ops->get_options(op_client, env))
00278 
00281 #define AXIS2_OP_CLIENT_ADD_MSG_CTX(op_client, env, msg_ctx) \
00282       ((op_client)->ops->add_msg_ctx(op_client, env, msg_ctx))
00283 
00286 #define AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(op_client, env, msg_ctx) \
00287       ((op_client)->ops->add_out_msg_ctx(op_client, env, msg_ctx))
00288 
00291 #define AXIS2_OP_CLIENT_GET_MSG_CTX(op_client, env, message_label) \
00292       ((op_client)->ops->get_msg_ctx(op_client, env, message_label))
00293 
00296 #define AXIS2_OP_CLIENT_SET_CALLBACK(op_client, env, callback) \
00297       ((op_client)->ops->set_callback(op_client, env, callback))
00298 
00301 #define AXIS2_OP_CLIENT_EXECUTE(op_client, env, block) \
00302       ((op_client)->ops->execute(op_client, env, block))
00303 
00306 #define AXIS2_OP_CLIENT_RESET(op_client, env) \
00307       ((op_client)->ops->reset(op_client, env))
00308 
00311 #define AXIS2_OP_CLIENT_COMPLETE(op_client, env, msg_ctx) \
00312       ((op_client)->ops->complete(op_client, env, msg_ctx))
00313 
00316 #define AXIS2_OP_CLIENT_GET_OPERATION_CONTEXT(op_client, env) \
00317       ((op_client)->ops->get_operation_context(op_client, env))
00318 
00321 #define AXIS2_OP_CLIENT_FREE(op_client, env) \
00322       ((op_client)->ops->free(op_client, env))
00323 
00326 #define AXIS2_OP_CLIENT_SET_CALLBACK_RECV(op_client, env, callback_recv) \
00327       ((op_client)->ops->set_callback_recv(op_client, env, callback_recv))
00328 
00330 #ifdef __cplusplus
00331 }
00332 #endif
00333 
00334 #endif                          /* AXIS2_OP_CLIENT_H */

Generated on Tue Oct 3 22:35:47 2006 for Axis2/C by  doxygen 1.4.7