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 
00032 #include <axis2_param_container.h>
00033 #include <axis2_hash.h>
00034 #include <axis2_description.h>
00035 
00036 #ifdef __cplusplus
00037 extern "C"
00038 {
00039 #endif
00040 
00042     typedef struct axis2_desc_ops axis2_desc_ops_t;
00044     typedef struct axis2_desc axis2_desc_t;
00045 
00050      struct axis2_desc_ops
00051     {
00058         axis2_status_t (AXIS2_CALL *
00059                 free)(
00060                     axis2_desc_t *desc,
00061                     const axis2_env_t *env);
00062 
00070         axis2_status_t (AXIS2_CALL *
00071                 add_param)(
00072                     axis2_desc_t *desc,
00073                     const axis2_env_t *env,
00074                     axis2_param_t *param);
00075 
00083         axis2_param_t *(AXIS2_CALL *
00084                 get_param) (
00085                     const axis2_desc_t *desc,
00086                     const axis2_env_t *env,
00087                     const axis2_char_t *param_name);
00088 
00095         axis2_array_list_t *(AXIS2_CALL *
00096                 get_all_params)(
00097                     const axis2_desc_t *desc,
00098                     const axis2_env_t *env);
00099 
00107         axis2_bool_t (AXIS2_CALL *
00108                 is_param_locked)(
00109                     const axis2_desc_t *desc,
00110                     const axis2_env_t *env,
00111                     const axis2_char_t *param_name);
00112 
00124         axis2_status_t (AXIS2_CALL *
00125                 add_child)(
00126                     const axis2_desc_t *desc,
00127                     const axis2_env_t *env,
00128                     const axis2_char_t *key,
00129                     const void *child);
00130 
00137         axis2_hash_t *(AXIS2_CALL *
00138                 get_all_children)(
00139                     const axis2_desc_t *desc,
00140                     const axis2_env_t *env);
00141 
00150         void *(AXIS2_CALL *
00151                 get_child)(
00152                     const axis2_desc_t *desc,
00153                     const axis2_env_t *env,
00154                     const axis2_char_t *key);
00155 
00163         axis2_status_t (AXIS2_CALL *
00164                 remove_child)(
00165                     const axis2_desc_t *desc,
00166                     const axis2_env_t *env,
00167                     const axis2_char_t *key);
00168     };
00169 
00173      struct axis2_desc
00174     {
00176         axis2_desc_ops_t *ops;
00177 
00178     };
00179 
00185     AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
00186     axis2_desc_create (
00187         const axis2_env_t *env);
00188 
00191 #define AXIS2_DESC_FREE(desc, env) \
00192         ((desc)->ops->free (desc, env))
00193 
00196 #define AXIS2_DESC_ADD_PARAM(desc, env, param) \
00197       ((desc)->ops->add_param (desc, env, param))
00198 
00201 #define AXIS2_DESC_GET_PARAM(desc, env, key) \
00202       ((desc)->ops->get_param (desc, env, key))
00203 
00206 #define AXIS2_DESC_GET_ALL_PARAMS(desc, env) \
00207       ((desc)->ops->get_all_params (desc, env))
00208 
00211 #define AXIS2_DESC_IS_PARAM_LOCKED(desc, env, param_name) \
00212         ((desc)->ops->is_param_locked(desc, env, param_name))
00213 
00216 #define AXIS2_DESC_ADD_CHILD(desc, env, key, child) \
00217     ((desc)->ops->add_child(desc, env, key, child))
00218 
00221 #define AXIS2_DESC_GET_ALL_CHILDREN(desc, env) \
00222     ((desc)->ops->get_all_children(desc, env))
00223 
00226 #define AXIS2_DESC_GET_CHILD(desc, env, key) \
00227     ((desc)->ops->get_child(desc, env, key))
00228 
00231 #define AXIS2_DESC_REMOVE_CHILD(desc, env, key) \
00232     ((desc)->ops->remove_child(desc, env, key))
00233 
00235 #ifdef __cplusplus
00236 }
00237 #endif
00238 #endif  /* AXIS2_DESC_H */

Generated on Thu Oct 26 21:11:23 2006 for Axis2/C by  doxygen 1.4.7