Main Page | Modules | Class List | Directories | File List | Class Members | File Members | Examples

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 
00025 #include <axis2_param_container.h>
00026 #include <axis2_svc.h>
00027 #include <axis2_svc_grp_ctx.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033 
00039 struct axis2_svc;
00040 struct axis2_svc_grp_ctx;    
00041 typedef struct axis2_svc_grp_ops axis2_svc_grp_ops_t;    
00042 typedef struct axis2_svc_grp axis2_svc_grp_t;
00043     
00048 struct axis2_svc_grp_ops
00049 {
00054     axis2_status_t (AXIS2_CALL *
00055     free) (axis2_svc_grp_t *svc_grp, 
00056            const axis2_env_t *env);
00057     
00063     axis2_status_t (AXIS2_CALL *
00064     set_name) (axis2_svc_grp_t *svc_grp, 
00065                 const axis2_env_t *env, 
00066                 axis2_char_t *svc_grp_name);
00071     axis2_char_t *(AXIS2_CALL *
00072     get_name) (axis2_svc_grp_t *svc_grp, 
00073                const axis2_env_t *env) ;
00079    axis2_status_t (AXIS2_CALL *
00080     add_svc) (axis2_svc_grp_t *svc_grp, 
00081                 const axis2_env_t *env,
00082                 struct axis2_svc *svc) ;
00083     
00089    struct axis2_svc *(AXIS2_CALL *
00090     get_svc) (axis2_svc_grp_t *svc_grp, 
00091                 const axis2_env_t *env,
00092                 axis2_qname_t *svc_name);
00093     
00094     axis2_hash_t *(AXIS2_CALL *
00095     get_svcs) (axis2_svc_grp_t *svc_grp, 
00096                const axis2_env_t *env);
00097     
00098    axis2_status_t (AXIS2_CALL *
00099     remove_svc) (axis2_svc_grp_t *svc_grp, 
00100                  const axis2_env_t *env,
00101                  axis2_qname_t *svc_name);
00102         
00103    axis2_status_t (AXIS2_CALL *
00104     add_param) (axis2_svc_grp_t *svc_grp, 
00105                 const axis2_env_t *env, 
00106                 axis2_param_t *param);
00107         
00108    axis2_param_t *(AXIS2_CALL *
00109     get_param) (axis2_svc_grp_t *svc_grp, 
00110                 const axis2_env_t *env, 
00111                 const axis2_char_t *name);
00112         
00113    axis2_array_list_t *(AXIS2_CALL *
00114     get_params) (axis2_svc_grp_t *svc_grp, 
00115                  const axis2_env_t *env);
00116     
00117    axis2_bool_t (AXIS2_CALL *
00118     is_param_locked) (axis2_svc_grp_t *svc_grp, 
00119                         const axis2_env_t *env, 
00120                         axis2_char_t *param_name);
00121                         
00122     axis2_status_t (AXIS2_CALL *
00123     add_module) (axis2_svc_grp_t *svc_grp, 
00124                     const axis2_env_t *env,
00125                     axis2_qname_t *module_qname);
00126 
00127     struct axis2_conf * (AXIS2_CALL *
00128     get_parent) (axis2_svc_grp_t *svc_grp,
00129                     const axis2_env_t *env);
00130     
00131     axis2_status_t (AXIS2_CALL *
00132     set_parent) (axis2_svc_grp_t *svc_grp,
00133                     const axis2_env_t *env,
00134                     struct axis2_conf *parent);
00135                         
00136     axis2_status_t (AXIS2_CALL *
00137     engage_module_to_grp) (axis2_svc_grp_t *svc_grp,
00138                                         const axis2_env_t *env,
00139                                         axis2_qname_t *module_name);
00140     
00141     axis2_array_list_t *(AXIS2_CALL *
00142     get_svc_grp_modules) (axis2_svc_grp_t *svc_grp,
00143                                         const axis2_env_t *env);
00144     
00145     struct axis2_conf *(AXIS2_CALL *
00146     get_axis_desc) (axis2_svc_grp_t *svc_grp,
00147                                 const axis2_env_t *env);
00148     
00149     axis2_status_t (AXIS2_CALL *
00150     set_axis_desc) (axis2_svc_grp_t *svc_grp,
00151                                 const axis2_env_t *env,
00152                                 struct axis2_conf *axis2_desc);
00153     
00154     axis2_status_t (AXIS2_CALL *
00155     add_moduleref) (axis2_svc_grp_t *svc_grp,
00156                                 const axis2_env_t *env,
00157                                 axis2_qname_t *moduleref);
00158     
00159     axis2_array_list_t *(AXIS2_CALL *
00160     get_modules) (axis2_svc_grp_t *svc_grp,
00161                                 const axis2_env_t *env); 
00162                                 
00163     struct axis2_svc_grp_ctx *(AXIS2_CALL *
00164     get_svc_grp_ctx) (axis2_svc_grp_t *svc_grp,
00165                                 const axis2_env_t *env,
00166                                 struct axis2_conf_ctx *parent);                                
00167                                 
00168 };
00169 
00174 struct axis2_svc_grp
00175 {
00176    axis2_svc_grp_ops_t *ops; 
00177     axis2_param_container_t *param_container;    
00178 
00179 };
00180 
00185 AXIS2_EXTERN axis2_svc_grp_t * AXIS2_CALL
00186 axis2_svc_grp_create (const axis2_env_t *env);
00187 
00193 AXIS2_EXTERN axis2_svc_grp_t * AXIS2_CALL 
00194 axis2_svc_grp_create_with_conf (const axis2_env_t *env,
00195                                          struct axis2_conf *conf);
00196 
00197 /**************************** Start of function macros ************************/
00198 
00199 #define AXIS2_SVC_GRP_FREE(svc_grp, env) ((svc_grp)->ops->free (svc_grp , env))
00200    
00201 #define AXIS2_SVC_GRP_SET_NAME(svc_grp, env , svc_grp_name) \
00202         ((svc_grp)->ops->set_name (svc_grp, env, svc_grp_name))
00203       
00204 #define AXIS2_SVC_GRP_GET_NAME(svc_grp, env) \
00205         ((svc_grp)->ops->get_name(svc_grp, env))
00206 
00207 #define AXIS2_SVC_GRP_ADD_SVC(svc_grp, env , svc) \
00208         ((svc_grp)->ops->add_svc (svc_grp, env, svc))
00209 
00210 #define AXIS2_SVC_GRP_GET_SVC(svc_grp, env , svc) \
00211         ((svc_grp)->ops->get_svc(svc_grp, env, svc))
00212 
00213 #define AXIS2_SVC_GRP_GET_SVCS(svc_grp, env) \
00214         ((svc_grp)->ops->get_svcs(svc_grp, env))
00215         
00216 #define AXIS2_SVC_GRP_REMOVE_SVC(svc_grp, env, srvc_name) \
00217       ((svc_grp)->ops->remove_svc(svc_grp, env, srvc_name))      
00218 
00219 #define AXIS2_SVC_GRP_ADD_PARAM(svc_grp, env, param) \
00220       ((svc_grp)->ops->add_param(svc_grp, env, param))
00221       
00222 #define AXIS2_SVC_GRP_GET_PARAM(svc_grp, env, name) \
00223       ((svc_grp)->ops->get_param(svc_grp, env, name))
00224       
00225 #define AXIS2_SVC_GRP_GET_PARAMS(svc_grp, env) \
00226         ((svc_grp)->ops->get_params(svc_grp, env))
00227             
00228 #define AXIS2_SVC_GRP_IS_PARAM_LOCKED(svc_grp, env , param_name) \
00229         ((svc_grp)->ops->is_param_locked(svc_grp, env, param_name))
00230 
00231 #define AXIS2_SVC_GRP_ADD_MODULE(svc_grp, env , module_qname) \
00232         ((svc_grp)->ops->add_module(svc_grp, env, module_qname))
00233 
00234 #define AXIS2_SVC_GRP_GET_PARENT(svc_grp, env) \
00235         ((svc_grp)->ops->get_parent(svc_grp, env))
00236         
00237 #define AXIS2_SVC_GRP_SET_PARENT(svc_grp, env , parent) \
00238         ((svc_grp)->ops->set_parent(svc_grp, env, parent)) 
00239 
00240 #define AXIS2_SVC_GRP_ENGAGE_MODULE_TO_GRP(svc_grp, env, module_name) \
00241         ((svc_grp)->ops->engage_module_to_grp(svc_grp, env, module_name))
00242         
00243 #define AXIS2_SVC_GRP_GET_SVC_GRP_MODULES(svc_grp, env) \
00244         ((svc_grp)->ops->get_svc_grp_modules(svc_grp, env))
00245 
00246 #define AXIS2_SVC_GRP_GET_AXIS_DESC(svc_grp, env) \
00247         ((svc_grp)->ops->get_axis_desc(svc_grp, env))
00248         
00249 #define AXIS2_SVC_GRP_SET_AXIS_DESC(svc_grp, env, axis2_desc) \
00250         ((svc_grp)->ops->set_axis_desc(svc_grp, env, axis2_desc))
00251 
00252 #define AXIS2_SVC_GRP_ADD_MODULEREF(svc_grp, env, moduleref) \
00253         ((svc_grp)->ops->add_moduleref(svc_grp, env, moduleref))
00254         
00255 #define AXIS2_SVC_GRP_GET_MODULES(svc_grp, env) \
00256         ((svc_grp)->ops->get_modules(svc_grp, env)) 
00257  
00258 #define AXIS2_SVC_GRP_GET_SVC_GRP_CTX(svc_grp, env, parent) \
00259         ((svc_grp)->ops->get_svc_grp_ctx(svc_grp, env, parent))  
00260         
00261         
00262                             
00263 /**************************** End of function macros **************************/        
00264 
00266 #ifdef __cplusplus
00267 }
00268 #endif
00269 #endif                          /* AXIS2_SVC_GRP_H  */

Generated on Fri Jun 16 18:02:31 2006 for Axis2/C by  doxygen 1.4.2