axis2_svc_grp.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_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                          /* AXIS2_SVC_GRP_H  */

Generated on Tue Oct 3 20:47:59 2006 for Axis2/C by  doxygen 1.4.7