axis2_svc_grp.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
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                          /* AXIS2_SVC_GRP_H  */

Generated on Wed Dec 20 20:14:10 2006 for Axis2/C by  doxygen 1.5.1