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

axis2_desc.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_DESC_H
00018 #define AXIS2_DESC_H
00019 
00025 #include <axis2_param_container.h>
00026 #include <axis2_hash.h>
00027 #include <axis2_description.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033 
00038 typedef struct axis2_desc_ops axis2_desc_ops_t;    
00039 typedef struct axis2_desc axis2_desc_t;    
00040 
00041     
00046 AXIS2_DECLARE_DATA struct axis2_desc_ops
00047 {
00048     axis2_status_t (AXIS2_CALL *
00049     free) (
00050         axis2_desc_t *desc, 
00051         const axis2_env_t *env);
00052     
00053     axis2_status_t (AXIS2_CALL *
00054     add_param) (axis2_desc_t *desc, 
00055         const axis2_env_t *env,       
00056         axis2_param_t *param);
00057     
00058     axis2_param_t *(AXIS2_CALL *
00059     get_param) (
00060         const axis2_desc_t *desc, 
00061         const axis2_env_t *env,
00062         const axis2_char_t *param_name);
00063     
00064     axis2_array_list_t *(AXIS2_CALL *
00065     get_all_params)(
00066         axis2_desc_t *desc, 
00067         const axis2_env_t *env);
00068     
00069     axis2_bool_t (AXIS2_CALL *
00070     is_param_locked)(
00071         const axis2_desc_t *desc, 
00072         const axis2_env_t *env,
00073         const axis2_char_t *param_name);
00074     
00075     /*axis2_status_t (AXIS2_CALL *
00076     set_policy_container)(
00077         axis2_desc_t *desc, 
00078         const axis2_env_t *env,
00079         axis2_policy_container_t *policy_container);
00080     
00081     axis2_policy_container_t *(AXIS2_CALL *
00082     get_policy_container)(
00083         const axis2_desc_t *desc, 
00084         const axis2_env_t *env);*/
00085     
00086     axis2_status_t (AXIS2_CALL *
00087     add_child)(
00088         const axis2_desc_t *desc, 
00089         const axis2_env_t *env,
00090         const axis2_char_t *key, 
00091         const void* child); 
00092     
00093     axis2_hash_t *(AXIS2_CALL *
00094     get_all_children)(const axis2_desc_t *desc, 
00095         const axis2_env_t *env);
00096     
00097     void *(AXIS2_CALL *
00098     get_child)(const axis2_desc_t *desc, 
00099         const axis2_env_t *env,
00100         const axis2_char_t *key);
00101     
00102     axis2_status_t (AXIS2_CALL *
00103     remove_child)(const axis2_desc_t *desc, 
00104         const axis2_env_t *env,
00105         const axis2_char_t *key);
00106 };
00107 
00112 AXIS2_DECLARE_DATA struct axis2_desc
00113 {
00114     axis2_desc_ops_t *ops;
00115 
00116 };
00117 
00122 AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
00123 axis2_desc_create (const axis2_env_t *env);
00124 
00125 /************************** Start of function macros **************************/
00126 
00127 #define AXIS2_DESC_FREE(desc, env) \
00128         ((desc)->ops->free (desc, env))
00129 
00130 #define AXIS2_DESC_ADD_PARAM(desc, env, param) \
00131       ((desc)->ops->add_param (desc, env, param))
00132 
00133 #define AXIS2_DESC_GET_PARAM(desc, env, key) \
00134       ((desc)->ops->get_param (desc, env, key))
00135 
00136 #define AXIS2_DESC_GET_ALL_PARAMS(desc, env) \
00137       ((desc)->ops->get_all_params (desc, env))
00138 
00139 #define AXIS2_DESC_IS_PARAM_LOCKED(desc, env, param_name) \
00140         ((desc)->ops->is_param_locked(desc, env, param_name))
00141 
00142 #define AXIS2_DESC_SET_POLICY_INCLUDE(desc, env, policy_container) \
00143     ((desc)->ops->set_policy_include(desc, env, policy_container))
00144 
00145 #define AXIS2_DESC_GET_POLICY_INCLUDE(desc, env) \
00146     ((desc)->ops->get_policy_container(desc, env))
00147     
00148 #define AXIS2_DESC_ADD_CHILD(desc, env, key, child) \
00149     ((desc)->ops->add_child(desc, env, key, child))
00150     
00151 #define AXIS2_DESC_GET_ALL_CHILDREN(desc, env) \
00152     ((desc)->ops->get_all_children(desc, env))
00153     
00154 #define AXIS2_DESC_GET_CHILD(desc, env, key) \
00155     ((desc)->ops->get_child(desc, env, key))
00156     
00157 #define AXIS2_DESC_REMOVE_CHILD(desc, env, key) \
00158     ((desc)->ops->remove_child(desc, env, key))
00159 
00161 #ifdef __cplusplus
00162 }
00163 #endif
00164 #endif  /* AXIS2_DESC_H */

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