00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef AXIS2_SVC_GRP_H
00018 #define AXIS2_SVC_GRP_H
00019
00046 #include <axis2_param_container.h>
00047 #include <axis2_svc.h>
00048 #include <axis2_svc_grp_ctx.h>
00049
00050 #ifdef __cplusplus
00051 extern "C"
00052 {
00053 #endif
00054
00056 typedef struct axis2_svc_grp_ops axis2_svc_grp_ops_t;
00058 typedef struct axis2_svc_grp axis2_svc_grp_t;
00059
00060 struct axis2_svc;
00061 struct axis2_svc_grp_ctx;
00062
00067 struct axis2_svc_grp_ops
00068 {
00075 axis2_status_t (AXIS2_CALL *
00076 free)(
00077 axis2_svc_grp_t *svc_grp,
00078 const axis2_env_t *env);
00079
00087 axis2_status_t (AXIS2_CALL *
00088 set_name)(
00089 axis2_svc_grp_t *svc_grp,
00090 const axis2_env_t *env,
00091 const axis2_char_t *svc_grp_name);
00092
00099 const axis2_char_t *(AXIS2_CALL *
00100 get_name)(
00101 const axis2_svc_grp_t *svc_grp,
00102 const axis2_env_t *env) ;
00103
00112 axis2_status_t (AXIS2_CALL *
00113 add_svc)(
00114 axis2_svc_grp_t *svc_grp,
00115 const axis2_env_t *env,
00116 struct axis2_svc *svc) ;
00117
00126 struct axis2_svc *(AXIS2_CALL *
00127 get_svc)(
00128 const axis2_svc_grp_t *svc_grp,
00129 const axis2_env_t *env,
00130 const axis2_qname_t *svc_qname);
00131
00139 axis2_hash_t *(AXIS2_CALL *
00140 get_all_svcs)(
00141 const axis2_svc_grp_t *svc_grp,
00142 const axis2_env_t *env);
00143
00151 axis2_status_t (AXIS2_CALL *
00152 remove_svc)(
00153 axis2_svc_grp_t *svc_grp,
00154 const axis2_env_t *env,
00155 const axis2_qname_t *svc_qname);
00156
00165 axis2_status_t (AXIS2_CALL *
00166 add_param)(
00167 axis2_svc_grp_t *svc_grp,
00168 const axis2_env_t *env,
00169 axis2_param_t *param);
00170
00179 axis2_param_t *(AXIS2_CALL *
00180 get_param)(
00181 const axis2_svc_grp_t *svc_grp,
00182 const axis2_env_t *env,
00183 const axis2_char_t *name);
00184
00192 axis2_array_list_t *(AXIS2_CALL *
00193 get_all_params)(
00194 const axis2_svc_grp_t *svc_grp,
00195 const axis2_env_t *env);
00196
00204 axis2_bool_t (AXIS2_CALL *
00205 is_param_locked)(
00206 axis2_svc_grp_t *svc_grp,
00207 const axis2_env_t *env,
00208 const axis2_char_t *param_name);
00209
00217 axis2_status_t (AXIS2_CALL *
00218 add_module_qname)(
00219 axis2_svc_grp_t *svc_grp,
00220 const axis2_env_t *env,
00221 const axis2_qname_t *module_qname);
00222
00230 struct axis2_conf *(AXIS2_CALL *
00231 get_parent)(
00232 const axis2_svc_grp_t *svc_grp,
00233 const axis2_env_t *env);
00234
00243 axis2_status_t (AXIS2_CALL *
00244 set_parent)(
00245 axis2_svc_grp_t *svc_grp,
00246 const axis2_env_t *env,
00247 struct axis2_conf *parent);
00248
00258 axis2_status_t (AXIS2_CALL *
00259 engage_module)(
00260 axis2_svc_grp_t *svc_grp,
00261 const axis2_env_t *env,
00262 const axis2_qname_t *module_qname);
00263
00271 axis2_array_list_t *(AXIS2_CALL *
00272 get_all_module_qnames)(
00273 const axis2_svc_grp_t *svc_grp,
00274 const axis2_env_t *env);
00275
00283 axis2_status_t (AXIS2_CALL *
00284 add_module_ref)(
00285 axis2_svc_grp_t *svc_grp,
00286 const axis2_env_t *env,
00287 const axis2_qname_t *moduleref);
00288
00296 axis2_array_list_t *(AXIS2_CALL *
00297 get_all_module_refs)(
00298 const axis2_svc_grp_t *svc_grp,
00299 const axis2_env_t *env);
00300
00310 struct axis2_svc_grp_ctx *(AXIS2_CALL *
00311 get_svc_grp_ctx)(
00312 const axis2_svc_grp_t *svc_grp,
00313 const axis2_env_t *env,
00314 struct axis2_conf_ctx *parent);
00315
00316 };
00317
00321 struct axis2_svc_grp
00322 {
00324 axis2_svc_grp_ops_t *ops;
00326 axis2_param_container_t *param_container;
00327
00328 };
00329
00335 AXIS2_EXTERN axis2_svc_grp_t *AXIS2_CALL
00336 axis2_svc_grp_create(
00337 const axis2_env_t *env);
00338
00346 AXIS2_EXTERN axis2_svc_grp_t *AXIS2_CALL
00347 axis2_svc_grp_create_with_conf(
00348 const axis2_env_t *env,
00349 struct axis2_conf *conf);
00350
00353 #define AXIS2_SVC_GRP_FREE(svc_grp, env) ((svc_grp)->ops->free (svc_grp , env))
00354
00357 #define AXIS2_SVC_GRP_SET_NAME(svc_grp, env , svc_grp_name) \
00358 ((svc_grp)->ops->set_name (svc_grp, env, svc_grp_name))
00359
00362 #define AXIS2_SVC_GRP_GET_NAME(svc_grp, env) \
00363 ((svc_grp)->ops->get_name(svc_grp, env))
00364
00367 #define AXIS2_SVC_GRP_ADD_SVC(svc_grp, env , svc) \
00368 ((svc_grp)->ops->add_svc (svc_grp, env, svc))
00369
00372 #define AXIS2_SVC_GRP_GET_SVC(svc_grp, env , svc_name) \
00373 ((svc_grp)->ops->get_svc(svc_grp, env, svc_names))
00374
00377 #define AXIS2_SVC_GRP_GET_ALL_SVCS(svc_grp, env) \
00378 ((svc_grp)->ops->get_all_svcs(svc_grp, env))
00379
00382 #define AXIS2_SVC_GRP_REMOVE_SVC(svc_grp, env, svc_name) \
00383 ((svc_grp)->ops->remove_svc(svc_grp, env, svc_name))
00384
00387 #define AXIS2_SVC_GRP_ADD_PARAM(svc_grp, env, param) \
00388 ((svc_grp)->ops->add_param(svc_grp, env, param))
00389
00392 #define AXIS2_SVC_GRP_GET_PARAM(svc_grp, env, name) \
00393 ((svc_grp)->ops->get_param(svc_grp, env, name))
00394
00397 #define AXIS2_SVC_GRP_GET_ALL_PARAMS(svc_grp, env) \
00398 ((svc_grp)->ops->get_all_params(svc_grp, env))
00399
00402 #define AXIS2_SVC_GRP_IS_PARAM_LOCKED(svc_grp, env , param_name) \
00403 ((svc_grp)->ops->is_param_locked(svc_grp, env, param_name))
00404
00407 #define AXIS2_SVC_GRP_ADD_MODULE_QNAME(svc_grp, env , module_qname) \
00408 ((svc_grp)->ops->add_module_qname(svc_grp, env, module_qname))
00409
00412 #define AXIS2_SVC_GRP_GET_PARENT(svc_grp, env) \
00413 ((svc_grp)->ops->get_parent(svc_grp, env))
00414
00417 #define AXIS2_SVC_GRP_SET_PARENT(svc_grp, env , parent) \
00418 ((svc_grp)->ops->set_parent(svc_grp, env, parent))
00419
00422 #define AXIS2_SVC_GRP_ENGAGE_MODULE(svc_grp, env, module_name) \
00423 ((svc_grp)engage_module_modulep, env, module_name))
00424
00427 #define AXIS2_SVC_GRP_GET_ALL_MODULE_QNAMES(svc_grp, env) \
00428 ((svc_grp)->ops->get_all_module_qnames(svc_grp, env))
00429
00432 #define AXIS2_SVC_GRP_ADD_MODULE_REF(svc_grp, env, moduleref) \
00433 ((svc_grp)->ops->add_module_ref(svc_grp, env, moduleref))
00434
00437 #define AXIS2_SVC_GRP_GET_ALL_MODULE_REFS(svc_grp, env) \
00438 ((svc_grp)->ops->get_all_module_refs(svc_grp, env))
00439
00442 #define AXIS2_SVC_GRP_GET_SVC_GRP_CTX(svc_grp, env, parent) \
00443 ((svc_grp)->ops->get_svc_grp_ctx(svc_grp, env, parent))
00444
00446 #ifdef __cplusplus
00447 }
00448 #endif
00449 #endif