00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIS2_SVC_GRP_H
00019 #define AXIS2_SVC_GRP_H
00020
00047 #include <axis2_param_container.h>
00048 #include <axis2_svc.h>
00049 #include <axis2_svc_grp_ctx.h>
00050
00051 #ifdef __cplusplus
00052 extern "C"
00053 {
00054 #endif
00055
00057 typedef struct axis2_svc_grp_ops axis2_svc_grp_ops_t;
00059 typedef struct axis2_svc_grp axis2_svc_grp_t;
00060
00061 struct axis2_svc;
00062 struct axis2_svc_grp_ctx;
00063
00068 struct axis2_svc_grp_ops
00069 {
00076 axis2_status_t (AXIS2_CALL *
00077 free)(
00078 axis2_svc_grp_t *svc_grp,
00079 const axis2_env_t *env);
00080
00088 axis2_status_t (AXIS2_CALL *
00089 set_name)(
00090 axis2_svc_grp_t *svc_grp,
00091 const axis2_env_t *env,
00092 const axis2_char_t *svc_grp_name);
00093
00100 const axis2_char_t *(AXIS2_CALL *
00101 get_name)(
00102 const axis2_svc_grp_t *svc_grp,
00103 const axis2_env_t *env) ;
00104
00113 axis2_status_t (AXIS2_CALL *
00114 add_svc)(
00115 axis2_svc_grp_t *svc_grp,
00116 const axis2_env_t *env,
00117 struct axis2_svc *svc) ;
00118
00127 struct axis2_svc *(AXIS2_CALL *
00128 get_svc)(
00129 const axis2_svc_grp_t *svc_grp,
00130 const axis2_env_t *env,
00131 const axis2_qname_t *svc_qname);
00132
00140 axis2_hash_t *(AXIS2_CALL *
00141 get_all_svcs)(
00142 const axis2_svc_grp_t *svc_grp,
00143 const axis2_env_t *env);
00144
00152 axis2_status_t (AXIS2_CALL *
00153 remove_svc)(
00154 axis2_svc_grp_t *svc_grp,
00155 const axis2_env_t *env,
00156 const axis2_qname_t *svc_qname);
00157
00166 axis2_status_t (AXIS2_CALL *
00167 add_param)(
00168 axis2_svc_grp_t *svc_grp,
00169 const axis2_env_t *env,
00170 axis2_param_t *param);
00171
00180 axis2_param_t *(AXIS2_CALL *
00181 get_param)(
00182 const axis2_svc_grp_t *svc_grp,
00183 const axis2_env_t *env,
00184 const axis2_char_t *name);
00185
00193 axis2_array_list_t *(AXIS2_CALL *
00194 get_all_params)(
00195 const axis2_svc_grp_t *svc_grp,
00196 const axis2_env_t *env);
00197
00205 axis2_bool_t (AXIS2_CALL *
00206 is_param_locked)(
00207 axis2_svc_grp_t *svc_grp,
00208 const axis2_env_t *env,
00209 const axis2_char_t *param_name);
00210
00218 axis2_status_t (AXIS2_CALL *
00219 add_module_qname)(
00220 axis2_svc_grp_t *svc_grp,
00221 const axis2_env_t *env,
00222 const axis2_qname_t *module_qname);
00223
00231 struct axis2_conf *(AXIS2_CALL *
00232 get_parent)(
00233 const axis2_svc_grp_t *svc_grp,
00234 const axis2_env_t *env);
00235
00244 axis2_status_t (AXIS2_CALL *
00245 set_parent)(
00246 axis2_svc_grp_t *svc_grp,
00247 const axis2_env_t *env,
00248 struct axis2_conf *parent);
00249
00259 axis2_status_t (AXIS2_CALL *
00260 engage_module)(
00261 axis2_svc_grp_t *svc_grp,
00262 const axis2_env_t *env,
00263 const axis2_qname_t *module_qname);
00264
00272 axis2_array_list_t *(AXIS2_CALL *
00273 get_all_module_qnames)(
00274 const axis2_svc_grp_t *svc_grp,
00275 const axis2_env_t *env);
00276
00284 axis2_status_t (AXIS2_CALL *
00285 add_module_ref)(
00286 axis2_svc_grp_t *svc_grp,
00287 const axis2_env_t *env,
00288 const axis2_qname_t *moduleref);
00289
00297 axis2_array_list_t *(AXIS2_CALL *
00298 get_all_module_refs)(
00299 const axis2_svc_grp_t *svc_grp,
00300 const axis2_env_t *env);
00301
00311 struct axis2_svc_grp_ctx *(AXIS2_CALL *
00312 get_svc_grp_ctx)(
00313 const axis2_svc_grp_t *svc_grp,
00314 const axis2_env_t *env,
00315 struct axis2_conf_ctx *parent);
00316
00317 };
00318
00322 struct axis2_svc_grp
00323 {
00325 axis2_svc_grp_ops_t *ops;
00327 axis2_param_container_t *param_container;
00328
00329 };
00330
00336 AXIS2_EXTERN axis2_svc_grp_t *AXIS2_CALL
00337 axis2_svc_grp_create(
00338 const axis2_env_t *env);
00339
00347 AXIS2_EXTERN axis2_svc_grp_t *AXIS2_CALL
00348 axis2_svc_grp_create_with_conf(
00349 const axis2_env_t *env,
00350 struct axis2_conf *conf);
00351
00354 #define AXIS2_SVC_GRP_FREE(svc_grp, env) ((svc_grp)->ops->free (svc_grp , env))
00355
00358 #define AXIS2_SVC_GRP_SET_NAME(svc_grp, env , svc_grp_name) \
00359 ((svc_grp)->ops->set_name (svc_grp, env, svc_grp_name))
00360
00363 #define AXIS2_SVC_GRP_GET_NAME(svc_grp, env) \
00364 ((svc_grp)->ops->get_name(svc_grp, env))
00365
00368 #define AXIS2_SVC_GRP_ADD_SVC(svc_grp, env , svc) \
00369 ((svc_grp)->ops->add_svc (svc_grp, env, svc))
00370
00373 #define AXIS2_SVC_GRP_GET_SVC(svc_grp, env , svc_name) \
00374 ((svc_grp)->ops->get_svc(svc_grp, env, svc_names))
00375
00378 #define AXIS2_SVC_GRP_GET_ALL_SVCS(svc_grp, env) \
00379 ((svc_grp)->ops->get_all_svcs(svc_grp, env))
00380
00383 #define AXIS2_SVC_GRP_REMOVE_SVC(svc_grp, env, svc_name) \
00384 ((svc_grp)->ops->remove_svc(svc_grp, env, svc_name))
00385
00388 #define AXIS2_SVC_GRP_ADD_PARAM(svc_grp, env, param) \
00389 ((svc_grp)->ops->add_param(svc_grp, env, param))
00390
00393 #define AXIS2_SVC_GRP_GET_PARAM(svc_grp, env, name) \
00394 ((svc_grp)->ops->get_param(svc_grp, env, name))
00395
00398 #define AXIS2_SVC_GRP_GET_ALL_PARAMS(svc_grp, env) \
00399 ((svc_grp)->ops->get_all_params(svc_grp, env))
00400
00403 #define AXIS2_SVC_GRP_IS_PARAM_LOCKED(svc_grp, env , param_name) \
00404 ((svc_grp)->ops->is_param_locked(svc_grp, env, param_name))
00405
00408 #define AXIS2_SVC_GRP_ADD_MODULE_QNAME(svc_grp, env , module_qname) \
00409 ((svc_grp)->ops->add_module_qname(svc_grp, env, module_qname))
00410
00413 #define AXIS2_SVC_GRP_GET_PARENT(svc_grp, env) \
00414 ((svc_grp)->ops->get_parent(svc_grp, env))
00415
00418 #define AXIS2_SVC_GRP_SET_PARENT(svc_grp, env , parent) \
00419 ((svc_grp)->ops->set_parent(svc_grp, env, parent))
00420
00423 #define AXIS2_SVC_GRP_ENGAGE_MODULE(svc_grp, env, module_name) \
00424 ((svc_grp)engage_module_modulep, env, module_name))
00425
00428 #define AXIS2_SVC_GRP_GET_ALL_MODULE_QNAMES(svc_grp, env) \
00429 ((svc_grp)->ops->get_all_module_qnames(svc_grp, env))
00430
00433 #define AXIS2_SVC_GRP_ADD_MODULE_REF(svc_grp, env, moduleref) \
00434 ((svc_grp)->ops->add_module_ref(svc_grp, env, moduleref))
00435
00438 #define AXIS2_SVC_GRP_GET_ALL_MODULE_REFS(svc_grp, env) \
00439 ((svc_grp)->ops->get_all_module_refs(svc_grp, env))
00440
00443 #define AXIS2_SVC_GRP_GET_SVC_GRP_CTX(svc_grp, env, parent) \
00444 ((svc_grp)->ops->get_svc_grp_ctx(svc_grp, env, parent))
00445
00447 #ifdef __cplusplus
00448 }
00449 #endif
00450 #endif