axis2_conf_ctx.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_CONF_CTX_H
00018 #define AXIS2_CONF_CTX_H
00019 
00035 #include <axis2_defines.h>
00036 #include <axis2_hash.h>
00037 #include <axis2_env.h>
00038 #include <axis2_ctx.h>
00039 #include <axis2_svc_grp_ctx.h>
00040 
00041 #ifdef __cplusplus
00042 extern "C"
00043 {
00044 #endif
00045 
00046 
00048     typedef struct axis2_conf_ctx_ops axis2_conf_ctx_ops_t;
00050     typedef struct axis2_conf_ctx axis2_conf_ctx_t;
00051     struct axis2_conf;
00052 
00057     struct axis2_conf_ctx_ops
00058     {
00066         axis2_status_t (AXIS2_CALL * 
00067                 set_conf)(
00068                     axis2_conf_ctx_t *conf_ctx,
00069                     const axis2_env_t *env,
00070                     struct axis2_conf *conf);
00078         axis2_ctx_t *(AXIS2_CALL *
00079                 get_base)(
00080                     const axis2_conf_ctx_t *conf_ctx,
00081                     const axis2_env_t *env);
00082 
00090         axis2_conf_t *(AXIS2_CALL *
00091                 get_conf)(
00092                     const axis2_conf_ctx_t *conf_ctx,
00093                     const axis2_env_t *env);
00094 
00101         axis2_hash_t *(AXIS2_CALL *
00102                 get_op_ctx_map)(
00103                     const axis2_conf_ctx_t *conf_ctx,
00104                     const axis2_env_t *env);
00105 
00112         axis2_hash_t *(AXIS2_CALL *
00113                 get_svc_ctx_map)(
00114                     const axis2_conf_ctx_t *conf_ctx,
00115                     const axis2_env_t *env);
00116 
00123         axis2_hash_t *(AXIS2_CALL *
00124                 get_svc_grp_ctx_map)(
00125                     const axis2_conf_ctx_t *conf_ctx,
00126                     const axis2_env_t *env);
00127 
00137         axis2_status_t (AXIS2_CALL *
00138                 register_op_ctx)(
00139                     axis2_conf_ctx_t *conf_ctx,
00140                     const axis2_env_t *env,
00141                     const axis2_char_t *message_id,
00142                     axis2_op_ctx_t *op_ctx);
00143 
00151         axis2_op_ctx_t *(AXIS2_CALL *
00152                 get_op_ctx)(
00153                     const axis2_conf_ctx_t *conf_ctx,
00154                     const axis2_env_t *env,
00155                     const axis2_char_t *message_id);
00156 
00165         axis2_status_t (AXIS2_CALL *
00166                 register_svc_ctx)(
00167                     axis2_conf_ctx_t *conf_ctx,
00168                     const axis2_env_t *env,
00169                     const axis2_char_t *svc_id,
00170                     axis2_svc_ctx_t *svc_ctx);
00171 
00179         struct axis2_svc_ctx *(AXIS2_CALL *
00180                 get_svc_ctx)(
00181                     const axis2_conf_ctx_t *conf_ctx,
00182                     const axis2_env_t *env,
00183                     const axis2_char_t *svc_id);
00184 
00193         axis2_status_t (AXIS2_CALL *
00194                 register_svc_grp_ctx)(
00195                     axis2_conf_ctx_t *conf_ctx,
00196                     const axis2_env_t *env,
00197                     const axis2_char_t *svc_grp_id,
00198                     axis2_svc_grp_ctx_t *svc_grp_ctx);
00199 
00207         axis2_svc_grp_ctx_t *(AXIS2_CALL *
00208                 get_svc_grp_ctx)(
00209                     const axis2_conf_ctx_t *conf_ctx,
00210                     const axis2_env_t *env,
00211                     const axis2_char_t *svc_grp_id);
00212 
00221         const axis2_char_t *(AXIS2_CALL *
00222                 get_root_dir)(
00223                     const axis2_conf_ctx_t *conf_ctx,
00224                     const axis2_env_t *env);
00225 
00235         axis2_status_t (AXIS2_CALL *
00236                 set_root_dir)(
00237                     axis2_conf_ctx_t *conf_ctx,
00238                     const axis2_env_t *env,
00239                     const axis2_char_t *path);
00240 
00250         axis2_status_t (AXIS2_CALL *
00251                 init)(
00252                     axis2_conf_ctx_t *conf_ctx,
00253                     const axis2_env_t *env,
00254                     axis2_conf_t *conf);
00255    
00262         axis2_status_t (AXIS2_CALL *
00263                 free)(
00264                     axis2_conf_ctx_t *conf_ctx,
00265                     const axis2_env_t *env);
00266 
00279         axis2_svc_grp_ctx_t *(AXIS2_CALL *
00280                 fill_ctxs)(
00281                     axis2_conf_ctx_t *conf_ctx,
00282                     const axis2_env_t *env,
00283                     axis2_msg_ctx_t *msg_ctx);
00284     };
00285 
00289     struct axis2_conf_ctx
00290     {
00292         axis2_conf_ctx_ops_t *ops;
00293     };
00294 
00302     AXIS2_EXTERN axis2_conf_ctx_t *AXIS2_CALL
00303     axis2_conf_ctx_create(
00304         const axis2_env_t *env, 
00305         struct axis2_conf *conf);
00306 
00309 #define AXIS2_CONF_CTX_SET_CONF(conf_ctx, env, conf) \
00310         ((conf_ctx)->ops->set_conf(conf_ctx, env, conf))
00311 
00314 #define AXIS2_CONF_CTX_GET_BASE(conf_ctx, env) \
00315         ((conf_ctx)->ops->get_base(conf_ctx, env))
00316 
00319 #define AXIS2_CONF_CTX_GET_CONF(conf_ctx, env) \
00320         ((conf_ctx)->ops->get_conf(conf_ctx, env))
00321 
00324 #define AXIS2_CONF_CTX_GET_OP_CTX_MAP(conf_ctx, env) \
00325         ((conf_ctx)->ops->get_op_ctx_map(conf_ctx, env))
00326 
00329 #define AXIS2_CONF_CTX_GET_SVC_CTX_MAP(conf_ctx, env) \
00330         ((conf_ctx)->ops->get_svc_ctx_map(conf_ctx, env))
00331 
00334 #define AXIS2_CONF_CTX_GET_SVC_GRP_CTX_MAP(conf_ctx, env) \
00335         ((conf_ctx)->ops->get_svc_grp_ctx_map(conf_ctx, env))
00336     
00339 #define AXIS2_CONF_CTX_REGISTER_OP_CTX(conf_ctx, env, message_id, op_ctx) \
00340         ((conf_ctx)->ops->register_op_ctx(conf_ctx, env, message_id, op_ctx))
00341 
00344 #define AXIS2_CONF_CTX_GET_OP_CTX(conf_ctx, env, message_id) \
00345         ((conf_ctx)->ops->get_op_ctx(conf_ctx, env, message_id))
00346 
00349 #define AXIS2_CONF_CTX_REGISTER_SVC_CTX(conf_ctx, env, svc_id, svc_ctx) \
00350         ((conf_ctx)->ops->register_svc_ctx(conf_ctx, env, svc_id, svc_ctx))
00351 
00354 #define AXIS2_CONF_CTX_GET_SVC_CTX(conf_ctx, env, svc_id) \
00355         ((conf_ctx)->ops->get_svc_ctx(conf_ctx, env, svc_id))
00356 
00359 #define AXIS2_CONF_CTX_REGISTER_SVC_GRP_CTX(conf_ctx, env, svc_grp_id, svc_grp_ctx) \
00360         ((conf_ctx)->ops->register_svc_grp_ctx(conf_ctx, env, svc_grp_id, svc_grp_ctx))
00361 
00364 #define AXIS2_CONF_CTX_GET_SVC_GRP_CTX(conf_ctx, env, svc_grp_id) \
00365         ((conf_ctx)->ops->get_svc_grp_ctx(conf_ctx, env, svc_grp_id))
00366 
00369 #define AXIS2_CONF_CTX_GET_ROOT_DIR(conf_ctx, env) \
00370         ((conf_ctx)->ops->get_root_dir(conf_ctx, env))
00371 
00374 #define AXIS2_CONF_CTX_SET_ROOT_DIR(conf_ctx, env, path) \
00375         ((conf_ctx)->ops->set_root_dir(conf_ctx, env, path))
00376 
00379 #define AXIS2_CONF_CTX_INIT(conf_ctx, env, conf) \
00380         ((conf_ctx)->ops->init(conf_ctx, env, conf))
00381 
00384 #define AXIS2_CONF_CTX_FREE(conf_ctx, env) \
00385         ((conf_ctx)->ops->free(conf_ctx, env))
00386 
00390 #define AXIS2_CONF_CTX_FILL_CTXS(conf_ctx, env, msg_ctx) \
00391         ((conf_ctx)->ops->fill_ctxs(conf_ctx, env, msg_ctx))
00392 
00394 #ifdef __cplusplus
00395 }
00396 #endif
00397 
00398 #endif                          /* AXIS2_CONF_CTX_H */

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