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

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 
00036 #include <axis2_defines.h>
00037 #include <axis2_env.h>
00038 #include <axis2_options.h>
00039 #include <axis2_msg_ctx.h>
00040 #include <axis2_callback.h>
00041 
00042 #ifdef __cplusplus
00043 extern "C"
00044 {
00045 #endif
00046 
00052 typedef struct axis2_op_client_ops axis2_op_client_ops_t;
00053 typedef struct axis2_op_client axis2_op_client_t; 
00054 struct axis2_callback_recv;
00055     
00060 struct axis2_op_client_ops
00061 {
00062 
00070    axis2_status_t (AXIS2_CALL *
00071    set_options)(struct axis2_op_client *op_client,
00072                const axis2_env_t *env,
00073                axis2_options_t *options);
00074 
00075 
00083    axis2_options_t* (AXIS2_CALL *
00084    get_options)(struct axis2_op_client *op_client,
00085                const axis2_env_t *env);
00086 
00094    axis2_status_t (AXIS2_CALL *
00095    add_msg_ctx)(struct axis2_op_client *op_client,
00096                   const axis2_env_t *env,
00097                   axis2_msg_ctx_t *mc);
00098 
00106    axis2_msg_ctx_t* (AXIS2_CALL *
00107    get_msg_ctx)(struct axis2_op_client *op_client,
00108                      const axis2_env_t *env,
00109                      const axis2_char_t *message_label);
00110 
00121    axis2_status_t (AXIS2_CALL *
00122    set_callback)(struct axis2_op_client *op_client,
00123                const axis2_env_t *env,
00124                axis2_callback_t *callback);
00125 
00138    axis2_status_t (AXIS2_CALL *
00139    execute)(struct axis2_op_client *op_client,
00140             const axis2_env_t *env,
00141             axis2_bool_t block);
00142 
00149    axis2_status_t (AXIS2_CALL *
00150    reset)(struct axis2_op_client *op_client,
00151             const axis2_env_t *env);
00152 
00161    axis2_status_t (AXIS2_CALL *
00162    compelete)(struct axis2_op_client *op_client,
00163             const axis2_env_t *env,
00164             axis2_msg_ctx_t *mc);
00165 
00170    axis2_op_ctx_t* (AXIS2_CALL *
00171    get_operation_context)(struct axis2_op_client *op_client);
00172 
00173     axis2_status_t (AXIS2_CALL *
00174     set_callback_recv)(
00175         struct axis2_op_client *op_client, 
00176         const axis2_env_t *env,
00177         struct axis2_callback_recv *callback_recv);
00178 
00179    axis2_status_t (AXIS2_CALL *
00180    free)(struct axis2_op_client *op_client,
00181             const axis2_env_t *env);
00182 };
00183 
00188 struct axis2_op_client
00189 {
00190     axis2_op_client_ops_t *ops;    
00191 };
00192 
00193 AXIS2_EXTERN axis2_op_client_t* AXIS2_CALL axis2_op_client_create(const axis2_env_t *env,
00194                                           axis2_op_t *op,
00195                                           axis2_svc_ctx_t *svc_ctx,
00196                                           axis2_options_t *options);
00197     
00198 /************************** Start of function macros **************************/
00199 
00200 #define AXIS2_OP_CLIENT_SET_OPTIONS(op_client, env, options) \
00201       ((op_client)->ops->set_options(op_client, env, options))
00202 
00203 #define AXIS2_OP_CLIENT_GET_OPTIONS(op_client, env) \
00204       ((op_client)->ops->get_options(op_client, env))
00205 
00206 #define AXIS2_OP_CLIENT_ADD_MSG_CTX(op_client, env, mc) \
00207       ((op_client)->ops->add_msg_ctx(op_client, env, mc))
00208 
00209 #define AXIS2_OP_CLIENT_GET_MSG_CTX(op_client, env, message_label) \
00210       ((op_client)->ops->get_msg_ctx(op_client, env, message_label))
00211 
00212 #define AXIS2_OP_CLIENT_SET_CALLBACK(op_client, env, callback) \
00213       ((op_client)->ops->set_callback(op_client, env, callback))
00214 
00215 #define AXIS2_OP_CLIENT_EXECUTE(op_client, env, block) \
00216       ((op_client)->ops->execute(op_client, env, block))
00217 
00218 #define AXIS2_OP_CLIENT_RESET(op_client, env) \
00219       ((op_client)->ops->reset(op_client, env))
00220 
00221 #define AXIS2_OP_CLIENT_COMPLETE(op_client, env, mc) \
00222       ((op_client)->ops->compelete(op_client, env, mc))
00223 
00224 #define AXIS2_OP_CLIENT_GET_OPERATION_CONTEXT(op_client, env) \
00225       ((op_client)->ops->get_operation_context(op_client, env))
00226 
00227 #define AXIS2_OP_CLIENT_FREE(op_client, env) \
00228       ((op_client)->ops->free(op_client, env))
00229 
00230 #define AXIS2_OP_CLIENT_SET_CALLBACK_RECV(op_client, env, callback_recv) \
00231       ((op_client)->ops->set_callback_recv(op_client, env, callback_recv))
00232 
00233 /************************** End of function macros ****************************/    
00234 
00236 #ifdef __cplusplus
00237 }
00238 #endif
00239 
00240 #endif                          /* AXIS2_CALLBACK_H */

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