axis2_desc.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_DESC_H
00019 #define AXIS2_DESC_H
00020 
00033 #include <axis2_param_container.h>
00034 #include <axis2_hash.h>
00035 #include <axis2_description.h>
00036 
00037 #ifdef __cplusplus
00038 extern "C"
00039 {
00040 #endif
00041 
00043     typedef struct axis2_desc_ops axis2_desc_ops_t;
00045     typedef struct axis2_desc axis2_desc_t;
00046 
00051      struct axis2_desc_ops
00052     {
00059         axis2_status_t (AXIS2_CALL *
00060                 free)(
00061                     axis2_desc_t *desc,
00062                     const axis2_env_t *env);
00063 
00071         axis2_status_t (AXIS2_CALL *
00072                 add_param)(
00073                     axis2_desc_t *desc,
00074                     const axis2_env_t *env,
00075                     axis2_param_t *param);
00076 
00084         axis2_param_t *(AXIS2_CALL *
00085                 get_param) (
00086                     const axis2_desc_t *desc,
00087                     const axis2_env_t *env,
00088                     const axis2_char_t *param_name);
00089 
00096         axis2_array_list_t *(AXIS2_CALL *
00097                 get_all_params)(
00098                     const axis2_desc_t *desc,
00099                     const axis2_env_t *env);
00100 
00108         axis2_bool_t (AXIS2_CALL *
00109                 is_param_locked)(
00110                     const axis2_desc_t *desc,
00111                     const axis2_env_t *env,
00112                     const axis2_char_t *param_name);
00113 
00125         axis2_status_t (AXIS2_CALL *
00126                 add_child)(
00127                     const axis2_desc_t *desc,
00128                     const axis2_env_t *env,
00129                     const axis2_char_t *key,
00130                     const void *child);
00131 
00138         axis2_hash_t *(AXIS2_CALL *
00139                 get_all_children)(
00140                     const axis2_desc_t *desc,
00141                     const axis2_env_t *env);
00142 
00151         void *(AXIS2_CALL *
00152                 get_child)(
00153                     const axis2_desc_t *desc,
00154                     const axis2_env_t *env,
00155                     const axis2_char_t *key);
00156 
00164         axis2_status_t (AXIS2_CALL *
00165                 remove_child)(
00166                     const axis2_desc_t *desc,
00167                     const axis2_env_t *env,
00168                     const axis2_char_t *key);
00169     };
00170 
00174      struct axis2_desc
00175     {
00177         axis2_desc_ops_t *ops;
00178 
00179     };
00180 
00186     AXIS2_EXTERN axis2_desc_t *AXIS2_CALL
00187     axis2_desc_create (
00188         const axis2_env_t *env);
00189 
00192 #define AXIS2_DESC_FREE(desc, env) \
00193         ((desc)->ops->free (desc, env))
00194 
00197 #define AXIS2_DESC_ADD_PARAM(desc, env, param) \
00198       ((desc)->ops->add_param (desc, env, param))
00199 
00202 #define AXIS2_DESC_GET_PARAM(desc, env, key) \
00203       ((desc)->ops->get_param (desc, env, key))
00204 
00207 #define AXIS2_DESC_GET_ALL_PARAMS(desc, env) \
00208       ((desc)->ops->get_all_params (desc, env))
00209 
00212 #define AXIS2_DESC_IS_PARAM_LOCKED(desc, env, param_name) \
00213         ((desc)->ops->is_param_locked(desc, env, param_name))
00214 
00217 #define AXIS2_DESC_ADD_CHILD(desc, env, key, child) \
00218     ((desc)->ops->add_child(desc, env, key, child))
00219 
00222 #define AXIS2_DESC_GET_ALL_CHILDREN(desc, env) \
00223     ((desc)->ops->get_all_children(desc, env))
00224 
00227 #define AXIS2_DESC_GET_CHILD(desc, env, key) \
00228     ((desc)->ops->get_child(desc, env, key))
00229 
00232 #define AXIS2_DESC_REMOVE_CHILD(desc, env, key) \
00233     ((desc)->ops->remove_child(desc, env, key))
00234 
00236 #ifdef __cplusplus
00237 }
00238 #endif
00239 #endif  /* AXIS2_DESC_H */

Generated on Wed Dec 20 20:34:49 2006 for Axis2/C by  doxygen 1.5.1