00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_SVC_GRP_CTX_H
00018 #define AXIS2_SVC_GRP_CTX_H
00019
00020
00026 #include <axis2_defines.h>
00027 #include <axis2_env.h>
00028 #include <axis2_svc_ctx.h>
00029 #include <axis2_svc_grp.h>
00030
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035
00041 struct axis2_svc_grp;
00042 typedef struct axis2_svc_grp_ctx_ops axis2_svc_grp_ctx_ops_t;
00043 typedef struct axis2_svc_grp_ctx axis2_svc_grp_ctx_t;
00044
00045
00050 struct axis2_svc_grp_ctx_ops
00051 {
00052 axis2_ctx_t* (AXIS2_CALL *
00053 get_base)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00054 const axis2_env_t *env);
00055
00056
00057 struct axis2_conf_ctx* (AXIS2_CALL *
00058 get_parent)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00059 const axis2_env_t *env);
00060
00061
00062 axis2_status_t (AXIS2_CALL *
00063 free)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00064 const axis2_env_t *env);
00065
00066
00070 axis2_status_t (AXIS2_CALL *
00071 init)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00072 const axis2_env_t *env,
00073 struct axis2_conf *conf);
00074
00075
00076 axis2_char_t* (AXIS2_CALL *
00077 get_id)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00078 const axis2_env_t *env);
00079
00080
00081 axis2_status_t (AXIS2_CALL *
00082 set_id)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00083 const axis2_env_t *env,
00084 axis2_char_t *id);
00085
00086
00088 struct axis2_svc_ctx* (AXIS2_CALL *
00089 get_svc_ctx)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00090 const axis2_env_t *env,
00091 axis2_char_t *svc_name);
00092
00098 axis2_status_t (AXIS2_CALL *
00099 fill_svc_ctx_map)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00100 const axis2_env_t *env);
00101
00102
00103 struct axis2_svc_grp* (AXIS2_CALL *
00104 get_svc_grp)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00105 const axis2_env_t *env);
00106
00107
00108 axis2_hash_t* (AXIS2_CALL *
00109 get_svc_ctx_map)(struct axis2_svc_grp_ctx *svc_grp_ctx,
00110 const axis2_env_t *env);
00111 };
00112
00117 struct axis2_svc_grp_ctx
00118 {
00119 axis2_svc_grp_ctx_ops_t *ops;
00120 };
00121
00122
00123 AXIS2_EXTERN axis2_svc_grp_ctx_t* AXIS2_CALL
00124 axis2_svc_grp_ctx_create(const axis2_env_t *env,
00125 struct axis2_svc_grp *svc_grp,
00126 struct axis2_conf_ctx *conf_ctx);
00127
00128
00129
00130 #define AXIS2_SVC_GRP_CTX_GET_BASE(svc_grp_ctx, env) \
00131 ((svc_grp_ctx)->ops->get_base(svc_grp_ctx, env))
00132
00133 #define AXIS2_SVC_GRP_CTX_GET_PARENT(svc_grp_ctx, env) \
00134 ((svc_grp_ctx)->ops->get_parent(svc_grp_ctx, env))
00135
00136 #define AXIS2_SVC_GRP_CTX_FREE(svc_grp_ctx, env)\
00137 ((svc_grp_ctx)->ops->free(svc_grp_ctx, env))
00138
00139 #define AXIS2_SVC_GRP_CTX_INIT(svc_grp_ctx, env, conf)\
00140 ((svc_grp_ctx)->ops->init(svc_grp_ctx, env, conf))
00141
00142 #define AXIS2_SVC_GRP_CTX_GET_ID(svc_grp_ctx, env) \
00143 ((svc_grp_ctx)->ops->get_id(svc_grp_ctx, env))
00144
00145 #define AXIS2_SVC_GRP_CTX_SET_ID(svc_grp_ctx, env, id) \
00146 ((svc_grp_ctx)->ops->set_id(svc_grp_ctx, env, id))
00147
00148 #define AXIS2_SVC_GRP_CTX_GET_SVC_CTX(svc_grp_ctx, env, svc_name) \
00149 ((svc_grp_ctx)->ops->get_svc_ctx(svc_grp_ctx, env, svc_name))
00150
00151 #define AXIS2_SVC_GRP_CTX_FILL_SVC_CTX_MAP(svc_grp_ctx, env) \
00152 ((svc_grp_ctx)->ops->fill_svc_ctx_map(svc_grp_ctx, env))
00153
00154 #define AXIS2_SVC_GRP_GET_SVC_GRP(svc_grp_ctx, env) \
00155 ((svc_grp_ctx)->ops->get_svc_grp(svc_grp_ctx, env))
00156
00157 #define AXIS2_SVC_GRP_GET_SVC_CTX_MAP(svc_grp_ctx, env) \
00158 ((svc_grp_ctx)->ops->get_svc_ctx_map(svc_grp_ctx, env))
00159
00160
00161
00163 #ifdef __cplusplus
00164 }
00165 #endif
00166
00167 #endif