axis2_op_client.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_OP_CLIENT_H
00019 #define AXIS2_OP_CLIENT_H
00020 
00050 #include <axis2_defines.h>
00051 #include <axis2_env.h>
00052 #include <axis2_options.h>
00053 #include <axis2_msg_ctx.h>
00054 #include <axis2_callback.h>
00055 
00056 #ifdef __cplusplus
00057 extern "C"
00058 {
00059 #endif
00060 
00062     typedef struct axis2_op_client_ops axis2_op_client_ops_t;
00064     typedef struct axis2_op_client axis2_op_client_t;
00065         
00066     struct axis2_callback_recv;
00067 
00072     struct axis2_op_client_ops
00073     {
00074 
00082         axis2_status_t (AXIS2_CALL *
00083                 set_options)(
00084                     axis2_op_client_t *op_client,
00085                     const axis2_env_t *env,
00086                     const axis2_options_t *options);
00087 
00095         const axis2_options_t* (AXIS2_CALL *
00096                 get_options)(
00097                     const axis2_op_client_t *op_client,
00098                     const axis2_env_t *env);
00099 
00108         axis2_status_t (AXIS2_CALL *
00109                 add_msg_ctx)(
00110                     axis2_op_client_t *op_client,
00111                     const axis2_env_t *env,
00112                     axis2_msg_ctx_t *msg_ctx);
00113 
00122         axis2_status_t (AXIS2_CALL *
00123                 add_out_msg_ctx)(
00124                     axis2_op_client_t *op_client,
00125                     const axis2_env_t *env,
00126                     axis2_msg_ctx_t *msg_ctx);
00127 
00128 
00137         const axis2_msg_ctx_t* (AXIS2_CALL *
00138                 get_msg_ctx)(
00139                     const axis2_op_client_t *op_client,
00140                     const axis2_env_t *env,
00141                     const axis2_char_t *message_label);
00142 
00151         axis2_status_t (AXIS2_CALL *
00152                 set_callback)(
00153                     axis2_op_client_t *op_client,
00154                     const axis2_env_t *env,
00155                     axis2_callback_t *callback);
00162         axis2_callback_t *(AXIS2_CALL *
00163                 get_callback)(
00164                     axis2_op_client_t *op_client,
00165                     const axis2_env_t *env);
00166 
00167 
00179         axis2_status_t (AXIS2_CALL *
00180                 execute)(
00181                     axis2_op_client_t *op_client,
00182                     const axis2_env_t *env,
00183                     const axis2_bool_t block);
00184 
00193         axis2_status_t (AXIS2_CALL *
00194                 reset)(
00195                     axis2_op_client_t *op_client,
00196                     const axis2_env_t *env);
00197 
00207         axis2_status_t (AXIS2_CALL *
00208                 complete)(
00209                     axis2_op_client_t *op_client,
00210                     const axis2_env_t *env,
00211                     axis2_msg_ctx_t *msg_ctx);
00212 
00219         axis2_op_ctx_t* (AXIS2_CALL *
00220                 get_operation_context)(
00221                     const axis2_op_client_t *op_client,
00222                     const axis2_env_t *env);
00223 
00232         axis2_status_t (AXIS2_CALL *
00233                 set_callback_recv)(
00234                     axis2_op_client_t *op_client,
00235                     const axis2_env_t *env,
00236                     struct axis2_callback_recv *callback_recv);
00237 
00244         axis2_status_t (AXIS2_CALL *
00245                 free)(
00246                     axis2_op_client_t *op_client,
00247                     const axis2_env_t *env);
00248     };
00249 
00253     struct axis2_op_client
00254     {
00256         axis2_op_client_ops_t *ops;
00257     };
00258 
00274     AXIS2_EXTERN axis2_op_client_t* AXIS2_CALL axis2_op_client_create(
00275         const axis2_env_t *env,
00276         axis2_op_t *op,
00277         axis2_svc_ctx_t *svc_ctx,
00278         axis2_options_t *options);
00279 
00280      
00283 #define AXIS2_OP_CLIENT_SET_OPTIONS(op_client, env, options) \
00284       ((op_client)->ops->set_options(op_client, env, options))
00285 
00288 #define AXIS2_OP_CLIENT_GET_OPTIONS(op_client, env) \
00289       ((op_client)->ops->get_options(op_client, env))
00290 
00293 #define AXIS2_OP_CLIENT_ADD_MSG_CTX(op_client, env, msg_ctx) \
00294       ((op_client)->ops->add_msg_ctx(op_client, env, msg_ctx))
00295 
00298 #define AXIS2_OP_CLIENT_ADD_OUT_MSG_CTX(op_client, env, msg_ctx) \
00299       ((op_client)->ops->add_out_msg_ctx(op_client, env, msg_ctx))
00300 
00303 #define AXIS2_OP_CLIENT_GET_MSG_CTX(op_client, env, message_label) \
00304       ((op_client)->ops->get_msg_ctx(op_client, env, message_label))
00305 
00308 #define AXIS2_OP_CLIENT_SET_CALLBACK(op_client, env, callback) \
00309       ((op_client)->ops->set_callback(op_client, env, callback))
00310 
00313 #define AXIS2_OP_CLIENT_GET_CALLBACK(op_client, env) \
00314       ((op_client)->ops->get_callback(op_client, env))
00315 
00316 
00319 #define AXIS2_OP_CLIENT_EXECUTE(op_client, env, block) \
00320       ((op_client)->ops->execute(op_client, env, block))
00321 
00324 #define AXIS2_OP_CLIENT_RESET(op_client, env) \
00325       ((op_client)->ops->reset(op_client, env))
00326 
00329 #define AXIS2_OP_CLIENT_COMPLETE(op_client, env, msg_ctx) \
00330       ((op_client)->ops->complete(op_client, env, msg_ctx))
00331 
00334 #define AXIS2_OP_CLIENT_GET_OPERATION_CONTEXT(op_client, env) \
00335       ((op_client)->ops->get_operation_context(op_client, env))
00336 
00339 #define AXIS2_OP_CLIENT_FREE(op_client, env) \
00340       ((op_client)->ops->free(op_client, env))
00341 
00344 #define AXIS2_OP_CLIENT_SET_CALLBACK_RECV(op_client, env, callback_recv) \
00345       ((op_client)->ops->set_callback_recv(op_client, env, callback_recv))
00346 
00348 #ifdef __cplusplus
00349 }
00350 #endif
00351 
00352 #endif                          /* AXIS2_OP_CLIENT_H */

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